Manualx Manual RTKLIB 2.4.2

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 183

DownloadManualx Manual RTKLIB 2.4.2
Open PDF In BrowserView PDF
RTKLIB ver. 2.4.2 Manual
April 29, 2013

Contents
1

Overview .............................................................................................................................................................. 1

2

User Requirements .............................................................................................................................................. 3

3

4

2.1

System Requirements ................................................................................................................................. 3

2.2

License .......................................................................................................................................................... 4

Instructions .......................................................................................................................................................... 5
3.1

Installation and Uninstallation .................................................................................................................. 5

3.2

Real‐Time Positioning with RTKNAVI ..................................................................................................... 7

3.3

Configure Input, Output and Log Streams for RTKNAVI ................................................................... 22

3.4

Post‐Processing Analysis with RTKPOST .............................................................................................. 29

3.5

Configure Positioning Options for RTKNAVI and RTKPOST ............................................................ 34

3.6

Convert Receiver Raw Data to RINEX with RTKCONV ..................................................................... 50

3.7

View and Plot Solutions with RTKPLOT ............................................................................................... 55

3.8

View and Plot Observation Data with RTKPLOT ................................................................................. 69

3.9

Download GNSS Products and Data with RTKGET ............................................................................ 77

3.10

NTRIP Browser .......................................................................................................................................... 83

3.11

Use CUI APs of RTKLIB ........................................................................................................................... 86

Build APs or Develop User APs with RTKLIB .............................................................................................. 87
4.1

Rebuild GUI and CUI APs on Windows ................................................................................................ 87

4.2

Build CUI APs............................................................................................................................................ 88

4.3

Develop and Link User APs with RTKLIB ............................................................................................. 89

Appendix A

CUI Command References ........................................................................................................... 90

A.1

RTKRCV ..................................................................................................................................................... 90

A.2

RNX2RTKP................................................................................................................................................. 93

A.3

POS2KML ................................................................................................................................................... 95

A.4

CONVBIN .................................................................................................................................................. 96

A.5

STR2STR ..................................................................................................................................................... 99

Copyright (C) 2007‐2013, T. Takasu. All rights reserved.
i

Appendix B

File Formats .................................................................................................................................. 101

B.1

Positioning Solution File......................................................................................................................... 101

B.2

SBAS Log File ........................................................................................................................................... 104

B.3

Solution Status File .................................................................................................................................. 106

B.4

Configuration File ................................................................................................................................... 109

B.5

URL List File for GNSS Data .................................................................................................................. 112

Appendix C

API References ............................................................................................................................. 114

Appendix D

Files and Messages ...................................................................................................................... 122

D.1

Supported RINEX Files........................................................................................................................... 122

D.2

Supported Receiver Messages ............................................................................................................... 123

D.3

Supported Signal IDs/Observation Types ............................................................................................ 125

D.4

Default Priorities of Multiple Signals ................................................................................................... 127

D.5

Receiver Dependent Input Options ...................................................................................................... 128

Appendix E

Models and Algorithms .............................................................................................................. 129

E.1

Time System ............................................................................................................................................. 131

E.2

Coordinates System ................................................................................................................................ 134

E.3

GNSS Signal Measurement Models ...................................................................................................... 137

E.4

GNSS Satellite Ephemerides and Clocks .............................................................................................. 142

E.5

Troposphere and Ionosphere Models ................................................................................................... 149

E.6

Single Point Positioning .......................................................................................................................... 154

E.7

Kinematic, Static and Moving‐Baseline ................................................................................................ 161

E.8

PPP (Precise Point Positioning).............................................................................................................. 171

Appendix F

GNSS Signal Specifications ........................................................................................................ 177

References ................................................................................................................................................................ 179

ii

RTKLIB ver. 2.4.2 Manual

1

Overview

RTKLIB is an open source program package for standard and precise positioning with GNSS (global
navigation satellite system). RTKLIB consists of a portable program library and several APs (application
programs) utilizing the library. The features of RTKLIB are:

(1)

It supports standard and precise positioning algorithms with:
GPS [1][2][3], GLONASS [4], Galileo [5], QZSS [6], BeiDou [7] and SBAS [8]

(2)

It supports various positioning modes with GNSS for both real‐time‐ and post‐processing:
Single, DGPS/DGNSS, Kinematic, Static, Moving‐Baseline, Fixed, PPP‐Kinematic, PPP‐Static and
PPP‐Fixed.

(3)

It supports many standard formats and protocols for GNSS:
RINEX 2.10 [9], 2.11 [10], 2.12 [11] OBS/NAV/GNAV/HNAV/LNAV/QNAV, RINEX 3.00 [12], 3.01 [13], 3.02 [14]
OBS/NAV, RINEX 3.02 CLK

, RTCM ver.2.3

, RTCM ver.3.1 (with amendment 1‐5)

[15]

[16]

, RTCM

[17]

ver.3.2 [18], BINEX [19], NTRIP 1.0 [20], NMEA 0183 [21], SP3‐c [22], ANTEX 1.4 [23], IONEX 1.0 [24], NGS PCV
[25]

(4)

and EMS 2.0 [26] (refer Appendix D.1 and D.2 for details).

It supports several GNSS receiversʹ proprietary messages:
NovAtel

[27]

: OEM4/V/6, OEM3, OEMStar, Superstar II, Hemisphere

LEA‐4T/5T/6T, SkyTraq

: S1315F, JAVAD

[30]

[31]

: Eclipse, Crescent, u‐blox

[28]

GRIL/GREIS, Furuno

[32]

GW‐10‐II/III and NVS

[29]

:

[33]

NV08C BINR (refer Appendix D.2 for details).
(5)

It supports external communication via:
Serial, TCP/IP, NTRIP, local log file (record and playback) and FTP/HTTP (automatic download).

(6)

It provides many library functions and APIs (application program interfaces):
Satellite and navigation system functions, matrix and vector functions, time and string functions,
coordinates transformation, input and output functions, debug trace functions, platform dependent
functions, positioning models, atmosphere models, antenna models, earth tides models, geoid models,
datum transformation, RINEX functions, ephemeris and clock functions, precise ephemeris and clock
functions, receiver raw data functions, RTCM functions, solution functions, Google Earth

[34]

KML

converter, SBAS functions, options functions, stream data input and output functions, integer
ambiguity resolution, standard positioning, precise positioning, post‐processing positioning, stream
server functions, RTK server functions, downloader functions.
(7)

It includes the following GUI (graphical user interface) and CUI (command‐line user interface) APs. ()
shows the section describing the instruction for each AP in the manual.

1

RTKLIB ver. 2.4.2 Manual
Function
(a)

AP Launcher

(b)

Real‐Time Positioning

(c)

Communication Server

(d)

Post‐Processing Analysis

(e)

RINEX Converter

(f)
(g)
(h)

(8)

GUI AP
RTKLAUNCH
(3.1)
RTKNAVI
(3.2, 3.3, 3.5)
STRSVR,
(3.3)
RTKPOST
(3.4, 3.5)
RTKCONV
(3.6)
RTKPLOT
(3.7, 3.8)
RTKGET
(3.9)
SRCTBLBROWS
(3.10)

Plot Solutions and
Observation Data
Downloader for GNSS
Products and Data
NTRIP Browser

CUI AP

Notes

‐
RTKRCV
(3.11, A.1)
STR2STR
(3.11, A.5)
RNX2RTKP
(3.11, A.2)
CONVBIN
(3.11, A.4)
‐
‐
‐

All of the executable binary APs for Windows are included in the package as well as whole source
programs of the library and the APs.

RTKLIB GUI APs on Windows 7

2

RTKLIB ver. 2.4.2 Manual

2

User Requirements

2.1

System Requirements

The executable binary GUI and CUI APs included in the package require Microsoft Windows

[35]

environment. On the other OS or environment, you have to compile and build CUI APs by yourself.
All of the library functions and APIs were written in ANSI C (C89). The library internally uses winsock and
WIN32 thread for Windows with the compiler option ‐DWIN32 and the standard socket and pthread
(POSIX thread) for Linux/UNIX without any option. By setting the compiler option ‐DLAPACK or ‐DMKL,
the library uses LAPACK/BLAS [36] or Intel MKL [37] for fast matrix computation.
The CUI APs were also written in ANSI C. The library and CUI APs can be built on many environments like
gcc on Linux. The GUI APs were written in C++ and utilize Embarcadero/Borland VCL (visual component
library) [38] for GUI toolkits. All of the executable binary APs in the package were built by Embarcadero C++
builder XE2 Starter Edition on Windows 7.
The executable GUI APs were tested on Windows 7 (64bit). The CUI APs were also built and tested on
Ubuntu [39] 11.04 Linux and x86 CPU.

Notes: Previous versions of RTKLIB until ver. 2.4.1 were built by a free edition of Borland C++ (Turbo C++
2006). Turbo C++, however, is no longer supported in ver. 2.4.2 because of type incompatibility problem of
GUI strings between ver.2.4.2 and the previous ones.

3

RTKLIB ver. 2.4.2 Manual

2.2

License

The RTKLIB software package is distributed under the following BSD 2‐clause license

[40]

and additional

two exclusive clauses. Users are permitted to develop, produce or sell their own non‐commercial or
commercial products utilizing, linking or including RTKLIB as long as they comply with the license.

Notes: Previous versions of RTKLIB until ver. 2.4.1 had been distributed under GPLv3 [59] license.

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
Copyright (c) 2007‐2013, T. Takasu, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:



Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.



Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.



The software package includes some companion executive binaries or shared libraries necessary to
execute APs on Windows. These licenses succeed to the original ones of these software.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ʺAS ISʺ AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4

RTKLIB ver. 2.4.2 Manual

3

Instructions

3.1

Installation and Uninstallation

(1) Extract the program package rtklib_.zip or rtklib__bin.zip to appropriate
directory  ( indicates the version number). The RTKLIB directory structure is as
follows.

rtklib_
\src
\rcv

: Source programs of RTKLIB library *
: Source programs depending on GPS/GNSS receivers *

\bin

: Executable binary APs and DLLs for Windows

\data

: Sample data for APs

\app

: Build environment for APs *

\rtknavi

: RTKNAVI

(GUI) *

\rtknavi_mkl

: RTKNAVI_MKL

(GUI) *

\strsvr

: STRSVR

(GUI) *

\rtkpost

: RTKPOST

(GUI) *

\rtkpost_mkl

: RTKPOST_MKL

(GUI) *

\rtkplot

: RTKPLOT

(GUI) *

\rtkconv

: RTKCONV

(GUI) *

\srctblbrows

: NTRIP Browser

(GUI) *

\rtkget

: RTKGET

(GUI) *

\rtklaunch

: RTKLAUNCH

(GUI) *

\rtkrcv

: RTKRCV

(CUI) *

\rnx2rtkp

: RNX2RTKP

(CUI) *

\pos2kml

: POS2KML

(CUI) *

\convbin

: CONVBIN

(CUI) *

\str2str

: STR2STR

(CUI) *

\appcmn

: Common routines for GUI APs *

\icon

: Icon data for GUI APs *

\lib

: Libraries generation environment*

\test

: Test program and data *

\util

: Utilities *

\doc

: Document files

* Not included in the binary package rtklib__bin.zip

5

RTKLIB ver. 2.4.2 Manual
(2) Create the shot‐cuts of the GUI AP executable binaries in \rtklib_\bin. To
execute CUI APs, add \rtklib_\bin to the command path.

(3) The GUI and CUI APs in RTKLIB never utilize the Windows registry. To uninstall the package, simply
delete the whole files and directories in the installed directory.

(4) Optional settings for GUI APs are saved in INI files (*.ini) usually placed in the directory \rtklib_\bin. Note that the directory for the INI files is changed in ver. 2.4.2. To
succeed your optional settings for the previous version RTKLIB APs, please copy the INI files (*.ini) in
c:\Windows to the directory \rtklib_\bin.

(5) Some GUI APs (RTKCONV, RTKPOST, RTKNAVI, RTKGET and STRSVR) can be executed with the
command line option -i .ini to select an alternative INI file for another optional settings.
You can switch options for such APs by using the command line option as well as the option -t
 to change the window title. So you can configure multiple short‐cuts for the same GUI AP
with different options by setting the properties of these short‐cuts.

(6) To use RTKPOST_MKL or RTKNAVI_MKL, which is the Intel‐MLK‐library‐linked version RTKPOST
or RTKNAVI for faster matrix computation on multiple‐core CPU or multiple‐processor PCs, please set
the Windows environment variable OMP_NUM_THREADS to 2, 4 or 8 according to the number of the
CPU cores. That enables multi‐threading matrix computation in order to shorten processing time.

(7) To execute GUI APs easily, an AP launcher application RTKLAUNCH is added in ver. 2.4.2. To run
RTKLAUNCH, execute <install dir>\rtklib_<ver>\bin\rtklaunch.exe. You can click AP
icons in the RTKLAUNCH window or select pop‐up menus at the task‐tray‐icon in order to execute
RTKLIB APs. RTKLAUNCH accepts the option -mkl to launch RTKPOST_MKL and RTKNAVI_MKL
instead of RTKPOST and RTKNAVI, and the option -tray to start the launcher as a task‐tray‐icon.

RTKPLOT

RTKCONV STRSVR

RTKPOST NTRIP Browser RTKNAVI

RTKGET

Button to iconize in
Windows Task Tray
Figure 3.1‐1 RTKLAUNCH window and launcher icons for APs

6

RTKLIB ver. 2.4.2 Manual

3.2

Real-Time Positioning with RTKNAVI

An real‐time positioning AP RTKNAVI inputs raw observation data of GPS/GNSS receivers and execute
navigation processing in real‐time. By setting the positioning mode to Kinematic and configuring the rover
and the base station receiver data inputs, RTK‐GPS/GNSS is enabled with OTF (on‐the‐fly) integer
ambiguity resolution.

(1) Execute the binary AP file <install dir>\rtklib_<ver>\bin\rtknavi.exe. (double‐click the
icon or full in the path in the command console) You can see the main window of RTKNAVI. You can
also execute <install dir>\rtklib_<ver>\bin\rtknavi_mkl.exe instead.

Display Switch
Input/Output/Log
Stream
Status/Settings

Time Display

Signal Level/
Satellite Visibility
Display

Solution
Display

RTK Monitor
Button

Operation
Buttons
Save Log Button

Message Area

Figure 3.2‐1 Main Window of RTKNAVI

(2) The following figure shows the data flow of RTKNAVI. You have to set up Input Streams, Output
Streams (optional) and Log Streams (optional) for real‐time positioning. Refer 3.3 Configure Input,
Output and Log Streams for RTKNAVI for several sample configurations of these streams.

7

RTKLIB ver. 2.4.2 Manual

RTKNAVI

Input Streams (I)

GPS/GNSS
Receivers

Output Streams (O)

(1) Input Rover

(4) Output Solution 1

(2) Input Base Station

(5) Output Solution 2

(3) Input Correction
(6) Log Rover
(7) Log Base Station
Correction
Provider

(8) Log Correction
Log Streams (L)
Figure 3.2‐2 Data Flow of RTKNAVI

(3) For real‐time positioning with RTKNAVI, you have to input the raw observation data and satellite
ephemerides from the GPS/GNSS receivers. To set the input stream, push the button I upper center
in the main window. You can see the ʺInput Streamsʺ dialog.

Figure 3.2‐3 Input Streams Dialog of RTKNAVI

(4) Check and set the stream type of Rover, Base‐station or Correction in the dialog. If you set the
ʺPositioning Modeʺ option ʺSingleʺ, the input streams for ʺBase‐stationʺ and ʺCorrectionʺ are not
required. The stream types can be selected from the following options.

(a) Serial

: Input data from a serial port (RS232C or USB)

(b) TCP Client

: Connect to a TCP server and input data via the TCP connection

(c) TCP Server

: Accept a TCP client connection and input data via the TCP connection

8

RTKLIB ver. 2.4.2 Manual
(d) NTRIP Client

: Connect to a NTRIP caster

[20]

and input data via the NTRIP.

NRTK (network RTK) server supporting NTRIP and RTCM 2/3 can
also be used for the base‐station via Internet.
(e) File

: Input data from a log file.

(f) FTP

: Input data after downloading a file by FTP (Only for Correction)

(g) HTTP

: Input data after downloading a file by HTTP (Only for Correction)

You have to select the stream data format from the following options with the pull down menu under
ʺFormatʺ. Refer Appendix D.2 for supported messages by RTKLIB. You shall configure your
GPS/GNSS receivers to output at least GPS/GNSS observation data and navigation data (ephemerides).
For detailed operation for the receiver settings, refer the appropriate manuals for the GPS/GNSS
receivers.

(a) RTCM2

: RTCM 2.3

(b) RTCM3

: RTCM 3.0, 3.1 (with amendment 1‐5) and 3.2

(c) NovAtel OEM6

: NovAtel OEM4/V/6 and OEMStar binary format

(d) NovAtel OEM3

: NovAtel OEM3 (Millennium) binary format

(e) u‐blox

: u‐blox LEA‐4T, 5T and 6T binary format

(f) Superstar II

: NovAtel Superstar II binary format

(g) Hemisphere

: Hemisphere Crescent/Eclipse binary format

(h) SkyTraq

: SkyTraq S1315F binary format

(i) GW10

: Furuno GW‐10‐II/III binary format

(j) Javad

: JAVAD GRIL/GREIS binary format

(k) NVS BINR

: NVS NV08C BINR format

(l) BINEX

: BINEX format (only supports big‐endian, forward, regular CRC)

(m) SP3

: SP3 precise ephemeris (only for Correction)

(5) If you select ʺSerialʺ as the stream type, push ... button under ʺOptʺ label to set the options of ʺPortʺ
selection, ʺBit‐rateʺ, ʺByte sizeʺ, ʺParityʺ, number of ʺStop bitsʺ and ʺFlow Controlʺ with the ʺSerial
Optionsʺ dialog.

9

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐4 Serial Option Dialog of RTKNAVI

(6) In case of selecting ʺSerialʺ, ʺTCP Clientʺ or ʺTCP Serverʺ as the stream type, you can configure the
startup and shutdown commands to be sent to the GPS/GNSS receiver through the stream. To set up
the commands, push

... button under the ʺCmdʺ label. Fill in commands in the text fields in the

ʺSerial/TCP Commandsʺ dialog. If you do not check ʺCommands at startupʺ or ʺCommands at
shutdownʺ, the startup or shutdown command is not sent to the receiver. You can also load the
commands from a command file by pushing Load... button or save the commands to a command file
with Save... button. A command file is just a text file including startup commands and shutdown
commands separated by a line starting with ʺ@ʺ. Sample command files for some typical GPS/GNSS
receivers are found at <install dir>\rtklib_<ver>/data/*.cmd.

Figure 3.2‐5 Serial/TCP Commands Dialog of RTKNAVI

(7) A line starting with ʺ!ʺ in the commands is treated as a receiver binary command. The following
commands can be used for u‐blox, SkyTraq and NVS receivers. Refer the receiversʹ manuals for details.

!UBX ... : u‐blox LEA‐4T/5T/6T command
!UBX CFG-PRT portid res0 res1 mode baudrate inmask outmask flags
!UBX CFG-USB vendid prodid res1 res2 power flags vstr pstr serino

10

RTKLIB ver. 2.4.2 Manual
!UBX CFG-MSG msgid rate0 rate1 rate2 rate3
!UBX CFG-NMEA filter version numsv flags
!UBX CFG-RATE meas nav time
!UBX CFG-CFG clear_mask save_mask load_mask
!UBX CFG-TP interval length status time_ref res adelay rdelay udelay
!UBX CFG-NAV2

...

!UBX CFG-DAT maja flat dx dy dz rotx roty rotz scale
!UBX CFG-INF protocolid res0 res1 mask0 mask1 mask2 mask3
!UBX CFG-RST navbbr reset res
!UBX CFG-RXM gpsmode lpmode
!UBX CFG-ANT flags pins
!UBX CFG-FXN flags treacq tacq treacqoff tacqoff ton toff res basetow
!UBX CFG-SBAS mode usage maxsbas res scanmode
!UBX CFG-LIC key0 key1 key2 key3 key4 key5
!UBX CFG-TM intid rate flags
!UBX CFG-TM2 ch res0 res1 rate flags
!UBX CFG-TMODE tmode posx posy posz posvar svinmindur svinvarlimit
!UBX CFG-EKF ...
!STQ ... : SkyTraq S1315F binary command
!STQ RESTART

[arg...] system restart

!STQ CFG-SERI [arg...] configure serial port property
!STQ CFG-FMT

[arg...] configure output message format

!STQ CFG-RATE [arg...] configure binary measurement output rates
!NVS ... : NVS NV08C binary command
!NVS CFG-PVTRATE [arg...] configure PVT rate
!NVS CFG-RAWRATE [arg...] configure raw data rate
!NVS CFG-SMOOTH configure smooth range
!NVS CFG-BINR xx [...] send binary command for NVS
(input hexadecimal series)
!WAIT time : wait for time (ms)

(8) If you select ʺTCP Clientʺ or ʺTCP Serverʺ as the stream type, you can set the options of ʺTCP server
addressʺ (for TCP Client only) and the ʺPortʺ number with the ʺTCP Client Optionsʺ or ʺTCP Server
Optionsʺ dialog. If you select ʺTCP Serverʺ as the stream type, multiple TCP client connections are
allowed.

11

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐6 TCP Client Options Dialog of RTKNAVI

Figure 3.2‐7 TCP Server Options Dialog of RTKNAVI

(9) If you select ʺNTRIP Clientʺ as the stream type, you can set the options of ʺNTRIP Caster Hostʺ address,
ʺPortʺ number, ʺMount‐pointʺ of NTRIP caster, ʺUser‐IDʺ and ʺPasswordʺ with the ʺNTRIP Client
Optionsʺ dialog. If you keep the ʺPortʺ field blank, the default port number (2101) of NTRIP is used.
Note that ʺUser‐IDʺ cannot contain ʺ:ʺ.

Figure 3.2‐8 NTRIP Client Options Dialog of RTKNAVI

(10) If you select ʺFileʺ as the stream type, input the file path to the text field Input File Paths. Fill in the path
directly or select a file with the file selection dialog by pushing ... button. The input file should be a
receiver raw data log. You can set the replay speed and the start time offset of the log file in Time field
(To use the feature, you have to record the log with the time‐tag file.)

12

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐9 Input Streams Dialog of RTKNAVI

(11) By pushing the ʺOptʺ button right of the input stream ʺFormatʺ, you can set receiver‐dependent
options like ʺ-GL1X -RL1C -EPHALLʺ with the ʺReceiver Optionʺ dialog. Multiple options can be used
separated by spaces. For detailed receiver‐dependent options, refer Appendix D.4 Receiver Dependent
Input Options. If the input observation data stream contain multiple signals in a frequency, a signal in
use for solutions is selected by the default signal priorities without such options. Refer Appendix D.3
Default Priorities for Multiple Signals.

Figure 3.2‐10 Receiver Option Dialog of RTKNAVI

(12) In case of using a NRTK (network RTK) service, which requires NMEA GPGGA messages to select
reference station or to setup the VRS (virtual reference station) position, select the message content
with the pull down menu at ʺTransmit NMEA GPGGA to Base Stationʺ. If you select
ʺLatitude/Longitudeʺ to send a fixed position, fill in the latitude and longitude of the position for
NMEA GPGGA messages in degree (minus means south or west).

(13) For the correction stream, you can select ʺFTPʺ or ʺHTTPʺ as the stream type. After pushing ʺOptʺ
button, you have to configure FTP or HTTP options with the ʺFTP Optionʺ or ʺHTTP Optionʺ dialog. At
first, fill in the server address and the file path in the ʺDownload Addressʺ field as the format <server
address>/<file path>. Usually you might need to include day or time keywords in <file path>.
For example, in case of downloading IGS ultra‐rapid ephemeris from the NASA GSFC CDDIS data
server , you can input the download address like:

13

RTKLIB ver. 2.4.2 Manual
cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%hb.sp3.Z
In this case, the keywords %W, %D and %hb are replaced by GPS week number, day of week and 6 hour
of the day according to the download time in GPS Time, respectively. For other keywords which can be
used in the file path, push

?

button and see the dialog. You can also set Download Interval,

Download Offset (for example, Interval = 6H and Offset = 2 H means the download will be tried at 2:00,
8:00, 14:00 and 20:00 in GPS Time), Time Offset in Path for replacing the keywords in the file path,
Retry Interval, User (for FTP only) and Password (for FTP only) for the server. For User and Password,
ʺanonymousʺ and your mail address are usually used for anonymous FTP servers.

Figure 3.2‐11 FTP Option Dialog of RTKNAVI

To use download files, you also have to set the file format in the ʺInputʺ dialog. Current version only
supports SP3 precise ephemeris for this purpose. Downloaded files are saved in a local directory. The
local directory path shall be set with the ʺOptionsʺ dialog ‐ ʺFilesʺ ‐ ʺFTP/HTTP Local Directoryʺ.

(14) To output of the positioning solutions by RTKNAVI, you shall set the output streams. To set the output
streams, push the button

O

upper right in the main window. You can see the ʺOutput Streamsʺ

dialog. Check and set the stream type of solution in the dialog. You can configure two independent
output streams as maximum. You can select the stream type out of ʺSerialʺ, ʺTCP Clientʺ, ʺTCP Serverʺ,
ʺNTRIP Serverʺ and ʺFileʺ. The options are similar to the input streams. You also have to select the
following output format options. The time and latitude/longitude formats, the type of height and the
geoid model and the NMEA interval in output messages also can be configured by the positioning
options described in 3.5.

(a) Lat/Lon/Height

: Latitude, longitude and height

(b) X/Y/Z‐ECEF

: X/Y/Z components in ECEF frame

(c) E/N/U‐Baseline

: E/N/U components of the baseline

(d) NMEA0183

: NMEA0183 GPRMC, GPGGA, GPGSA, GLGSA, GAGSA,
GPGSV, GLGSV and GAGSV

14

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐12 Output Streams Dialog of RTKNAVI

(15) If you select ʺFileʺ as the output stream type, you can include some keywords in the file path to be
replaced by date or time. Push ? button to show the keyword replacement in the file paths. If you set
the ʺSwap Intvʺ option, the output file is swapped periodically in the specified cycle. To use the file
swap feature, the file path must contain the keywords to be replaced by the swap time in order to avoid
overwriting the previous file.

Figure 3.2‐13 Keyword Replacement Dialog of RTKNAVI

(16) If you select ʺNTRIP Serverʺ as the output stream type, you have to set NTRIP server options with the
ʺNTRIP Server Optionʺ dialog. The options include the address of ʺNTRIP Caster Hostʺ, the ʺPortʺ
number to connect NTRIP caster, NTRIP ʺMount‐pointʺ, ʺPasswordʺ and ʺStringʺ showing the
source‐table parameters to NTRIP Caster. If the ʺPortʺ field blank, the default port number (80) is used.
The button Ntrip... launches the NTRIP browser AP to show the source table provided by the NTRIP
caster. Refer 3.10 NTRIP Browser for details.

15

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐14 NTRIP Server Options Dialog of RTKNAVI

(17) To output an input stream as a path‐through log, set the log streams. To configure the log streams,
push the button

L

upper right in the main window. You can see the ʺLog Streamsʺ dialog. The

settings are similar to the output streams. If you want to replay the log file as an input stream later, you
have to check the ʺTime‐Tagʺ option and output the time tag file simultaneously. The output path of the
time tag file is automatically set to <output file path>.tag. The keyword replacements in the file
paths and the swap interval are the same as the ʺOutput Streamsʺ dialog.

Figure 3.2‐15 Log Streams Dialog of RTKNAVI

(18) To configure the positioning options, push Options... button and set the options in the ʺOptionsʺ
dialog. For details of the positioning options, refer 3.5 Configure Positioning Options for RTKNAVI
and RTKPOST.

(19) Push Start button. The status of each streams are shown on the upper right indicators. From the left,
they show the stream/processing status of Input Rover, Input Base Station, Input Correction, the
positioning process, Output Solution 1, Output Solution 2, Log Rover, Log Base Station and Log
Correction. Gray represents not used, Orange means waiting for the connection, Deep‐green means
connected or running, Light‐green means data active (input, output or processing) and Red means a
communication error occurs. Some status messages are also shown in the lower center message area in

16

RTKLIB ver. 2.4.2 Manual
the main window. To stop the positioning process in RTKNAVI push Stop button.

Figure 3.2‐16 Main Window of RTKNAVI (RUNNING)

(20) After the input observation data and ephemerides are completed and valid, RTKNAVI computes the
positioning solution and display it in the solution display left in the main window with the solution
status (FIX, FLOAT, DGPS, SBAS, SINGLE or PPP), E/N/U or X/Y/Z components of the standard
deviation, Age (age of differential), Ratio (ratio factor of ambiguity validation) and # of Sat (number of
valid satellites). To switch the format in the solution display, push

button upper right corner. You

can switch the solution to Lat/Lon/Height (degree/minute/second), Lat/Lon/Height (degree),
X/Y/Z‐ECEF (m), E/N/U‐Baseline (m), Pitch/Yaw/Length‐Baseline (deg, m), alternatively. In the
Lat/Lon/Height modes, the labels ʺHʺ and ʺHeʺ indicates the geodetic and ellipsoidal height,
respectively.

Figure 3.2‐17 Solution Status Display of RTKNAVI

(21) To switch the format in the time display, push GPST button upper center in the main window. You
can switch the time system to GPST, UTC, LT (local time) and GPST (GPS week/TOW), alternatively.

(22) In the status display right in the main window, observation SNR (signal to noise ratio, C/N0) status or
visible satellites in skyplot are shown. By pushing

button upper right corner of the status display,

you can switch the contents to Rover : Base SNR, Rover SNR, Rover Skyplot, Base Skyplot and Baseline

17

RTKLIB ver. 2.4.2 Manual
plot, Wide Rover : Base SNR, Wide‐mode Rover SNR, alternatively. You can switch the frequency
show in the plot by pushing the second

button near the upper right corner. In the SNR plots or the

Skyplots, the colors except for Gray as not‐in‐use indicate the signal SNR as: > 45 ... 40 ... 35 ... 25 ... < 25
(dBHz). The colors of the satellite IDs in the SNR plots also indicate the satellite system as: GPS (G),
GLONASS (R), Galileo (E), QZSS (J), BeiDou (C) and SBAS (S).

Figure 3.2‐18 Satellite and Signal Status Display of RTKNAVI

(23) The size of RTKNAVI window can be changed by dragging the edge of the window. The separator
between the left and the right sub‐windows can be also dragged to change the layout of the window. To
show the status of many of satellites, use this feature introduced in ver. 2.4.2. The font in the Solution
sub‐window can be changed by the settings by the options dialog the ʺOptionsʺ ‐ ʺMiscʺ ‐ ʺSolution
Fontʺ.

Figure 3.2‐19 Size Expanded Main Window of RTKNAVI

(24) By pushing Plot... button, you can execute RTKPLOT to plot the current position of the rover receiver
on the graph as the real‐time solution mode. For details to use RTKPLOT, please refer 3.7 View and

18

RTKLIB ver. 2.4.2 Manual
Plot Solutions and Observation Data with RTKPLOT.

Figure 3.2‐20 RTKPLOT Window executed by RTKNAVI

(25) The positioning solutions are recorded in the internal buffer simultaneously. You can save the internal
solution buffer to the file by pushing ... below the solution display. The size of the solution buffer and
the saved solution log can be configured with the ʺOptionsʺ dialog.

(26) By pushing the

button lower left in the main window, you can see the ʺRTK Monitorʺ window.

With the window, you can see the internal status of RTKNAVI. You can select the following contents
with the upper left pull down menu. Multiple ʺRTK Monitorʺ windows are allowed to be shown at the
same time. To close the window, push Close button.

19

RTKLIB ver. 2.4.2 Manual

Figure 3.2‐21 RTK Monitor Window of RTKNAVI

(a) RTK

: General status of the internal positioning process

(b) Obs Data

: Input observation data. RCV=1 means rover and 2 means base‐station

(c) Nav GPS

: GPS satellite navigation messages

(d) Nav GLONASS

: GLONASS satellite navigation messages

(e) Nav Galileo

: Galileo satellite navigation messages

(f) Nav QZSS

: QZSS satellite navigation messages

(g) Nav BeiDou

: BeiDou satellite navigation messages

(h) Nav GEO

: GEO/SBAS satellite navigation messages

(i) Time/Iono

: Time and Ionosphere parameters

(j) Streams

: Status of input, output and log streams

(k) Sat GPS

: Status of GPS satellites

(l) Sat GLONASS

: Status of GLONASS satellites

(m) Sat Galileo

: Status of Galileo satellites

(n) Sat QZSS

: Status of QZSS satellites

(o) Sat BeiDou

: Status of BeiDou satellites

(p) Sat GEO

: Status of GEO/SBAS satellites

(q) States

: State vector values of the estimation filter

(r) Covariance

: Covariance matrix of the estimation filter

(s) SBAS Msgs

: HEX dump of input SBAS messages

(t) SBAS Long

: SBAS long term satellite corrections

(u) SBAS Iono

: SBAS ionospheric delay corrections

(v) SBAS Fast

: SBAS fast corrections

(w) RTCM Msgs

: Status of RTCM 2 or 3 messages

20

RTKLIB ver. 2.4.2 Manual
(x) RTCM DGPS

: RTCM DGPS corrections

(y) RTCM SSR

: RTCM SSR corrections

(z) LEX Msgs

: (reserved)

(aa) LEX Eph/Clock

: (reserved)

(ab) LEX Iono

: (reserved)

(ac) Iono Correction

: Ionosphere corrections

(ad) (1) Rover

: Dump of Input Rover stream

(ae) (2) Base Station

: Dump of Input Base Station stream

(af) (3) Correction

: Dump of Input Correction stream

(ag) (4)(5)Solution 1/2

: Dump of Output Solution 1/2 stream

(ah) Error/Warning

: Error or warning messages

(27) In case of selecting (1) Rover, (2) Base Station or (3) Correction for ʺRTK Monitorʺ, you can select the
input message format with the pull‐down menu upper center of the window and dump the messages
in the input stream. A dump line shows a message containing the fields: message type, (message length
in bytes) : message contents depending on the message format.

Figure 3.2‐22 Stream Dump in RTK Monitor Window of RTKNAVI

(28) By pushing

button lower right in the main window, you can minimize the main window as an icon

in the task‐tray of Windows desktop. To restore the main window, double‐click the task‐tray‐icon or
click right‐button on the task‐tray‐icon and select menu ʺMain Window...ʺ.

21

RTKLIB ver. 2.4.2 Manual

3.3

Configure Input, Output and Log Streams for RTKNAVI

For relative positioning like RTK‐GPS/GNSS, the rover receiver and the base station receiver are usually
placed on the separated sites. In other cases, user might use the positioning result at the remote site far from
these receivers. To interconnect these sites, user has to establish data communication links. To facilitate easy
setup of these communication links, RTKLIB provides a communication server utility AP STRSVR, with
which user can configure input and output data stream via these communication links. STRSVR also has
the function of relay or split the data stream for real‐time positioning with RTKNAVI.

For example, to receive observation data of a remote base station at a rover receiver site and to get RTK‐GPS
solution, user can place a remote PC installing STRSVR connecting to the base station receiver and can
configure STRSVR to send data to the rover site. The following examples show the typical applications of
RTKNAVI and SVRSVR.

(1) Single‐point positioning and output solutions to a file
PC
GPS/GNSS
Receiver

Serial

RTKNAVI

File

(1) Input Rover=Serial
(4) Output Solution 1=File

(2) Single point positioning, output solutions to a serial device, log data to a file
PC
GPS/GNSS
Receiver

Serial

RTKNAVI

(1) Input Rover=Serial
(4) Output Solution 1=Serial
(6) Log Rover=File

22

Serial

Log

RTKLIB ver. 2.4.2 Manual
(3) RTK‐GPS/GNSS, input the rover and base‐station data from two serial devices

Rover
Receiver

PC

Serial

File

RTKNAVI
Base Station
Receiver

Serial
(1) Input Rover=Serial
(2) Input Base Station=Serial
(4) Output Solution 1=File

(4) RTK‐GPS/GNSS, input rover data from a serial port and input base‐station data from a remote receiver
via Wi‐Fi network.

Base Station
Receiver
PC

Rover
Receiver

Serial

Serial

PC

STRSVR

File

RTKNAVI
TCP
Server

TCP
Client

(0) Input =Serial
(1) Output 1=TCP Server

(1) Input Rover=Serial
(2) Input Base Station=TCP Client
(4) Output Solution 1=File

(5) RTK‐GPS/GNSS, input rover data from a serial port and input base station data via mobile phone
Internet connection

Base Station
Receiver
PC

Mobile
Phone
N/W

Rover
Receiver

Serial

STRSVR

PC
Internet

Serial

RTKNAVI

File

Mobile
Phone
Terminal (1) Input Rover=Serial
(2) Input Base Station=TCP Client
(4) Output Solution 1=File

(0) Input =Serial
(1) Output 1=TCP Server

23

RTKLIB ver. 2.4.2 Manual
(6) RTK‐GPS/GNSS, input data from a serial port and input base station data via a NTRIP caster on
Internet. The current version does not support NTRIP caster feature. Please employ some alternative
NTRIP caster implementation.

Base Station
GPS Receiver
PC

Ntrip
Caster

Rover
GPS Receiver

Serial

STRSVR

PC
Internet

(0) Input =Serial
(1) Output 1=NTRIP Server

Serial

RTKNAVI

File

(1) Input Rover=Serial
(2) Input Base Station=NTRIP Client
(4) Output Solution 1=File

(7) RTK‐GPS/GNSS with NRTK (Network RTK) service via Internet

Reference
Reference
Reference
Station
Reference
Station
Station
Station

Rover
GPS Receiver
PC

NTRIP Caster

Internet

NRTK provider

Serial

RTKNAVI

File

(1) Input Rover=Serial
(2) Input Base Station=NTRIP Client
(4) Output Solution 1=File

24

RTKLIB ver. 2.4.2 Manual
(8) Multiple RTK‐GPS/GNSS with single NRTK service

Reference
Reference
Reference
Station
Reference
Station
Station
Station

(1) Input =NTRIP Client
(2) Output=TCP Server

PC
Internet

NTRIP Caster

STRSVR

NRTK provider
LAN

PC

PC

PC

PC

RTKNAVI

RTKNAVI

RTKNAVI

RTKNAVI

Rover
Receiver 1

Rover
Receiver 2

Rover
Receiver 3

Rover
Receiver 4

(1) Input Rover=Serial
(2) Input Base Station=TCP Client

(9) Real‐time PPP with real‐time satellite orbit and clock provided as a NTRIP stream.

Real‐time Orbit
and clock
Provider

GPS Receiver
PC

NTRIP Caster

Internet

NRTK provider

Serial

RTKNAVI

File

(1) Input Rover=Serial
(2) Input Correction=NTRIP Client
(4) Output Solution 1=File

25

RTKLIB ver. 2.4.2 Manual
(10) Long‐baseline RTK with FTP download of precise ephemeris

Base Station
GPS Receiver
PC

Rover
GPS Receiver

Serial

STRSVR

PC
Internet

(0) Input =Serial
(1) Output 1=NTRIP Server

Serial

RTKNAVI

File

(1) Input Rover=Serial
(2) Input Base Station=NTRIP Client
(3) Input Correction=FTP
(4) Output Solution 1=File

IGS Data Server
Ultra‐rapid Ephemeris (SP3)

The following instructions are for the operation of STRSVR.

(1) Execute the binary AP file <install dir>\rtklib_<ver>\bin\strsvr.exe. You can see the
main window of STRSVR.

Figure 3.3‐1 Main Window of STRSVR

(2) To configure the input stream, select the stream type with pull down menu at ʺ(0) Inputʺ. Selectable
stream types are Serial, TCP Client, TCP Server, NTRIP Client, File, FTP or HTTP. The stream options
or the startup/shutdown command can be set as well as Input Streams for RTKNAVI.

(3) To configure the output streams, select the stream type with pull down menu at (1) Output, (2) Output
or (3) Output. The setting for the output streams are same as Output Streams or Log Streams for

26

RTKLIB ver. 2.4.2 Manual
RTKNAVI.
(4) In version 2.4.2, the stream format conversion function is added. To use the function, push Conv button
right of the pull down menu of the output stream. You can see ʺConversion Optionsʺ dialog. To enable
the stream format conversion function, check the upper left checkbox in the dialog and select input and
output format by the pull down menus. Current version supports the following input and output
formats.
(a) Input:

RTCM3, RTCM2, NovAtel OEM6, NovAtel OEM3, u‐blox, Superstar II, Hemisphere,
SkyTraq, GW10, Javad, NVS BINR and BINEX

(b) Output:

RTCM 3 (RTCM 2 is not supported yet)

Figure 3.3‐2 Conversion Option Dialog of STRSVR

Output messages shall be specified in the Message Types field in the dialog as the form:
nnnn(ss), nnnn(ss), nnnn(ss), ....
Specify the message types as the fields nnnn and the message intervals as the fields (ss) in seconds.
The message interval can be omitted. In this case, the message interval is determined by the input
message interval. The following table shows all of the supported output RTCM messages. For antenna
info messages, the fields are given by the ʺOptionsʺ dialog. Message input options can also be specified
in the ʺOptionsʺ field. Refer D.5 for the receiver dependent options for details.

Supported output RTCM 3 message type
---------------------------------------------------------------------TYPE
GPS
GLONASS
Galileo
QZSS
BeiDou
SBAS
---------------------------------------------------------------------OBS C-L1 : 1001
1009
F-L1 : 1002
1010
C-L12 : 1003
1011
F-L12 : 1004
1012
NAV

: 1019
-

1020
-

1045*
1046*

1044*
-

-

-

MSM 1
2
3
4
5
6
7

:
:
:
:
:
:
:

1081
1082
1083
1084
1085
1086
1087

1091
1092
1093
1094
1095
1096
1097

1111*
1112*
1113*
1114*
1115*
1116*
1117*

1121*
1122*
1123*
1124*
1125*
1126*
1127*

1101*
1102*
1103*
1104*
1105*
1106*
1107*

ANT INFO

: 1005 1006 1007 1008 1033

1071
1072
1073
1074
1075
1076
1077

27

RTKLIB ver. 2.4.2 Manual
---------------------------------------------------------------------* draft version of RTCM 3 messages

(5) Push Start button in the main window. The communication status is shown in the message area lower
center of the main window. Status indicators left side of the main window also shows the
communication status. The indicator colors means: Orange: waiting connection, Dark‐Green:
connected, Light‐Green: data active, Red: error. Total data amount (bytes) and data rate (bps) of the
input and output streams are also shown in right side. To stop the communication, push Stop button.

(6) By pushing Options... button, you can set the communication options with the ʺOptionsʺ dialog. To
send NMEA GPGGA message to the server connected the input stream, check ʺNMEA Request Cycleʺ
and set the request cycle (ms) and latitude/longitude in the messages. To connect an external NTRIP
caster from the inside of the firewall via a HTTP‐proxy server, you can input the address and the port
number as the form <address>:<port> in the ʺHTTP/NTRIP Proxyʺ field. The other fields in the
dialog are for antenna and station information messages to be generated in case of using the format
conversion feature and sending antenna information messages.

Figure 3.3‐3 Options Dialog of STRSVR

28

RTKLIB ver. 2.4.2 Manual

3.4

Post-Processing Analysis with RTKPOST

RTKLIB contains a post processing analysis AP RTKPOST. RTKPOST inputs the standard RINEX 2.10, 2.11,
2.12, 3.00, 3.01, 3.02 (draft) observation data and navigation message files (GPS, GLONASS, Galileo, QZSS,
BeiDou and SBAS) and can computes the positioning solutions by various positioning modes including
Single‐point, DGPS/DGNSS, Kinematic, Static, PPP‐Kinematic and PPP‐Static.

(1) Execute the binary AP file <install dir>\rtklib_<ver>\bin\rtkpost.exe. You can see the
main

window

of

RTKPOST.

You

can

execute

the

binary

AP

<install

file

dir>\rtklib_<ver>\bin\rtkpost_mkl.exe instead, which is a version of RTKPOST linking the
Intel MKL library for fast matrix computation.

Figure 3.4‐1 Main Window of RTKPOST

(2) Input the RINEX observation data file path of the rover receiver in the text field ʺRINEX OBS(: Rover)ʺ.
Fill in the file path or select a file using the file selection dialog shown by pushing ... button. You can
use the compressed file by GZIP [57] (.gz), COMPRESS (.z) or Hatanaka‐Compression

[58]

(.yyd) for

the RINEX observation data. If the compression file or not is recognized by the file extension. If a
wild‐card (*) is included in the file path, the wild‐card is expanded and the multiple files are read.

(3) If you process RINEX data in the relative positioning modes as: DGPS/DGNSS, Kinematic, Static,
Moving‐Base or Fixed, you have to input the second file path of the base‐station receiver in the ʺRINEX
OBS: Base Stationʺ field in addition to the rover observation data file.

29

RTKLIB ver. 2.4.2 Manual

(4) You also have to input the path of RINEX navigation message files of GPS, GLONASS, Galileo, QZSS
and SBAS in the ʺRINEX *NAV/CLK, SP3, IONEX or SBS/ EMSʺ field. If you leave first and second field
blank, the observation data file path with the extension replaced by .*nav

(.obs)

or .yyN,.yyG,.yyH,.yyQ and .yyP (.yyO) is used for the navigation message files of GPS,
GLONASS, Galileo, QZSS, BeiDou and SBAS. If a wild‐card (*) is included in the file path, the
wild‐card is expanded and the multiple files are used like observation data files. To use precise
ephemeris and clock for PPP‐Kinematic, PPP‐Static or PPP‐Fixed mode, you can input a SP3‐c (for
precise satellite ephemeris and clock) or RINEX CLK (for precise satellite clock) file path in the field.
You can input an IONEX 1.0 file path for ionospheric VTEC grid corrections. For SBAS corrections, you
can input a SBAS message log file path as RTKLIB format or EMS (EGNOS message server) 2.0 format
file. You can also include wild‐cards (*) in these file paths. The wild‐cards are expanded and multiple
files are used. You can input SSR (state space representation) corrections as RTCM 3 messages in a
input file field. The formats of these input files are recognized by their extensions as follows:

(a) .sp3,.SP3,.eph,.EPH

: SP3‐c precise ephemeris file [22]

(b) .sbs,.SBS,.ems,.EMS

: SBAS message log file (Appendix B.2 and [26])

(c) .rtcm3,.RTCM3

: RTCM 3 SSR correction message file [18]

(d) .*i,.*I

: IONEX VTEC grid data file [24]

(e) others

: RINEX OBS, NAV or CLK (automatically recognized) [9]‐[15]

(5) Input the output file path in the text field ʺSolutionʺ. The field is automatically set as the first input file
path with the extension replaced by .pos or .nmea. If you check ʺDirʺ and fill in the field, the output
directory is set to the specified directory. You can modify the output file path manually by editing the
field content.

(6) Push Options... button to set the processing options. For the detailed options for RTKPOST, refer 3.5
Configure Positioning Options for RTKNAVI and RTKPOST. You can set the start time or end time by
checking and setting Time Start (GPST) or Time End (GPST) field in the main window. You also set the
time interval by checking and setting the ʺIntervalʺ field. With the ? button, the input time in GPS time
can be converted to UTC, GPS Week/TOW, Day of Year, Day of Week, Time of Day and Leap Seconds.

30

RTKLIB ver. 2.4.2 Manual

Figure 3.4‐2 Time Dialog of RTKPOST

(7) If you check both of the ʺTime Startʺ and ʺTime Endʺ fields, you can check ʺUnitʺ for multiple session
analysis. If the ʺUnitʺ field checked and set the ʺUnitʺ time in hours, the analysis session is separated to
multiple sessions for the unit time. To avoid overwriting the previous output file, the output file path
has to contain the keyword replaced according to the session time. For the details of the keyword
replacement in the input or output file paths, refer 3.5 Configure Positioning Options for RTKNAVI
and RTKPOST.

(8) Push Execute button to start the analysis. The processing status is shown in the status message field
lower center in the main window. When you see ʺdoneʺ message here, the analysis is completed. If you
want to stop the processing on the way, push Abort button.

(9) After completing the analysis, by pushing View... button, you can display the content of the output
file by ʺText Viewerʺ. You can reload the output file by pushing

button in the ʺText Viewerʺ

window. To close the window, push Close button. You can configure ʺText Viewerʺ options by
pushing Options... button. You can also search strings in the text by using Find button.

31

RTKLIB ver. 2.4.2 Manual

Figure 3.4‐3 Text Viewer showing Solutions by RTKPOST

(10) By pushing Plot... button, you can also plot the result with RTKPLOT. Refer 3.7 View and Plot
Solutions and Observation Data with RTKPLOT for details.

Figure 3.4‐4 RTKPLOT Window executed by RTKPOST

32

RTKLIB ver. 2.4.2 Manual

(11) By pushing To KML... button, the output file can be converted to Google Earth KML file with the
ʺGoogle Earth Converterʺ dialog. Set or select the options and push Convert button in the dialog. You
can launch Google Earth with the generated KML/KMZ file by pushing Google Earth button. To
specify the Google Earth execution file, configure ʺOptionsʺ ‐ ʺFilesʺ ‐ ʺGoogle Earth Exe Fileʺ.

Figure 3.4‐5 Google Earth Converter Dialog of RTKPOST

(12) With

button in the main window, you can view and plot the input observation data RTKPLOT.

You can also display the contents of the input files with Text Viewer by pushing

(13) In case of output solution statistics or debug trace as the processing options, push

button.

buttons lower

left of the window to view the solution statistics file or the debug trace file. To check processing error or
warning in case of improper results, set Debug Trace in ʺOptionsʺ ‐ ʺOutputʺ dialog to ʺLevel 2ʺ (trace
ERROR and WARNING) and see the output debug trace file.

33

RTKLIB ver. 2.4.2 Manual

3.5

Configure Positioning Options for RTKNAVI and RTKPOST

By pushing Options... button in the main windows of RTKNAVI or RTKPOST, you can set the positioning
options. Selectable or changeable positioning options are as follows. These options can be saved to the
configuration file by pushing

Save

button on the dialog and select the file path. The options can be

loaded from a configuration file by pushing

Load

button and selecting a configuration file. For the

configuration file, refer B.4. The keywords which can be included the configuration file are also shown in
the following tables. The models specified in these options are also explained in Appendix E for details.

(1) Setting 1

Figure 3.5‐1 Options Dialog (Setting 1) of RTKNAVI and RTKPOST

Item
Positioning
Mode

Descriptions
Set positioning mode
‐ Single : Single point positioning or SBAS DGPS
‐ DGPS/DGNSS : Code‐based differential GPS
‐ Static : Carrier‐based Static positioning
‐ Kinematic: Carrier‐based Kinematic positioning
‐ Moving‐Base: Moving baseline
‐ Fixed: Rover receiver position is fixed *
‐ PPP Kinematic: Precise Point Positioning with
kinematic mode
‐ PPP Static: Precise Point Positioning with static mode
‐ PPP Fixed: Rover receiver position is fixed with PPP
mode *

34

Configuration
File
pos1posmode

Notes
*
For residuals
analysis

RTKLIB ver. 2.4.2 Manual

Item
Frequencies

Filter Type

Elevation
Mask
SNR Mask

Rec Dynamics

Earth Tides
Correction

Descriptions
Set used carrier frequencies
‐ L1 : L1 Single frequency
‐ L1+2 : L1 and L2 Dual‐frequency
‐ L1+2+5: L1, L2 and L5 Triple‐frequency
Set filter type
‐ Forward: Forward filter solution
‐ Backward: Backward filter solution *
‐ Combined: Smoother combined solution with
forward and backward filter solutions *
Set elevation mask angle in degree.
Set SNR mask. Push ... button to show the ʺSNR Maskʺ
dialog. Set SNR thresholds to reject satellite signals for
each 5 deg elevation bins in the dialog. If both of
ʺRoverʺ and ʺBase Stationʺ are unchecked, these SNR
masks are not applied.
Set the dynamics model of the rover receiver.
‐ OFF: Dynamics is not used
‐ ON: Receiver velocity and acceleration are
estimated.
The receiver position is predicted with the estimated
velocity and acceleration.
Set whether earth tides correction is applied or not
‐ OFF: Not apply earth tides correction
‐ Solid: Apply solid earth tides correction
‐ Solid/OTL: Apply solid earth tides, OTL (ocean tide
loading) and pole tide corrections. *
To apply OTL correction, set the OTL coefficients file
path in ʺOcean Loading BLQ Formatʺ in the ʺFilesʺ tab
and the marker name have to be include in the input
RINEX file to select the station in BLQ file.
To apply pole tide, set ERP (earth rotation parameter)
file path in ʺEOP Data Fileʺ in the ʺFilesʺ tab.

35

Configuration
File
pos1frequency

pos1soltype

Notes
N/A to Single,
PPP‐* modes

*
N/A to
RTKNAVI and
Single mode

pos1elmask
pos1snrmask_r,
snrmask_b,
snrmask_L1,
snrmask_L2,
snrmask_L5
pos1dynamics

pos1tidecorr

Only
applicable to
DGPS/DGNSS
or Kinematic
modes
N/A to Single
mode
*
N/A to
RTKNAVI

RTKLIB ver. 2.4.2 Manual

Item
Ionosphere
Correction

Troposphere
Correction

Satellite
Ephemeris/
Clock

Sat PCV

Rec PCV

PhWindup

Descriptions
Set ionospheric correction options. If you set the
parameter Estimated. Vertical ionospheric delay for
each satellite) are estimated. For long baseline
analysis, ionosphere estimation is effective to
suppress ionosphere delay effects.
‐ OFF : Not apply ionospheric correction
‐ Broadcast: Apply broadcast ionospheric model
‐ SBAS: Apply SBAS ionospheric model
‐ Iono‐Free LC: Ionosphere‐free linear combination
with dual frequency (L1‐L2 for GPS/ GLONASS/
QZSS or L1‐L5 for Galileo) measurements is used for
ionospheric correction
‐ Estimate STEC : Estimate ionospheric parameter
STEC (slant total electron content) *
‐ IONEX TEC: Use IONEX TEC grid data
‐ QZSS Broadcast: Apply broadcast ionosphere model
provided by QZSS
‐ QZSS LEX: (reserved)
Set whether tropospheric parameters (zenith total
delay
at rover and base‐station positions) are estimated or
not.
‐ OFF : Not apply troposphere correction
‐ Saastamoinen: Apply Saastamoinen model
‐ SBAS: Apply SBAS tropospheric model (MOPS)
‐ Estimate ZTD: Estimate ZTD (zenith total delay)
parameters as EKF states *
‐ Estimate ZTD+Grad: Estimate ZTD and horizontal
gradient parameters as EKF states *
Set the type of satellite ephemeris.
‐ Broadcast : Use broadcast ephemeris
‐ Precise : Use precise ephemeris *
‐ Broadcast+SBAS: Broadcast ephemeris with SBAS
long‐term and fast correction
‐ Broadcast+SSR APC: Broadcast ephemeris with
RTCM
SSR correction (antenna phase center value)
‐ Broadcast+SSR CoM: Broadcast ephemeris with
RTCM
SSR correction (satellite center of mass value)
‐ QZSS LEX: (reserved)
Set whether the satellite antenna PCV (phase center
variation) model is used or not. To use the feature, set
ʺSatellite Antenna PCV Fileʺ in ʺFilesʺ tab.
Set whether the receiver antenna PCV model is used
or not. To use the feature, set ʺReceiver Antenna PCV
Fileʺ in ʺFilesʺ tab.
Set whether the phase windup correction for PPP
modes is applied or not.

36

Configuration
File
pos1ionoopt

pos1tropopt

Notes
*
N/A to Single,
PPP‐* modes

* N/A to Single
mode.

pos1sateph

pos1posopt1

N/A to Single
mode

pos1posopt2

N/A to Single
mode

pos1posopt3

Only
applicable to
PPP‐* modes.

RTKLIB ver. 2.4.2 Manual

Item
Reject Ecl

RAIM FDE

Excluded
Satellites
(+PRN:
Included)

Navigation
System

Descriptions
Set whether the GPS Block IIA satellites in eclipse are
excluded or not. The eclipsing Block IIA satellites
often degrade the PPP solutions due to unpredicted
behavior of yaw‐attitude.
Set whether RAIM (receiver autonomous integrity
monitoring) FDE (fault detection and exclusion)
feature is enabled or not. In case of RAIM FDE
enabled, a satellite is excluded if SSE (sum of squared
errors) of residuals is over a threshold. The excluded
satellite is selected to indicate the minimum SSE.
Set the excluded satellites for positioning. Fill in the
PRN numbers of the satellites separated by spaces.
For GLONASS, Galileo, QZSS, BeiDou and SBAS, use
Rnn, Enn, Jnn, Cnn and Snn, respectively (nn: satellite
PRN or slot number).
If ʺ+ʺ is added to the head of the satellite ID, the
satellite is included for positioning even if the satellite
is unhealthy.
Check used navigation satellite systems. If unchecked,
satellites of the system are not used for positioning.
‐ GPS
‐ GLONASS
‐ Galileo
‐ QZSS
‐ SBAS
‐ BeiDou

Configuration
File
pos1posopt4

pos1posopt5

pos1exclsats

pos1navsys

Figure 3.5‐2 SNR Mask Dialog of RTKNAVI and RTKPOST Options

(2) Setting 2

37

Notes
Only
applicable to
PPP‐* modes.

RTKLIB ver. 2.4.2 Manual

Figure 3.5‐2 Options Dialog (Setting 2) of RTKNAVI and RTKPOST

Item

Descriptions

Integer
Ambiguity
Resolution
(GPS)

Set the strategy of integer ambiguity resolution for
GPS
‐ OFF : No ambiguity resolution
‐ Continuous : Continuously static integer ambiguities
are estimated and resolved *
‐ Instantaneous : Integer ambiguity is estimated and
resolved by epoch‐by‐epoch basis *
‐ Fix and Hold : Continuously static integer
ambiguities are estimated and resolved. If the
validation OK, the ambiguities are tightly
constrained to the resolved values. *
‐ PPP‐AR : Ambiguity resolution in PPP
(Experimental) **

Integer
Ambiguity
Resolution
(GLO)

Set the strategy of GLONASS integer ambiguity
resolution
‐ OFF: Ambiguities are not fixed.
‐ ON: Ambiguities are fixed. Usually the ambiguity of
only the same types receiver pair for the rover and
the base station can be fixed. The different receiver
types have IFB (inter‐frequency bias) which cannot
be canceled by DD.
‐ Auto calibration: Receiver inter‐channel bias terms
are estimated as a linear equation by the frequencies.
Set the integer ambiguity validation threshold for
ʺratio‐testʺ, which uses the ratio of squared residuals
of the best integer vector to the second‐best vector.
Set minimum confidence level to fix ambiguity in
PPP‐AR mode

Min Ratio to
Fix
Ambiguity
Min
Confidence to
Fix Amb.
Max FCB to
Fix Amb.

Set maximum FCB (fractional cycle bias) to fix
ambiguity in PPP‐AR mode

38

Configuration
File
pos2armode

pos2gloarmode

pos2arthres

Notes
Default:
Continuous Not
applicable to
Single mode.
* Only
applicable to
Kinematic,
Static, Moving‐
baseline and
Fixed modes.
** Only
applicable
to PPP‐* modes
and RTKPOST
Default:
ON
Only applicable
to Kinematic,
Static, Moving‐
baseline and
Fixed modes.

Default value:
3.0

RTKLIB ver. 2.4.2 Manual

Item
Min Lock /
Elevation to
Fix
Ambiguity
Min Fix /
Elevation to
Hold
Ambiguity
Outage to
Reset
Ambiguity/
Slip Thres
Max Age of
Differential
Sync Solution

Reject
Threshold
of GDOP/
Innov.
Number of
Iteration

Baseline
Length
Constraint

Descriptions
Set the minimum lock count and the minimum
elevation angle (deg) to fix integer ambiguity. If the
lock count or the elevation angle is less than the value,
the ambiguity is excluded from the fixed integer
vector.
If you select ʺFix and Holdʺ mode for Integer
Ambiguity Resolution, set the minimum fix count and
the minimum elevation angle (deg) to hold ambiguity.
Set the outage count to reset ambiguity. If the data
outage count is over the value, the estimated
ambiguity is reset to the initial value. And set the
cycle‐slip threshold (m) of geometry‐free LC
carrier‐phase difference between epochs.
Set the maximum value of age of differential (s)
between the rover and the base station.
Set time synchronization mode of solutions:
‐ OFF: Minimum latency mode. The solution is output
soon after rover data input. The delayed base station
or correction data are extrapolated to the rover time.
‐ ON: Matched solution mode. The solution is output
after both rover data and base station or correction
data prepared. The solution time may be behind the
rover time with a certain delay.
This feature is not implemented in ver.2.4.2.
Set the reject threshold of GDOP and innovation
(pre‐fit residual) (m). If the GDOP or the innovation is
over the value, the observable is excluded for the
estimation process as an outlier.
Set the number of iteration in the measurement
update of the estimation filter. If the baseline length is
very short like 1 m, the iteration may be effective to
handle the nonlinearity of measurement equation.
If Moving‐Base mode, check and set the constraint of
the baseline length. Fill in the length in m and the
standard deviation (m) of the constraint.

39

Configuration
File
pos2arlockcnt,
arelmask

Notes
Default value:
0, 0

pos2arminfix,
elmaskhold

Default value:
10, 0

pos2aroutcnt,
pos2slipthres

Default value:
5, 0.05

pos2maxage

Default value:
30
N/A to
RTKPOST and
Single mode
Default value:
OFF

pos2syncsol

pos2rejgdop,
rejionno

Default value:
30, 30

pos2niter

Default value: 1

pos2baselen,
basesig

RTKLIB ver. 2.4.2 Manual
(3) Output

Figure 3.5‐3 Options Dialog (Output) of RTKNAVI and RTKPOST

Item
Solution
Format

Output
Header
Output
Processing
Options
Time Format

# of Decimals
Latitude/
Longitude
Format
Field
Separator

Descriptions
Set the output solution format.
‐ Lat/Lon/Height : Latitude, longitude and height
‐ X/Y/Z‐ECEF : X/Y/Z components of ECEF
coordinates
‐ E/N/U‐Baseline: E/N/U components of baseline
vector
‐ NMEA0183 : NMEA GPRMC, GPGGA, GPGSA,
GLGSA, GAGSA, GPGSV, GLGSV and GAGSV
Set whether the header is output or not.

Configuration
File
outsolformat

Notes
For RTKNAVI,
specify options
as Output
Streams
setting.

outouthead

N/A to NMEA

Set whether the processing options are output or not.

outoutopt

RTKPOST only
N/A to NMEA

Set the format of time
‐ ssssssss.sss GPST : GPS week and time of week
‐ hh:mm:ss GPST : yyyy/mm/dd hh:mm:ss GPST
‐ hh:mm:ss UTC : yyyy/mm/dd hh:mm:ss UTC
‐ hh:mm:ss JST : yyyy/mm/dd hh:mm:ss JST
Set number of decimals in the time format

outtimesys,
timeform

N/A to NMEA

outtimendec
outdegform

N/A to NMEA

outfieldsep

N/A to NMEA

Set the formats of latitude and longitude if the
solution format is set to Lat/Lon/Height.
‐ ddd.dddddddd : Degree
‐ ddd mm ss.sss : Degree minute second
Set the separator for fields.

40

N/A to NMEA

RTKLIB ver. 2.4.2 Manual

Item
Datum

Height

Geoid Model

Solution for
Static
Mode

NMEA
Interval (s)
RMC/GGA
NMEA
Interval (s)
GSA/GSV
Output
Solution
Status

Output
Debug Trace

Descriptions
Set the datum if the solution format option is set to
Lat/Lon/Height.
‐ WGS84 : WGS84 datum
‐ Tokyo : Tokyo datum
(current version supports only WGS84)
Set the type of height.
‐ Ellipsoidal : Ellipsoidal height
‐ Geodetic : Geodetic height
Set the geoid model if the Height option is set to
Geodetic.
‐ Internal: Internal geoid model
‐ EGM96‐BE (15ʺ) : EGM96 (15ʺ x 15ʺ grid) *1
‐ EGM2008‐SE (2.5ʺ) : EGM2008 (2.5 x 2.5ʺ grid) *2
‐ EGM2008‐SE (1ʺ): EGM2008 (1 x 1ʺ grid) *2
‐ GSI2000 (1x1.5ʺ): GSI2000 (1x1.5ʺ grid) *3
If using external geoid model, specify the geoid file
path in ʺFilesʺ tab.
Set the solution type for Static or PPP‐Static mode
‐ All: all solutions for the processing period are
outputted
‐ Single: Only one solution for the processing period is
output. The time of solution is first epoch in the
processing period.
Set the output interval of NMEA GPRMC, GPGGA
messages

Configuration
File
-

Notes

out-height

out-geoid

outsolstatic

RTKPOST only

outnmeaintv1

RTKNAVI only

Set the output interval of NMEA GPGSA, GLGSA,
GAGSA, GPGSV, GLGSV, GAGSV messages

outnmeaintv2

RTKNAVI only

Set the output level of the solution status file. The
solution status file contains estimated states and
residuals. The solution status file is created in the
current directory (RTKNAVI) or in the output file
directory (RTKPOST).
Set the output level of debug trace file. If setting OFF,
any debug trace file is not output. The debug trace file
is created in the current directory (RTKNAVI) or in
the output file directory (RTKPOST).

outoutstat

-

*1 WW15MGH.DAC (http://earth‐info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/binarygeoid.html )
*2 Und_min1x1_egm2008_isw=82_WGS84_TideFree_SE,
Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree_SE
(http://earth‐info.nga.mil/GandG/wgs84/gravitymod/egm2008/egm08_wgs84.html )
*3 gsigeome.ver4 (http://vldb.gsi.go.jp/sokuchi/geoid/download/down.html)

41

RTKLIB ver. 2.4.2 Manual
(4) Statistics

Figure 3.5‐4 Options Dialog (Statistics) of RTKNAVI and RTKPOST

Item
Measurement
Errors
Code/Carrier‐
Phase Error
Rate L1/L2
Carrier‐Phase
Error
Carrier‐Phase
Error/sinEl
Carrier‐Phase
Error/Baseline
Doppler
Frequency
Process
Noises
Receiver
Accel
Horiz/Vertical
Carrier‐Phase
Bias
Vertical
Ionospheric
Delay
Zenith
Tropospheric
Delay

Configuration
File

Descriptions

Notes

Set the ratio of standard deviations of pseudorange
errors to carrier‐phase errors for L1 and L2/L5/L6.

statseratio1,
eratio2

Set the base term of carrier‐phase error standard
deviation (m).
Set the elevation dependent term of carrier‐phase
error standard deviation (m/sin(el)).
Set the baseline‐length dependent term of
carrier‐phase error standard deviation (m/10km).
Set the standard deviation of Doppler errors (Hz)
(Current version does not use the value)

statserrphase

statserrdoppler

Default value: 1

Set the process noise standard deviation of the
receiver acceleration as the horizontal or vertical
component. (m/s2/sqrt(s)). If Receiver Dynamics is set
to OFF, they are not used.
Set the process noise standard deviation of
carrier‐phase
bias (ambiguity) (cycle/sqrt(s)).
Set the process noise standard deviation of vertical
ionospheric delay per 10 km baseline (m/sqrt(s)).

statsprnaccelh,
prnaccelv

Default value:
1 and 0.1

statsprnbias

Default value:
1E‐4

statsprniono

Default value:
1E‐3

Set the process noise standard deviation of zenith
tropospheric delay (m/sqrt(s)).

statsprntrop

Default value:
1E‐4

42

statserrphaseel
statserrphasebl

Default value:
100,
100
Default value:
0.003
Default value:
0.003
Default value: 0

RTKLIB ver. 2.4.2 Manual

Item
Satellite Clock
Stability

Descriptions
Set the satellite clock stability (s/s). The value is used
for interpolation of base‐station observables.

Configuration
File
statsclkstab

Notes
Default value:
5E‐12

(5) Positions

Figure 3.5‐5 Options Dialog (Positions) of RTKNAVI and RTKPOST

Item

Configuration
File

Descriptions

Rover
Lat/Lon/
Height
(deg/m)

Set the position of the rover antenna if the rover
antenna is fixed. See the same field for Base Station.

Antenna Type

Select the type of the rover antenna.
To select the antenna type, set the Receiver Antenna
PCV File path in Files. If ʺ*ʺ is used, antenna type and
antenna delta are recognized by the antenna
information of RINEX OBS header (RTKPOST) or
RTCM antenna information (RTKNAVI).
Set the delta position of the rover antenna as the
E/N/U offsets of ARP (antenna reference point)
position with refer to the marker (m).

Delta‐E/N/U

Base Station

43

ant1postype,
pos1, pos2,
pos3
ant1anttype

ant1antdele,
antdeln,
antdelu

Notes

RTKLIB ver. 2.4.2 Manual

Item

Descriptions

Lat/Lon/Heig
ht (deg/m)

Set the position of the base‐station antenna.
‐ Lat/Lon/Height (deg/m): Latitude/longitude/height
in degree and m
‐ Lat/Lon/Height (dms/m): Latitude/longitude/height
in degree/minute/second and m
‐ X/Y/Z‐ECEF (m): X/Y/Z components in ECEF frame.
‐ RTCM Station Position: Use the antenna position
included in RTCM messages *
‐ Average of Single‐Pos: Use the average of single
point solutions **
‐ Get from Position File: Use the position in the
position file. The station is searched by using the
head 4‐character ID of the rover observation data file
path. **
‐ RINEX Header Position: Use the approximate
position in RINEX OBS header. **
Select the type of the base‐station antenna.
To select the antenna type, set Receiver Antenna PCV
File in Files. If ʺ*ʺ is used, antenna type and antenna
delta are recognized by the antenna information of
RINEX OBS header (RTKPOST) or RTCM antenna
information (RTKNAVI).
Set the delta position of the base‐station antenna as
E/N/U offsets of ARP position with refer to the marker
(m).

Antenna Type

Delta‐E/N/U

Station
Position File

Input the station position file path to retrieve the
position from the station list. The station position file
is a text file which contains the multiple lines. Each
line represents a record for a station. A record
contains:
- Latitude (deg)
- Longitude (deg)
- Ellipsoidal height (m)
- Station ID
- Station name
separated by spaces. The line starting ʺ%ʺ is treated as
the comment line. An example station position file is
found at rtklib_<ver>\data\stations.pos.

Configuration
File
ant2postype,
pos1, pos2,
pos3

Notes
Height is
specified as
ellipsoidal
height
* RTKNAVI only
** RTKPOST
only

ant2anttype

ant2antdele,
antdeln,
antdelu
filestaposfile

SINEX station positions can be used as well. An
sample SINEX file is found at
rtklib_<ver>\data\igs10P1565_wocov.snx

If you set Station Position File in ʺFilesʺ tab, you can select the potion of the rover or the base‐station
antenna from the station list in ʺStationsʺ dialog by pushing ... button. You can load Lat/Lon/Hgt format or
SINEX format file. The file type is automatically recognized. You can search a station Id or Name with
Find button with a specified word in the Find field.

44

RTKLIB ver. 2.4.2 Manual

Figure 3.5‐6 Positions Dialog of RTKNAVI and RTKPOST Options

(6) Files

Figure 3.5‐7 Options Dialog (Files) of RTKNAVI and RTKPOST

45

RTKLIB ver. 2.4.2 Manual

Item
Satellite
Antenna
PCV File
ANTEX

Receiver
Antenna
PCV File
ANTEX or
NGS PCV

Geoid Data
File
DCB Data File

EOP Data File

Ocean
Loading BLQ
Format
Google Earth
Exe File
FTP/HTTP
Local
Directory

Descriptions
If you use the precise ephemeris or SSR correction,
input the ANTEX antenna parameters file path for the
satellite antenna PCV (phase center variation)
correction. Usually use latest igs08.atx file
provided by IGS.
An example of the ANTEX file is found at
rtklib_<ver>\data\igs08.atx.
If you apply the receiver antenna phase center offset
and PCV correction, input ANTEX or NGS type
antenna parameters file path.
An example of the antenna parameter file is found at
rtklib_<ver>\data\igs08.atx.
or
rtklib_<ver>\data\ngs_abs.pcv.
Input the file path of the geoid data file if selecting the
external model as Geoid Model.
Input the file path of DCB correction for PPP in CODE
format.
An example of the antenna parameter file is found at:
rtklib_<ver>\data\P1C1_ALL.DCB
rtklib_<ver>\data\P2C2.DCB
rtklib_<ver>\data\P1P2_ALL.DCB
Input the file path of an EOP data file. The format of
the EOP data file shall be IGS ERP format version. 2
[62].
Input the file path of an OTL coefficients file. The
format of the OTL coefficients file is BLQ format.[63]

Configuration
File
filesatantfile

Notes

filercvantfile

filegeoidfile
filedcbfile

fileeopfile
fileblqfile

Input the execution file path of Google Earth.

-

RTKPOST only

Input the local directory for FTP/HTTP download.
The downloaded files are save in the directory.

filetempdir

RTKNAVI only

46

RTKLIB ver. 2.4.2 Manual
(7) Misc (RTKNAVI)

Figure 3.5‐8 Options Dialog (Misc) of RTKNAVI

Item

Descriptions

Processing
Cycle/ Buffer
Size

Set the processing cycle time of in ms. Usually set 100
ms or less value.
Set the input message buffer size in bytes. Usually set
it to 32768 or more.
Set the timeout and re‐connect interval for TCP client
and NTRIP client connections in ms. If the timeout
time expired without sever response, RTKNAVI
retries to connect to server after waiting for the
re‐connect interval.
Set the NMEA GPGGA transmission cycle to NRTK
server in ms.
If output or log file swap enabled, set the overlapped
periods between the previous and the new output
files in second. If you set it to 0, the periods of these
files are not overlapped. This feature is to avoid the
missing of transient data by the output file swapping.
Set the internal solution buffer size and log size in
epochs. To increase the length of the receiver
trajectory on ʺRTK Mapʺ, increase the solution buffer
size.
Select navigation messages to be used.
‐ (1) All: In any of the input streams
‐ (2) Rover: In the rover receiver stream
‐ (3) Base Station: In the base station receiver stream
‐ (4) Correction: In the correction stream
If SBAS DGPS correction enabled, input SBAS satellite
PRN number to be used. If you input 0, all available
SBAS satellites are used.

Timeout/
Re‐Connect
Interval

NMEA Cycle/
File Swap
Margin

Solution
Buffer/Log
Size
Navigation
Message
Selection

SBAS Satellite
Selection

47

Configuration
File
miscsvrcycle

Notes

misctimeout,
reconnect

miscnmeacycle

miscbuffsize

miscnavmsgsel

miscsbasatsel

Default: 52001

RTKLIB ver. 2.4.2 Manual

Item
Monitor Port

HTTP/NTRIP
Proxy
Solution Font
TLE Data

Sat No

Configuration
File
-

Descriptions

Set monitor port number. The monitor port is TCP
server port to connect from outside or by RTKPLOT
for real‐time solution monitor. If multiple instances of
RTKNAVI are generated, the following numbers are
used automatically. If 0 is set, the monitor port is not
used.
miscSet HTTP/NTRIP proxy server address and port
<address>:<port>
f
number as
orm to connect the proxyaddr
NTRIP Caster via a HTTP‐Proxy server.
Select the font of the solution display in the main
window.
Specify NORAD TLE (two line element) satellite orbit element data file. TLE data are used to compute
satellite positions for skyplot if the satellite ephemeris
is unavailable. Both of two line format or three line
format of TLE data can be used. A sample TLE data
can be found at:
rtklib_<ver>/data/
catalbe_2l_2013_01_09_pm.txt.
Specify the satellite number file which is to connect
GNSS satellite/PRN numbers and TLE satellite catalog
numbers in NORAD TLE data file. A sample satellite
number file can be found at
rtklib_<ver>/data/TLE_GNSS_SATNO.txt.
*1 To obtain the latest TLE data file, refer the following URLs:
(a) CelesTrack: http://celestrak.com
(b) SpaceTrack: http://www.space‐track.org

(8) Misc (RTKPOST)

Figure 3.5‐9 Options Dialog (Misc) of RTKPOST

48

Notes

*1

RTKLIB ver. 2.4.2 Manual

Item

Descriptions

Time
Interpolation
of Base
Station
Observation
Data
SBAS Satellite
Selection

Select ON to enable time interpolation of base station
data. If selecting ON, the base station data are linearly
interpolated to the rover epoch and DD (double‐
difference) is made with them. If not checked, nearest
epoch of base station data is used for DD.

RINEX Opt
(Rover)

If SBAS DGPS correction enabled, input SBAS satellite
PRN number to be used. If you input 0, all available
SBAS satellites are used.
Specify RINEX read options for rover RINEX
observation data as follows. Multiple options can be
input separated by spaces.
-GLss[=+n.nn]:
-RLss[=+n.nn]:
-ELss[=+n.nn]:
-JLss[=+n.nn]:
-CLss[=+n.nn]:
-SLss[=+n.nn]:

select
select
select
select
select
select

GPS
GLO
GAL
QZS
BDS
SBS

signal
signal
signal
signal
signal
signal

Configuration
File
misctimeinterp

miscsbasatsel
miscrnxopt1

ss
ss
ss
ss
ss
ss

ss
: signal id (refer Appendix D.3)
=+n.nn: phase shift +n.nn (cycle) to be
add to carrier-phase observables

RINEX Opt
(Base)
Station ID List

Without the option and multiple signals in a
frequency, RTKLIB select a signal for a frequency
according to the default priorities of signals. Refer
Appendix D.4 Default Priorities of Multiple Signals.
Specify RINEX read options for base‐station RINEX
observation data same as the RINEX Opt (Rover).
For batch processing with multiple input files or
multiple sessions, you can set input file paths or
output file path containing the following keywords:

miscrnxopt2

%Y, %y, %m, %d, %n, %W, %D, %h, %H, %r, %b

Rovers

Base Stations

The keywords are replaced by the proper values or
expanded for multiple session analysis.
To enable time keywords, set Time Start, Time End
and Unit (optional) in the main window. For
keywords %r, %b , input Rover List or Base Station
List below.
For online reference, push ʺ?ʺ button.
Input the rover ID list to replace keyword %r in input
and output file paths. The line starting with ʺ#ʺ is
treated as a comment.
Input the base station ID list to replace keyword %b in
input and output file paths. The line starting with ʺ#ʺ
is treated as a comment.

49

-

-

Notes

RTKLIB ver. 2.4.2 Manual

3.6

Convert Receiver Raw Data to RINEX with RTKCONV

RINEX (Receiver Independent Exchange Format) is a standard GPS/GNSS data format supported by many
receivers or GPS/GNSS post‐processing analysis software. RTKLIB post‐processing analysis AP RTKPOST
can also handle RINEX data files as inputs. For preparing RINEX files, RTKLIB provides the converter AP
RTKCONV, which translates receiver raw, RTCM and BINEX messages to RINEX OBS (observation data),
RINEX NAV (GNSS navigation messages). RTKCONV can also extract SBAS messages from the receiver
raw data and output the SBAS log file.
The supported RINEX versions are 2.10, 2.11, 2.12, 3.00, 3.01 and 3.02 (draft) with RTKLIB extensions. Refer
Appendix B.2 for SBAS log files and Appendix D.1 for supported RINEX files.

(1) Execute the binary AP file <install dir>\rtklib_<ver>\bin\rtkconv.exe. You can see the
main window of RTKCONV.

Figure 3.6‐1 Main Window of RTKCONV

(2) Input the receiver raw data file path to the text field RTCM, RCV RAW or RINEX OBS. Fill in the file
path directly or select the file with the file selection dialog by pushing ... button. You can also drag
and drop the icon of the raw data file to the main window of RTKCONV. Supported receiver raw data
formats are as follows. Refer Appendix D.2 for detailed supported messages for each format. Refer
Appendix D.3 for the relationship to be used for conversion between multiple observation codes
expressed in RINEX version 2, RINEX version 3, RTCM 3 MSM and BINEX.

50

RTKLIB ver. 2.4.2 Manual

(a) RTCM2

: RTCM 2.3

(b) RTCM3

: RTCM 3.0, 3.1 (with amendment 1‐5) and 3.2

(c) NovAtel OEM6

: NovAtel OEM4/OEMV/OEM6 and OEMStar binary format

(d) NovAtel OEM3

: NovAtel OEM3 (Millennium) binary format

(e) u‐blox

: u‐blox LEA‐4T, 5T, 6T binary format

(f) Superstar II

: NovAtel Superstar II binary format

(g) Hemisphere

: Hemisphere Crescent/Eclipse binary format

(h) SkyTraq

: SkyTraq S1315F binary format

(i) GW10

: Furuno GW‐10‐II/III binary format

(j) Javad

: JAVAD GRIL/GREIS binary format

(k) NVS BINR

: NVS NV08C BINR binary format

(l) BINEX

: BINEX format (only big‐endian, forward, regular CRC messages)

(m) RINEX

: RINEX OBS/NAV format.

If the wild‐card (*) is used in the file path, the wild‐card is expanded to multiple files and they will be
read. By setting ʺRINEXʺ as the input file format and setting output RINEX version, you can convert
RINEX version 2 to version 3 or RINEX version 3 to version 2. In this case, you can extract and output
RINEX data with selected satellites, signals, time span or time interval of input RINEX data.

(3) Select the format with the pull down menu Format. If you select ʺAutoʺ, RTKCONV recognizes the file
format according to the following file extensions.

(a) RTCM2

: .rtcm2

(b) RTCM3

: .rtcm3

(c) NovAtel OEM6

: .gps

(d) u‐blox

: .ubx

(e) Superstar II

: .log

(f) Hemisphere

: .bin

(g) SkyTraq

: .stq

(h) Javad

: .jps

(i) BINEX

: .bnx, .binex

(j) RINEX

: .obs,.*o,.nav,.*n,.*p,.*g,.*h,.*q,.*l

(4) Input the output paths of RINEX OBS (observation data), RINEX NAV (GPS navigation messages),
RINEX GNAV (GLONASS navigation messages), RINEX HNAV (GEO satellite navigation messages),

51

RTKLIB ver. 2.4.2 Manual
RINEX QNAV (QZSS navigation messages), RINEX LNAV (Galileo navigation messages) and SBAS
Log files. Fill in the file path directly or select the file with the file selection dialog by pushing ...
button. If you do not check the checkbox left, the file is not output. RINEX GNAV, HNAV, QNAV and
LNAV are supported only in RINEX version 2. If selecting version 3 as the output RINEX, all
navigation data are output to a combined (mixed) NAV type RINEX file. The output files can include
keywords. The keywords are replaced by time, date or station ID. Push ʺ?ʺ button, to refer the keyword
replacements in output files.

(5) If you want to output the files to a directory, check ʺOutput Directoryʺ and input the output directory.
The directory can be selected by pushing ... button. If the ʺOutput Directoryʺ is not checked, the files
are output to the same directory of the input file. If the output directory is not exist, the directory is
automatically created. Even in this case, the parent directory always must be exist. Otherwise, the
directory creation is failed.

(6) You can set the start time or end time optionally by checking and setting the ʺTime Start (GPST)ʺ or
ʺTime End (GPST)ʺ field upper in the main window. You can also set the time interval option by
checking and setting the field ʺIntervalʺ. If you input ʺTime Startʺ and ʺTime Endʺ, check ʺUnitʺ and
input ʺTime Unitʺ, you can initiate multiple‐session conversion. In this case, please include keywords
to be replaced by date and time in the input file path and the output file paths. Note that RTKCONV
does not confirm the overwrite if the output file exists in such a multi‐session conversion case.

(7) You can push Options... button to configure RINEX options. Set the options for RINEX headers,
navigation systems, observation types or frequencies with ʺOptionsʺ dialog . If you check RINEX Name,
the output file paths are compliant to the RINEX file name convention. Please input Station ID to
complete the output file names for RINEX file name convention. The ʺOptionʺ field is
receiver‐dependent options. Specify the options separated by spaces like ʺ-EPHALL -GL1Xʺ. For
details, refer Appendix D.5 Receiver Dependent Input Option. For RINEX 3, you had better check
ʺScan Obs Typesʺ to obtain effective OBS TYPES in input files. In this case, the input files are scanned to
obtain available OBS TYPE list as the first conversion path and then RTKCONV outputs RINEX as the
second conversion path. If ʺScan Obs Typesʺ unchecked, the OBS TYPES in output RINEX files are
determined by the default OBS TYPES set depending on the input format and the ʺSignal Maskʺ
settings described below.

52

RTKLIB ver. 2.4.2 Manual

Figure 3.6‐2 Options Dialog of RTKCONV

(9)

To set the mask of OBS TYPES to output to the observation file, use the ʺSignal Maskʺ dialog shown by
pushing Mask... button in the ʺOptionsʺ dialog. You shall check signals to be output to RINEX
observation file in the dialog. You shall uncheck signals not to output to the RINEX observation file.
Note that the signals not in the default OBS TYPES set or not in input data are not output even if
checked. Use Set All

or Unset All button to select or deselect all signals. Refer Appendix D.3 for

observation types or signal IDs in the input data and the output RINEX files.

Figure 3.6‐3 Signal Mask Dialog of RTKCONV Options

(8) Push Convert button to start converting the receiver raw data to RINEX and SBAS log files. If you
want to stop the conversion on the way, push Abort button. The status is displayed in the message

53

RTKLIB ver. 2.4.2 Manual
area lower center in the main window. The message O=nnn means the number of converted
observation data (epochs). The message N=nnn, G=nnn, H=nnn, Q=nnn, L=nnn, S=nnn and
E=nnn means the number of navigation messages (NAV, GNAV, HNAV, QNAV and LNAV), SBAS
messages and errors, respectively.

(14) After finishing the conversion, you can see the observation data plot by pushing Plot... button with
RTKPLOT. Refer 3.7 Plot and View Solutions and Observation Data for details. You can also view the
output file with Text Viewer by pushing

button.

(15) By pushing Process... button, you can execute RTKPOST_MKL AP to process the converted RINEX
OBS/NAV files. Refer 3.4 Post‐processing Analysis with RTKPOST for details.

54

RTKLIB ver. 2.4.2 Manual

3.7

View and Plot Solutions with RTKPLOT

RTKLIB contains the AP RTKPLOT to view and plot the positionig solutions by RTKPOST and RTKNAVI
with graphical user interface. RTKPLOT also accepts general NMEA 0183 files or streams to generate the
solution plot.

(1) Execute the binary AP file <install dir>\rtklib_<ver>\bin\rtkplot.exe. You can see the
main window of RTKPLOT. By pushing Plot... button or some buttons of RTKPOST and RTKCONV,
RTKPLOT is also executed.
Plot Type
Selection

Quality Flag
Selection

Tool
Buttons

Time
Scroll‐bar

Reload/
Clear
Button

Tool Bar

Plot Area

Status Bar
Figure 3.7‐1 Main Window of RTKPLOT

(2) Execute the menu ʺFileʺ ‐ ʺ Open Solution 1ʺ and select the solution file with the file selection dialog.
The input solution file can be RTKLIB solution format or NMEA‐0183. If the file format is NMEA‐0183,
the file must contain at least NMEA GPRMC and GPGGA sentences. If the solution file is valid, the
receiver ground track is plot in the window on the map. The color of the marks, lines and grid in the
plot can be changed with the menu ʺEditʺ ‐ ʺOptionsʺ. The status bar at the bottom of the main window
also shows the time range, the number of solution epochs (N=nnnn), the baseline length

55

RTKLIB ver. 2.4.2 Manual
(B=0.0-x.xkm), the number and percentage of each quality solutions (Q=1:nnn(pp%),
2:nnn(pp%),...). The quality flag Q and the marker color means: 1: Fixed, 2: Float, 4: DGPS, 5:
Single (the colors are changeable with the plot options). To screen the marks by the quality flag Q,
select the second pull down menu in the Tool Bar. By drag and drop of the solution file icon to the main
window of RTKPLOT, you can also read and plot the solution file.

Figure 3.7‐2 GND TRK Plot by RTKPLOT

(3) By dragging the mouse with the left button down on the plot, you can drag the map up, down, left and
right . You also change the scale of the map by dragging the mouse up or down with the right button
or by rotating the scroll wheel of the mouse.

(4) By selecting the plot type pull down menu right in Tool Bar, you can switch the plot to E/N/U
components of receiver position (Position), E/N/U components of receiver velocity (Velocity) or E/N/U
components of receiver acceleration (Accel). You can drag the X/Y‐axis with left‐button‐dragging and
change the scale with right‐button‐dragging at the X/Y‐axis area. You can hide or show the three plots
by pushing three buttons right of the plot type pull down menu.

56

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐3 POSITION Plot by RTKPLOT

(5) By selecting the plot type pull down menu, you can switch the plot to NSat/Age/Ratio (number of valid
satellites, age of differential, ratio factor of ambiguity validation). If you set the ʺOutput Solution
Statusʺ option to ʺResidualsʺ, you can show a residuals plot. You can switch the frequency by selecting
L1/LC, L2 or L5. In the residuals plot mode, you can select a satellite with right pull down menu as well
as all satellites. In the residuals plot of carrier‐phases, the red lines indicate cycle slips and gray lines
indicate parity unknown flags (That mean the half‐cycle ambiguities in carrier‐phase are not resolved).

57

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐4 RESIDUALS Plot by RTKPLOT

(6) By pushing tool buttons in the Tool Bar, you can center the current position with
of X‐axis with

, adjust the scale of Y‐axis with

, display the current position as a large mark with

, fix the current track position at the horizontal center with
vertical center with

, start animation with

, adjust the scale

, fix the current track position at the

and stop animation with

. You can also slide ʺTime

Scroll Barʺ to change the current epoch. To clear read data, execute the menu ʺFileʺ ‐ ʺClearʺ or push
button in the Tool Bar. To reload the solution file(s), execute the menu ʺFileʺ ‐ ʺReloadʺ or push
button in the Tool Bar.

(7) By executing the menu ʺFileʺ ‐ ʺOpen Map Imageʺ, you can read a JPEG image and draw the map
image on the background of the plot in case of the ʺGnd Trkʺ plot type. The image can be enabled or
disabled by pushing

button in the Tool Bar.

58

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐5 Map Image Overlay by RTKPLOT

(8)

To adjust the position in the map image, execute the menu ʺEditʺ ‐ ʺMap Imageʺ and input latitude and
longitude of the image‐center, image‐scale along X or Y‐axis in ʺMap Imageʺ dialog. If you finish it,
push Save Tag button to save the adjustment information to an image‐tag‐file. The path of the
image‐tag‐file is the original map image file path + .tag. If the image‐tag‐file already exists, it is
automatically read with the map image itself. The current version does not support rotation of the map
image. Please select the map image in which the north direction is properly aligned to the upper
direction. For example, you can get a JPEG image by the menu ʺFileʺ ‐ ʺSaveʺ of Google Earth. To fix
north to upper, push ʺNʺ button in Google Earth. To avoid the distortion of the map image, set the
coordinates origin inside of or near the map image.

Figure 3.7‐6 Map Image Options Dialog of RTKPLOT

(9) In version 2.4.2, Google Earth View and Google Map View for RTKPLOT are added to plot the solution
on Google Earth or Google Map. To open Google Earth View or Google Map View, execute the menu

59

RTKLIB ver. 2.4.2 Manual
View ‐ Google Earth View... or View ‐ Google Map View of RTKPLOT after the solution read. The
toolbar buttons

or

can also be used to show these views. Notes that the Internet connection is

always necessary to use these views based on services provided by Google.

(10) In the Google Earth View, the toolbar buttons can be used to show/hide navigation control, show/hide
Lat/Lon grid, show/hide scale legend, show/hide overview map, show/hide status bar, enable/disable
layers (terrain, loads, buildings and borders), switch objective/perspective views, zoom up/out, rotate
left/right and fix north/heading up. If the toolbar button ʺshow track pointʺ button on RTKPLOT main
window is down, the track point position is also shown in the Google Earth View as a yellow (solution
1) or red (solution 2) marker. The positions of markers are linked to the marker positions in RTKPLOT
main window. In this case, the marker position can be fixed to the center of the Google Earth View by
pushing ʺFix Track Centerʺ toolbar button. To enable altitude information of the track point, push
ʺEnable Altitudeʺ toolbar button in the Google Earth View.

Figure 3.7‐7 Google Earth View of RTKPLOT

(11) In the Google Map View, the only a toolbar button to fix the track point center as same as the Google
Earth View. Other operations for the Google Map View, use the controls in the Google Map View.

60

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐8 Google Map View of RTKPLOT

(12) By executing the menu ʺEditʺ ‐ ʺWaypoints...ʺ, you can see the ʺWaypointsʺ dialog. With the dialog,
you can load, save, add and delete the way‐points as the list form. By pushing Add button and
editing the point name, the current receiver position can be added to the way‐point list. The positions
of the waypoints are shown on the ʺGnd Trkʺ plot when

button down.

Figure 3.7‐9 Waypoints Dialog of RTKPLOT

(13) To plot multiple solution file, execute the menu ʺFileʺ ‐ ʺOpen Solutions‐2ʺ and select file with the file
selection dialog. You can switch the plot on/off of the solution 1 and 2 with 1

2 buttons in Tool Bar.

To Plot the difference of the solution 1 and the solution 2, push 1‐2 button in Tool Bar.

(14) To set the time range and time interval of the solutions, execute the menu ʺEditʺ ‐ ʺTime Span/Intervalʺ
and check and set the Time Start, Time End and Interval field in ʺTime Span/Intervalʺ dialog.

61

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐10 Time Span/Interval Dialog of RTKPLOT

(15) By Executing the menu ʺEditʺ ‐ ʺSolution Sourceʺ, you can view the source of solutions as the text
form.

Figure 3.7‐11 Solution Source View of RTKPLOT

(16) To plot solutions in real‐time, execute the menu ʺFileʺ‐ʺConnection Settingsʺ and set solution
parameters in ʺConnection Settingʺ dialog. You can select Stream Type, Stream Option (Opt), Stream
Commands (Cmd), Solution Format, Time Format, Lat/Lon Format and Field Sep for both of
solution‐1 and solution‐2. After setting the connection parameters, execute the menu ʺFileʺ‐ʺConnectʺ
or push

button in Tool Bar. To disconnect the external device, execute menu ʺFileʺ‐ʺDisconnectʺ or

push connect button again. For example, if selecting serial as Stream Type and NMEA0183 as Solution
Format, you can monitor external receiverʹs NMEA output in the RTKPLOT window.

62

RTKLIB ver. 2.4.2 Manual

Figure 3.7‐12 Connection Settings Dialog of RTKPLOT

(17) By pushing Plot...

button of RTKNAVI, RTKPLOT automatically runs and connects to the monitor

port of RTKNAVI. If you want to connect to RTKNAVI executed on the remote PC, configure the
connection setting in the Connection Setting dialog like TCP Client as Stream Type, IP address of the
remote PC and port number of monitor port of RTKNAVI and connect to the remote RTKNAVI. In this
case, multiple client connections are allowed from multiple PCs running RTLPLOTs.

(18) To configure the plotting options for RTKPLOT, execute the menu ʺEditʺ ‐ ʺOptions...ʺ and set the
options with the following ʺOptionsʺ dialog.

Figure 3.7‐13 Options Dialog of RTKPLOT

63

RTKLIB ver. 2.4.2 Manual

Item
Time Format
Lat/Lon Format
Show Statistics
Cycle‐Slip

Parity Unknown

Ephemeris

Elevation Mask
Elevation Mask
Pattern
Hide Low Satellite
Maximum DOP
Receiver Position

Satellite System
Excluded Sats
Error Bar/Circle
Direction Arrow
Graph Label
Grid/Grid Label
Compass
Scale

Descriptions
Select time format.
(wwww/ssss, h:m:s GPST, h:m:s UTC or h:m:s LT).
Select latitude and longitude format.
(ddd.ddddd or ddd mm ss.ss)
Set whether statistics are shown or not.
Set whether cycle‐slip position is shown or not in the satellite
visibility plot. If ʺLG Jumpʺ selected, dual frequency geometry
free LC (linear combination) is used to detect cycle‐slips. In the
case of ʺLLI Flagʺ, LLI (loss‐off‐lock indicator) in RINEX
observation data is used. Cycle‐slips are shown as red vertical
lines in the Satellite Visibility plot.
Set whether parity unknown status is shown or not in the
satellite visibility plot. Parity unknown epochs are shown as
gray vertical lines in the satellite visibility plot.
Set whether ephemeris status is shown or not in the satellite
visibility plot. Ephemerides are shown as the grey line under
the observation data. Gray dots mean the Toe (time of
ephemeris). Red ephemeris lines mean the satellite unhealthy.
Set the elevation mask angle (deg) for the satellite visibility plot.
The elevation mask is also used for DOP/NSat plot.
Set whether elevation mask pattern is used or not.
Set whether low elevation satellites under the elevation mask
and the elevation mask pattern are shown or not.
Set the y‐axis limit of DOP/NSat plot.
Set the receiver position for the satellite visibility plot or
skyplot. ʺSingle Solutionʺ uses single‐point results as receiver
positions by using observation and navigation data. For
moving receivers, you shall set it. ʺLat/Lon/Hgtʺ uses latitude,
longitude and height for static receivers specified as the
following Lat/Lon/Hgt fields. ʺRINEX Headerʺ uses ʺAPPROX
POSITION XYZʺ in RINEX observation data header as the
receiver position.
Check selected navigation systems for plots.
Set excluded satellites. Fill in the satellite number or ID
separated by spaces.
Set whether error bar or error circle is shown or not in solution
display. You can select ʺBar/Circleʺ or ʺDotsʺ as the format.
Set whether direction arrow and velocity arrow are shown or
not in the solution ground track plot.
Set whether graph labels are shown or not in solution display.
Set whether grid and grid labels are shown or not in solution
display. Set it to ʺCirclesʺ or ʺCircles/Labelʺ for circular grids.
Set whether compass is shown or not in the solution ground
track plot.
Set whether scale is shown or not in the solution ground track
plot.

64

Notes

RTKLIB ver. 2.4.2 Manual

Item
Auto Fit
Y‐Range (+/‐)
RT Buffer Size

Coordinate Origin

Mark Color 1
(1‐6)
Mark Color 2
(1‐6)
Line Color

Descriptions
Set whether scale is adjusted automatically or not for solution
plots.
Set the range of Y‐axis in solution plots.
Set the buffer size for real‐time solution plots in epochs. The
older solutions over the buffer size are deleted for real‐time
plots.
Select the origin position of solution display as follows.
‐ Start Pos: the first solution position
‐ End Pos: the last solution position
‐ Average Pos: the average of all solution positions
‐ Linear Fit Pos: based on the linearly fitted positions
‐ Base Station: the base station position.
‐ Lat/Lon/Hgt: latitude, longitude and height specified
‐ Auto Input: auto position as follows
‐ Waypoint 1‐10: a waypoint position
If you select ʺLat/Lon/Heightʺ, you have to input latitude,
longitude and ellipsoidal height in the text fields below for the
origin. If selecting ʺAuto Inputʺ, receiver ID is assumed as the
4‐charactors of the solution file name head and the position is
read from the position file. The position file can be selected by
pushing ... button and pushing ʺLoadʺ button in the position list
dialog.
Set the mark colors for solution No. 1 or observation data in
plots. Click color panel right and select color with color
selection dialog.
Set the mark colors for solution No. 2 in plots.
Set the line color in plots.

Text Color

Set the text color in plots.

Grid Color

Set the grid color in plots.

Background Color

Set the background color in plots.

Plot Style

Select the plot style in plots. To delete all of markers and lines
except for the track point mark, set it ʺNoneʺ.
Set the mark size in plots.

Mark Size
Font
Animation
Interval
Update Cycle (ms)
Lat/Lon/Hgt

Select the font in plots. Push ... button and select the font with
the font selection dialog.
Set the animation interval for solution or observation data
plots.
Set the plot update cycle time in ms for real‐time plots
Set latitude, longitude and height for the origin. Fill in the
values directly or push ... button and select a station position.

65

Notes

RTKLIB ver. 2.4.2 Manual

Item
QC Command

RINEX Opt
TLE Data

Sat No

Descriptions

Notes

Set QC command and its options for observation data.
As default, TEQC QC mode options are set. The command is
used for executing the menu ʺEditʺ ‐ ʺObs Data QC...ʺ. The
command must be in the command search path or in the
directory for the RTKLIB executable files.
Set RINEX read options. For RINEX read options, refer
<install dir>\rtklib_<ver>\src\rinex.c for details.
Specify NORAD TLE satellite orbit element data file. The TLE
data are used to compute satellite positions for the skyplot if
the satellite ephemeris unavailable. Both of two line format or
three line format of TLE data can be used. A sample TLE data
can be found at:
<iinstall dir>\rtklib_<ver>\data\
catalbe_2l_2013_01_09_pm.txt.
Specify the satellite number file which is to connect GNSS
satellite/PRN numbers and TLE satellite catalog numbers in
NORAD TLE data file. A sample satellite number file can be
found at
<install dir>\rtklib_<ver>\data\
TLE_GNSS_SATNO.txt.

See also
RTKNAVI
Options dialog

(19) The following menus are provided in RTKPLOT. Some menus can be executed by pushing button on
the Tool Bar.

Menu

File

Tool
Bar

Description

Open Solution‐1...

*

Open solution data No. 1.

Open Solution‐2...

*

Open solution data No. 2.

Open Map Image...

‐

Open map image data for the solution plot.

Open Map Path...

‐

Open map path data for the solution plot.

Browse Solution

‐

Open Obs Data...

‐

Open Nav Data...

‐

Open navigation data manually.

Open Elev Mask...

‐

Open elevation mask data.

Visibility Analysis...

‐

Execute satellite visibility analysis.

Save Image...

‐

Save the image of the plot to an image file.

Save # of Sats/DOP...

‐

Save the number of satellites and DOP to an text
file.

Show ʺSolution Browserʺ window and browse
solution data.
Open observation data. Navigation data are also
open automatically.

66

Notes
* double
click
* double
click

RTKLIB ver. 2.4.2 Manual

Menu
Save SNR,MP and
AZ/EL..

Tool
Bar
‐

Description
Save the SNR, multipath and azimuth/elevation
data to an text file.

Connect...

Connect to external real‐time solution streams.

Disconnect...

Disconnect the connection.

Connection Settings...

‐

Reload
Clear

Show the ʺConnection Settingʺ dialog to
configure the connection options.
Reload solution, observation and navigation
data.
Clear solution, observation and navigation data.

Exit

‐

Time Span/Interval...

‐

Map Image...

‐

Waypoints...

‐

Solution Source...

‐

Obs Data Source...

‐

Obs Data QC...

‐

Copy To Clipboard

‐

Edit

Close and exit RTKPLOT.
Set the ʺTime Span/Intervalʺ dialog to set time
span and time interval.
Show the ʺMap Imageʺ dialog to configure the
size, position and scale of the image data.
Show the ʺWaypointʺ dialog to add or modify the
waypoints.
Show the source of the solution data by Text
Viewer.
Show the source of the observation data by Text
Viewer.
Execute QC of the observation data and show the
results by Text Viewer.
Copy the image of the plot to Clipboard.
Show the ʺOptionsʺ dialog to configure plot
options.

Options
Show Tool Bar

‐

Show or hide the Tool Bar.

Show Status Bar

‐

Show or hide the Status Bar.

Google Earth View...

Show Google Earth View.

Google Map View...

Show Google Map View.

Input Monitor 1...

‐

Input Monitor 2...

‐

View

Center Origin
Fit Horizontal
Fit Vertical
Show Track Point

Show the ʺInput Monitorʺ window for real‐time
input stream No.1.
Show the ʺInput Monitorʺ window for real‐time
input stream No.2.
Move the coordinates origin to the center of the
plot.
Fit the horizontal range of the solution or
observation data in the plot.
Fit the vertical range of the solution data in the
plot.
Show or hide the track point of the solution or
observation data in the plot.

67

Notes

RTKLIB ver. 2.4.2 Manual

Menu

Help

Tool
Bar

Description

Fix Track Center

Fix the track point on the center of the plot.

Fix Track Horizontal

Fix the track point horizontally on the plot.

Fix Track Vertical

Fix the track point vertically on the plot

Show Map Image

Show or hide the map image.

Show Path/Waypoints

Show or hide the map path data.

Animation Start

Start the animation of the plot.

Animation Stop

Stop the animation of the plot.

About...

‐

Show the ʺAbout...ʺ dialog.

68

Notes

RTKLIB ver. 2.4.2 Manual

3.8

View and Plot Observation Data with RTKPLOT

RTKPLOT is also used to view and plot the RINEX observation data as well as satellite visbility analysis.

(1) To plot the RINEX observation data, execute menu ʺFileʺ ‐‐ ʺOpen Obs Dataʺ of RTKPLOT and select
the RINEX observation and navigation message files. You can select multiple RINEX files. If you do not
select the RINEX navigation message file, RTKPOST reads the observation data file paths with the
extension replaced by .*nav (.obs) or .yyN,.yyG,.yyH,.yyQ,.yyL,.yyP (.yyO) as the GPS,
GLONASS, SBAS, QZSS, Galileo or combined navigation data. If you want read the RINEX navigation
message file separately, execute the menu ʺFileʺ ‐ ʺOpen Nav Messagesʺ. If the input files can be read
properly, you can see a satellite visibility plot. You can use left‐button or right‐button drag to change
the time span. You can also use some tool bar buttons as well as for the solution plot.

Figure 3.8‐1 Satellite Visibility Plot of RTKPLOT

(20) By selecting the pull down menu in Tool Bar, you can switch the plot to the satellite visibility in skyplot
(SkyPlot) or the plot of the number of visible satellites, the DOP/NSat plot (DOP/NSat), the
SNR/Multipath/Elevation plot (SNR/MP/EL) and the SNR/Multipath ‐ EL plot (SNR/MP‐EL). To show
the SNR plots, the observation data must contain SNR (C/N0) information. To show the proper
multipath plots, the observation data must contain dual‐frequency (L1‐L2 for GPS, GLONASS and
QZSS, L1‐L5 for Galileo, L2‐L7 for BeiDou) pseudorange and carrier‐phase. RTKPLOT internally

69

RTKLIB ver. 2.4.2 Manual
generates MP LC (linear combination) with these observables to plot the multipath. To compute the
elevation angle of satellites, RTKPLOT also need satellite positions. In case of RINEX NAV files input,
the satellite positions are computed by using satellite ephemerides in RINEX NAV files. If the RINEX
NAV files are not available, RTKPLOT alternatively uses NORAD TLE (two line element) data set for
satellite positions. In this case, you must specify the receiver position as the latitude, longitude and
height form in the ʺOptionsʺ dialog. You can select signals and satellites with upper pull‐down menus
on the tool bar. In the satellite selection, ʺGʺ, ʺRʺ, ʺEʺ, ʺJʺ, ʺCʺ and ʺSʺ mean GPS, GLONASS, Galileo,
QZSS, BeiDou and SBAS, respectively.

Figure 3.8‐2 Skyplot by RTKPLOT

70

RTKLIB ver. 2.4.2 Manual

Figure 3.8‐3 # of Visible Satellites and DOP Plot by RTKPLOT

Figure 3.8‐4 SNR/Multipath Plot by RTKPLOT

71

RTKLIB ver. 2.4.2 Manual

Figure 3.8‐5 SNR/Multipath ‐ Elevation Plot by RTKPLOT

(21) You can apply the elevation mask by reading the elevation mask data by the menu ʺFileʺ ‐ ʺOpen Elev
Maskʺ and by set the option ʺ Elev Mask Patternʺ ON. For the format of the elevation mask data, refer
the example file found in <install dir>\rtklib_<ver>\data\elmask_sample.txt.

Figure 3.8‐6 Elevation Mask in Skyplot by RTKPLOT

(22) By Executing the menu ʺEditʺ ‐ ʺObs Data Sourceʺ or ʺObs Data QCʺ, you can view the source of

72

RTKLIB ver. 2.4.2 Manual
solutions or the QC result as the text form.

Figure 3.8‐7 QC Result View by RTKPLOT

(23) In ver. 2.4.2, the satellite visibility analysis function is added. With NORAD (North American
Aerospace Defense Command) TLE (two line element) data set, you can predict GNSS satellite
visibility by RTKPLOT anywhere and anytime. To enable this feature, set the TLE data and the satellite
number file path by ʺOptionsʺ dialog. The following figures show examples of these files.

73

RTKLIB ver. 2.4.2 Manual

Figure 3.8‐8 Examples of TLE Data (upper) and Satellite Number File (lower)

NORAD TLE data files are freely available at CelesTrak (http://celestrack.com) or SpaceTrack
(http://www.space‐track.org). You have to download TLE data containing orbit elements of target
GNSS satellites. For all of GNSS satellites, you had better to use ʺfull catalogʺ for all available satellites
provided by SpaceTrack. For more accurate satellite positions, you had better to use newer TLE data.
Another satellite number file is used to translate the TLE satellite numbers to the GNSS satellite
numbers like G23, R03, 139. A sample satellite number file can be found at <install
dir>\rtklib_<ver>\data\TLE_GNSS_SATNO.txt. Note that the correspondence of GNSS
satellite numbers with satellites is sometimes changed by the system constellation change. In this case,
you shall edit and modify the satellite number file by yourself.
To predict the GNSS satellite visibility, set user location as latitude, longitude and height by ʺOptionsʺ
dialog. You have to set ʺReceiver Positionʺ to ʺLat/Lon/Hgtʺ. Then execute the menu ʺFileʺ ‐ ʺVisibility
Analysis...ʺ, you can see ʺTime Span/Intervalʺ dialog.

Figure 3.8‐9 Time Span/Interval Dialog of RTKPLOT

74

RTKLIB ver. 2.4.2 Manual

By the dialog, set ʺTime Startʺ, ʺTime Endʺ in GPS Time, ʺIntervalʺ for the analysis and push ʺOKʺ
button. You can obtain a satellite visibility chart at the specified location. In the chart, the colors
indicate satellite system as GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS as default. You can
switch the plot to Skyplot, DOP/NSat or SNR/MP/EL as same as the observation data plots.

Figure 3.8‐10 Satellite Visibility (Predicted) Plot by RTKPLOT

Figure 3.8‐11 Skyplot (Predicted) by RTKPLOT

75

RTKLIB ver. 2.4.2 Manual

(24) For the plotting options for solution data by RTKPLOT and the menus provided by RTKPLOT, refer
3.7 View and Plot Solution data with RTKPLOT.

76

RTKLIB ver. 2.4.2 Manual

3.9

Download GNSS Products and Data with RTKGET

For PPP (precise point positioning) analysis, you would often need to download IGS (International GNSS
service) precise GNSS products like satellite orbit and clock information. In other cases, you might want to
download the observation data of a CORS (continuous operating reference stations) network from a GNSS
data archive via Internet. To download these GNSS related products and data, RTKLIB offers a useful GUI
download utility AP RTKGET. RTKGET is newly added in ver. 2.4.2.

(1)

Execute the binary AP file <install dir>\rtklib_<ver>\bin\rtkget.exe. You can see the
main window of RTKGET.

Figure 3.9‐1 Main Window of RTKGET

(2)

At first, you have to configure the URL list file for GNSS data. Push
window. You can see the ʺOptionsʺ dialog.

77

Options... button in the main

RTKLIB ver. 2.4.2 Manual

Figure 3.9‐2 Options Dialog of RTKGET

(3)

Fill in the file path or select the file by pushing ... of ʺURL List File for GNSS Dataʺ. Refer Appendix
B.5 for the format of the file. An example of the URL list file for GNSS data is found at <install
dir>\rtklib_<ver>\data\URL_LIST.txt. If you leave the field blank, RTKGET uses the default
URL List file <install dir>\rtklib_<ver>\data\URL_LIST.txt.

(4)

Select download data type by the left list‐box in the main window. You can select multiple data types
in the list. By using combo‐box above the list‐box, you can filter the list by data type categories. The
URL address of download data is shown at the center of the first message area. The local directory is
also shown in the second message area.

Figure 3.9‐3 Selection of Download Data Type by RTKGET

78

RTKLIB ver. 2.4.2 Manual

(5)

Specify the time span in GPS Time with ʺStartʺ, ʺEndʺ and ʺIntvʺ fields. The time keywords in the URL
address of download data are replace by the time specified as the time span. If the URL address
contains the keyword %N, the keyword is replaced by the number in the ʺNo.ʺ field. To specify a
sequence of numbers, use ʺ-ʺ to express the range like ʺ1-99ʺ in the ʺNo.ʺ field.

(6) The URL address contains keyword %s, %S or %r, the keyword is replaced by the station names
selected in the right list‐box ʺStationsʺ. To select the station name, push ... button at the right upper
corner in the main window. You can see the ʺStationsʺ dialog. You can input or edit the station name
lists in the dialog. A line of the station name lists indicate a station name to be used to replace the
keywords in the URL address. To load station name list from a external text file, push Load... button
to select the file. You can save the station name list to external text file by pushing

Save... button.

The external text file is simple text file containing station names as text lines. After input or edit the
station name list, push

OK

button to close the dialog and set the station name list to the main

window.

Figure 3.9‐4 Stations Dialog of RTKGET

(7)

In case of FTP download, set ʺFTP Loginʺ and ʺPasswordʺ for FTP server login. For the most of the
anonymous FTP servers, you can use ʺanonymousʺ and your E‐mail address for the fileds. Then check
or uncheck the following download options:
(a) Skip Existing Files: Set whether you skip the download or not if the local file exists
(b) Unzip/Uncompact Files: Set whether you unzip of uncompress the download files if these are
compressed.

79

RTKLIB ver. 2.4.2 Manual
(c) Local Directory: Check and set the local directory path for downloaded files. Push

... to select

directory by the ʺDirectory Selectionʺ dialog . If not checked, the default download directory in the
URL list file. The directory path can contain keywords to be replaced by date, time, station name and
envrionment variable as same as URL list. Push

?

button to show detailed replacement in the

directory path.

Figure 3.9‐5 Keyword Replacement Dialog of RTKGET

(8)

Select station names in ʺStationsʺ list‐box. Push A button to select all of stations and D

button to

deselect all of stations.

(9)

Push

Download

button to start download. The third message area shows the download status

indicator for each file. The indicator ʺ_ʺ means in progress, ʺoʺ means download OK, ʺ.ʺ means
skipped, ʺxʺ means no data and ʺXʺ means some download error. To abort the download halfway,
push Abort

button. Even in pushing the button, the last download still in progress cannot canceled.

Please wait a while to finish the last download to abort

Figure 3.9‐6 Data Downloading by RTKGET

80

RTKLIB ver. 2.4.2 Manual

(10) After completing all of the downloads or aborting the download, push

Files... button in the main

window to execute Windows explorer showing the downloaded local directory. To see the download
log, push

Log...

button. You can see the download log in ʺText Viewerʺ window. To enable the

download log function, you have to set the ʺDownload Log Fileʺ field in the ʺOptionsʺ dialog. If
ʺAppendʺ checked for the download log, the logs are added to the existing log file if it exists. If not
checked, the download log is newly generated for every tries of downloads.

Figure 3.9‐7 Download Log View by RTKGET

(11) To test GNSS data existence as local files before actual data download, push

Test...

button after

settings as same as the actual download described above. You can see the local data availability report
in the ʺText Viewerʺ window. You can save the report by pushing

Save... button and specify the file

path in the file save dialog. The number of columns and date format of the local data availability
report can be modified by the ʺOptionsʺ dialog.

81

RTKLIB ver. 2.4.2 Manual

Figure 3.9‐8 Local File Test View by RTKGET

(12) By default, the detailed log for the download progress and errors is automatically deleted. To keep
such error logs, check ʺKeep Error Info on Download Errorʺ in the ʺOptionsʺ dialog. The detailed error
log is saved as the file <local dir>\<file>.err for each download file. To keep remote file list file
in order to analyze troubles easily, check ʺKeep Remote Directory Listingʺ as well. The remote file list
is saved as the file .listing in the current directory.

82

RTKLIB ver. 2.4.2 Manual

3.10 NTRIP Browser

NTRIP (Networked Transport of RTCM via Internet Protocol) is a communication protocol to interchange
GPS/GNSS related data such as receiver raw observation data, ephemerides and corrections for DGPS or
RTK‐GPS. NTRIP specifies the table format of so‐called Source Table, which represents contents list of
provided data by NTRIP servers. RTKLIB includes a simple browser for NTRIP Source Tables.

(1) Execute the binary AP file rtklib_<ver>\bin\srctblbrows.exe. You can see the main window
of NTRIP Source Table Browser.

Figure 3.10‐1 Main Window of NTRIP Browser

(2) Push

button upper left in the main window, leaving right pull down menu of NTRIP caster list

blank. If the bottom status bar shows ʺconnecting...ʺ and then ʺupdate caster listʺ, the NTRIP caster list
is updated. If the pull down menu is blank, the browser acquires the NTRIP caster list from the default
NTRIP info caster rtcm-ntrip.org:2101 and update the list. To change the source of the list, fill the
NTRIP caster address as the form of <address>:<port> in the pull down menu and push

button.

If you omit port number, the browser uses the default port number 2101.

(3) Select the caster in the pull down menu and push

button. If the status bar shows ʺsource table

receivedʺ, the browser properly received a NTRIP Source Table from the selected NTRIP caster and
shows it in the window. The status bar also indicate the error message if a problem arises.

83

RTKLIB ver. 2.4.2 Manual

Figure 3.10‐2 NTRIP Stream List View by NTRIP Browser

(4) By pushing field title, you can sort the list by the field column. You also can push STR , CAS , NET ,
SRC to switch the contents of the Source Table to Stream List, Caster List, Network List and Original
Source Table.

Figure 3.10‐3 NTRIP Source Table View by NTRIP Browser

84

RTKLIB ver. 2.4.2 Manual

(5) By pushing the MAP in Tool Bar, you can open the map view of the positions of the NTRIP mount
points by Google Map. By click the marker in the map view, you can show the detail information of the
mount point. By selecting a mount point in the NTRIP browser window, indicate the mount point
position in the map by change the markerʹs color (red).

Figure 3.10‐4 Map View of Station Positions by NTRIP Browser

85

RTKLIB ver. 2.4.2 Manual

3.11 Use CUI APs of RTKLIB

RTKLIB includes the following CUI APs. These CUI APs only use standard ANSI C (C89) functions and a
small number of standard C libraries to ensure the portability. So you could build these CUI APs on the
non‐Windows environment like LINUX, UNIX, MAC OS X and so on. You can also build and execute these
APs on embedded CPU like ARM. Refer Appendix A CUI Command References for these APs including
command line options. For the procedure to build these APs, refer 4.2 Build CUI APs of RTKLIB. Notes that
you might have to modify makefile to adjust the build environment but the program itself does not need
to modify to port it on the most of environments.

(1) RTKRCV
Real‐time Positioning. The console AP version of RTKNAVI.

(2) RNX2RTKP
Post‐Processing Analysis. The console AP version of RTKPOST.

(3) POS2KML
Google Earth KML converter for solution files.

(4) CONVBIN
RINEX Converter of receiver raw data. The console AP version of RTKCONV.

(5) STR2STR
Stream Server. Console AP version of STRSVR.

86

RTKLIB ver. 2.4.2 Manual

4

Build APs or Develop User APs with RTKLIB

4.1

Rebuild GUI and CUI APs on Windows

To modify some functions of RTKLIB or to install your new models to RTKLIB, you may want to rebuild
APs. To fix existing bugs, you also may need to rebuild APs to apply patches. To rebuild GUI and CUI APs
on Windows, you need Embarcadero C++ Builder XE2 or XE3 (http://www.embarcadero.com). RTKLIB
internally only utilizes fundamental VCL (visual component library) functions provided by C++ builder. At
least, the basic ʺstarter editionʺ is enough to rebuild RTKLIB APs. The following instructions shows how to
rebuild GUI and CUI APs on Windows.

(1) Execute Embarcadero C++ Builder XE2 or XE3.

(2) Execute the menu ʺFileʺ ‐ ʺOpen Project...ʺ of C++ builder to open the C++ builder project file of the
target AP (<app>.cbproj or _<app>.cbproj, <app> is the target AP like rtkpost, rtkplot or
rtknavi) in the application program directory (<install dir>\rtklib_<ver>\app\<app> or
<install dir>\rtklib_<ver>\app\<app>\bcc\).

(3) Execute the menu ʺProjectʺ ‐ ʺRebuild <app>ʺ of C++ builder to rebuild the target AP.

(4) Execute (double click the file or input the command) the Windows batch file install.bat in the same
directory as the project file. It copies a newly built executable binary program to the directory of
RTKLIB binary programs (<install dir>\rtklib_<ver>\bin).

(5) To rebuild all of the GUI APs or the CUI APs, open the C++ builder group project file <install
dir>\rtklib_<ver>\app\rtklib_winapp.gourpproj or <install
dir>\rtklib_<ver>\app\rtklib_consapp.gourpproj. Execute the menu ʺProjectʺ ‐ ʺBuild
All Projectsʺ of C++ builder. Execute the batch file install_winapp.bat or
install_consapp.bat in the same directory to copy them to the binary program directory.

87

RTKLIB ver. 2.4.2 Manual

4.2

Build CUI APs

To build CUI APs, you can use many C compilers like gcc. The RTKLIB package includes standard
makefile for gcc. According to your compiler, libraries or directories, you may need to modify the
makefile to generate APs depending to your environment.

(1) Move to the application program directory (rtklib_<ver>/app/<app>) of the target AP.
>> cd <install_dir>/rtklib_<ver>/app/<app>

(2) Move to gcc directory.
>> cd gcc

(3) Edit and modify makefile to adjust the file to your environment.
>> vi makefile

(4) Execute make to build the AP and make install to install the binary file to appropriate BIN directory.
>> make
>> make install

88

RTKLIB ver. 2.4.2 Manual

4.3

Develop and Link User APs with RTKLIB

RTKLIB provide the following general purpose C‐functions callable from user AP (application program).
User can use these function to develop user original positioning APs.

(1) Matrix and vector functions
(2) Time and string functions
(3) Coordinates transformation and geoid model
(4) Navigation processing
(5) Positioning models (troposphere, ionosphere, antenna PCV)
(6) SBAS DGPS/DGNSS correction
(7) Single point positioning
(8) Carrier‐based and code‐based relative positioning
(9) OTF integer ambiguity resolution
(10) Receiver raw binary data input
(11) Positioning solution/NMEA input/output
(12) RINEX observation data/navigation message input/output
(13) Precise ephemeris input
(14) Stream data communication library
(15) NTRIP (Networked Transport of RTCM via Internet Protocol) library
(16) RTK‐GPS/GNSS positioning server
(17) RTCM 2.3 and 3.0/3.1/3.2 message handling
(18) Downloader functions

The following instructions shows the way to utilize the library of RTKLIB in user AP.

(1) Add the following include directive to the source program of user AP.
#include "rtklib.h"

(2) Set the following compiler option to add RTKLIB source directory path to compiler include paths.
-I rtklib_<ver>\src

(3) Add the necessary RTKLIB library source files to source programs set for the AP build. Refer Appendix
C Library APIs for the library function list and source programs provided by RTKLIB.

89

RTKLIB ver. 2.4.2 Manual

Appendix A CUI Command References
A.1

RTKRCV

SYNOPSIS
rtkrcv [-s][-p port|-d dev][-o file][-t level]

DESCRIPTION
A command line version of the real‐time positioning AP by RTKLIB. To start or stop RTK server, to
configure options or to print solution/status, login a console and input commands. As default, stdin/stdout
are used for the console. Use ‐p option for network login with telnet protocol. To show the available
commands, type ? or help on the console. The initial processing options are loaded from default
configuration file rtkrcv.conf. To change the file, use ‐o option. To configure the processing options, edit
the configuration file or use set, load or save command on the console. To shutdown the program, use
shutdown command on the console or send the USR2 signal to the process. For configuration file, refer B.4.

OPTIONS
-s

start RTK server on program startup

-p port

port number for telnet console

-m port

port number for monitor stream

-d dev

terminal device for console

-o file

configuration file

-r level

output solution status file (0:off,1:states,2:residuals)

-t level

debug trace level (0:off,1-5:on)

COMMANDS
start
Start RTK server. No need the command if the program runs with -s option.

stop
Stop RTK server.

restart
Restart RTK server. If the processing options are set, execute the command to enable
the changes.

90

RTKLIB ver. 2.4.2 Manual

solution [cycle]
Show solutions. Without option, only one solution is shown. With option, the
solution is displayed at intervals of cycle (s). To stop cyclic display, send break
(ctr-C).

status [cycle]
Show RTK status. Use option cycle for cyclic display.

satellite [cycle]
Show satellite status. Use option cycle for cyclic display.

observ [cycle]
Show observation data. Use option cycle for cyclic display.

navidata [cycle]
Show navigation data. Use option cycle for cyclic display.

stream [cycle]
Show stream status. Use option cycle for cyclic display.

error
Show error/warning messages. To stop messages, send break (ctr-C).

option [opt]
Show the values of processing options. Without option, all options are displayed.
With option, only pattern-matched options are displayed.

set opt [val]
Set the value of a processing option to val. Without option val, prompt message
is shown to input the value. The change of the processing option is not enabled
before RTK server is restarted.

load [file]
Load processing options from file. Without option, default file rtkrcv.conf is used.
To enable the changes, restart RTK server.

91

RTKLIB ver. 2.4.2 Manual

save [file]
Save current processing options to file. Without option, default file rtkrcv.conf
is used.

log [file|off]
Record console log to file. To stop recording the log, use option off.

help|? [path]
Show the command list. With option path, the stream path options are shown.

exit
Exit and logout console. The status of RTK server is not affected by the command.

shutdown
Shutdown RTK server and exit the program.

!command [arg...]
Execute command by the operating system shell. Do not use the interactive command.

NOTES
Short form of a command is allowed. In case of the short form, the command is
distinguished according to header characters.

92

RTKLIB ver. 2.4.2 Manual

A.2

RNX2RTKP

SYNOPSIS
rnx2rtkp [option ...] file file [...]

DESCRIPTION
Read RINEX OBS/NAV/GNAV/HNAV/CLK, SP3, SBAS message log files and compute receiver (rover)
positions and output position solutions.
The first RINEX OBS file shall contain receiver (rover) observations. For the relative mode, the second
RINEX OBS file shall contain reference (base station) receiver observations. At least one RINEX
NAV/GNAV/HNAV file shall be included in input files. To use SP3 precise ephemeris, specify the path in
the files. The extension of the SP3 file shall be .sp3 or .eph. All of the input file paths can include
wild‐cards (*). To avoid command line deployment of wild‐cards, use ʺ...ʺ for paths with wild‐cards.
Command line options are as follows ([]:default). With ‐k option, the processing options are input from the
configuration file. In this case, command line options precede options in the configuration file. For the
configuration file, refer B.4.

OPTIONS
-?

print help

-k file

input options from configuration file [off]

-o file

set output file [stdout]

-ts ds ts start day/time (ds=y/m/d ts=h:m:s) [obs start time]
-te de te end day/time

(de=y/m/d te=h:m:s) [obs end time]

-ti tint

time interval (sec) [all]

-p mode

mode (0:single,1:dgps,2:kinematic,3:static,4:moving-base,
5:fixed,6:ppp-kinematic,7:ppp-static) [2]

-m mask

elevation mask angle (deg) [15]

-f freq

number of frequencies for relative mode (1:L1,2:L1+L2,3:L1+L2+L5) [2]

-v thres

validation threshold for integer ambiguity (0.0:no AR) [3.0]

-b

backward solutions [off]

-c

forward/backward combined solutions [off]

-i

instantaneous integer ambiguity resolution [off]

-h

fix and hold for integer ambiguity resolution [off]

-e

output x/y/z-ecef position [latitude/longitude/height]

-a

output e/n/u-baseline [latitude/longitude/height]

93

RTKLIB ver. 2.4.2 Manual
-n

output NMEA-0183 GGA sentence [off]

-g

output latitude/longitude in the form of ddd mm ss.ss [ddd.ddd]

-t

output time in the form of yyyy/mm/dd hh:mm:ss.ss [sssss.ss]

-u

output time in utc [gpst]

-d col

number of decimals in time [3]

-s sep

field separator [' ']

-r x y z

reference (base) receiver ecef pos (m) [average of single pos]

-l lat lon hgt reference (base) receiver latitude/longitude/height (deg/m)
-y level

output solution status (0:off,1:states,2:residuals) [0]

-x level

debug trace level (0:off) [0]

EXAMPLES
Example 1. Kinematic Positioning, L1+L2, output Latitude/Longitude/Height to STDOUT.

> rnx2rtkp 07590920.05o 30400920.05o 30400920.05n

Example 2. Single Point Positioning, El Mask=15deg, output NMEA GGA to file out.pos

> rnx2rtkp -p 0 -m 15 -n -o out.pos 07590920.05o 30400920.05n

Example 3. Static Positioning, L1, time form yyyy/mm/dd hh:mm:ss, output X/Y/Z‐ECEF positions

> rnx2rtkp -p 3 -f 1 -t -e 07590920.05o 30400920.05o 30400920.05n

Example 4. Kinematic Positioning, Instantaneous AR, validation threshold=2, comma separator

> rnx2rtkp -i -v 2 -s , 07590920.05o 30400920.05o 30400920.05n

94

RTKLIB ver. 2.4.2 Manual

A.3

POS2KML

SYNOPSIS
pos2kml [option ...] file [...]

DESCRIPTION
Read position file(s) and convert it to Google Earth KML file. Each line in the input file shall contain fields
of time, position fields (Latitude/Longitude/Height or X/Y/Z‐ECEF), and Quality flag (option). The line
started with ʹ%ʹ, ʹ#ʹ, ʹ;ʹ is treated as comment. Command options are as follows. ([]:default)

OPTIONS
-h

print help

-o file

output file [infile + .kml]

-c color

track color
(0:off,1:white,2:green,3:orange,4:red,5:yellow) [5]

-p color

point color
(0:off,1:white,2:green,3:orange,4:red,5:by qflag) [5]

-a

output altitude information [off]

-ag

output geodetic altitude [off]

-tg

output time stamp of gpst [off]

-tu

output time stamp of utc [gpst]

-i tint

output time interval (s) (0:all) [0]

-q qflg

output q-flags (0:all) [0]

-f n e h

add north/east/height offset to position (m) [0 0 0]

95

RTKLIB ver. 2.4.2 Manual

A.4

CONVBIN

SYNOPSIS
convbin [-ts y/m/d h:m:s] [-te y/m/d h:m:s] [-ti tint] [-r format] [-ro opts]
[-f freq] [-hc comment] [-hm marker] [-hn markno] [-ht marktype]
[-ho observ] [-hr rec] [-ha ant] [-hp pos] [-hd delta] [-v ver] [-od]
[-os] [-x sat] [-y sys] [-d dir] [-c satid] [-o ofile] [-n nfile]
[-g gfile] [-h hfile] [-q qfile] [-s sfile] file

DESCRIPTION
Convert RTCM, receiver raw data log and RINEX file to RINEX and SBAS/LEX message file. SBAS message
file complies with RTKLIB SBAS/LEX message format. It supports the following messages or files.

RTCM 2

: Type 1, 3, 9, 14, 16, 17, 18, 19, 22

RTCM 3

: Type 1002, 1004, 1005, 1006, 1010, 1012, 1019, 1020
Type 1071-1127 (MSM except for compact msg)

NovAtel OEMV/4/6,OEMStar: RANGECMPB, RANGEB, RAWEPHEMB, IONUTCB, RAWWASSFRAMEB
NovAtel OEM3

: RGEB, REGD, REPB, FRMB, IONB, UTCB

u-blox LEA-4T/5T/6T

: RXM-RAW, RXM-SFRB

NovAtel Superstar II

: ID#20, ID#21, ID#22, ID#23, ID#67

Hemisphere

: BIN76, BIN80, BIN94, BIN95, BIN96

SkyTraq S1315F

: msg0xDD, msg0xE0, msg0xDC

GW10

: msg0x08, msg0x03, msg0x27, msg0x20

Javad

: [R*],[r*],[*R],[*r],[P*],[p*],[*P],[*p],[D*],[*d],
[E*],[*E],[F*],[TC],[GE],[NE],[EN],[QE],[UO],[IO],
[WD]

NVS

: NVS NV08C BINR

BINEX

: big-endian, regular CRC, forward record (0xE2)
0x01-01,0x01-02,0x01-03,0x01-04,0x01-06,0x7f-05

RINEX

: OBS, NAV, GNAV, HNAV, LNAV, QNAV

OPTIONS
file

input receiver binary log file

-ts y/m/d h:m:s

start time [all]

-te y/m/d h:m:s

end time [all]

96

RTKLIB ver. 2.4.2 Manual
-tr y/m/d h:m:s
-ti tint

approximated time for rtcm messages

observation data interval (s) [all]

-r format log format type
rtcm2= RTCM 2
rtcm3= RTCM 3
nov

= NovAtel OEMV/4/6,OEMStar

oem3 = NovAtel OEM3
ubx

= ublox LEA-4T/5T/6T

ss2

= NovAtel Superstar II

hemis= Hemisphere Eclipse/Crescent
stq

= SkyTraq S1315F

javad= Javad
nvs

= NVS BINR

binex= BINEX
rinex= RINEX
-ro opt

receiver options

-f freq

number of frequencies [2]

-hc comment

rinex header: comment line

-hm marker

rinex header: marker name

-hn markno

rinex header: marker number

-ht marktype rinex header: marker type
-ho observ

rinex header: observer name and agency separated by /

-hr rec

rinex header: receiver number, type and version separated by /

-ha ant

rinex header: antenna number and type separated by /

-hp pos

rinex header: approx position x/y/z separated by /

-hd delta

rinex header: antenna delta h/e/n separated by /

-v ver

rinex version [2.11]

-od

include doppler frequency in rinex obs [off]

-os

include snr in rinex obs [off]

-oi

include iono correction in rinex nav header [off]

-ot

include time correction in rinex nav header [off]

-ol

include leap seconds in rinex nav header [off]

-x sat

exclude satellite

-y sys

exclude systems (G:GPS,R:GLO,E:Galileo,J:QZSS,S:SBAS,C:BeiDou)

-d dir

output directory [same as input file]

-c staid

use RINEX file name convention with staid [off]

97

RTKLIB ver. 2.4.2 Manual
-o ofile

output RINEX OBS file

-n nfile

output RINEX NAV file

-g gfile

output RINEX GNAV file

-h hfile

output RINEX HNAV file

-q qfile

output RINEX QNAV file

-l lfile

output RINEX LNAV file

-s sfile

output SBAS message file

If any output file specified, default output files (<file>.obs, <file>.nav, <file>.gnav,
<file>.hnav, <file>.qnav, <file>.lnav and <file>.sbs) are used.

If receiver type is not specified, type is recognized by the input file extension as follows.

*.rtcm2

RTCM 2

*.rtcm3

RTCM 3

*.gps

NovAtel OEMV/4/6,OEMStar

*.ubx

u-blox LEA-4T/5T/6T

*.log

NovAtel Superstar II

*.bin

Hemisphere Eclipse/Crescent

*.stq

SkyTraq S1315F

*.jps

Javad

*.bnx,*binex BINEX
*.obs,*.*o RINEX OBS

98

RTKLIB ver. 2.4.2 Manual

A.5

STR2STR

SYNOPSIS
str2str -in stream[#...] -out stream[#...] [-out stream[#...]...] [options]

DESCRIPTION
Input data from a stream and divide and output them to multiple streams The input stream can be serial,
TCP client, TCP server, NTRIP client, or file. The output stream can be serial, TCP client, TCP server, NTRIP
server, or file. str2str is a resident type application. To stop it, type Ctrl‐C in console if run foreground or
send signal SIGINT for background process. if run foreground or send signal SIGINT for background
process. if both of the input stream and the output stream follow #format, the format of input messages
are converted to output. To specify the output messages, use -msg option.
Command options are as follows.

OPTIONS
-in

stream[#format] input

stream path and format

-out stream[#format] output stream path and format

stream path
serial

: serial://port[:brate[:bsize[:parity[:stopb[:fctr]]]]]

tcp server

: tcpsvr://:port

tcp client

: tcpcli://addr[:port]

ntrip client : ntrip://[user[:passwd]@]addr[:port][/mntpnt]
ntrip server : ntrips://[:passwd@]addr[:port][/mntpnt[:str]] (only out)
file

: [file://]path[::T][::+start][::xseppd][::S=swap]

format
rtcm2

: RTCM 2 (only in)

rtcm3

: RTCM 3 (in and out)

nov

: NovAtel OEMV/4/6,OEMStar (only in)

oem3

: NovAtel OEM3 (only in)

ubx

: ublox LEA-4T/5T/6T (only in)

ss2

: NovAtel Superstar II (only in)

hemis

: Hemisphere Eclipse/Crescent (only in)

stq

: SkyTraq S1315F (only in)

99

RTKLIB ver. 2.4.2 Manual
javad

: Javad (only in)

nvs

: NVS BINR (only in)

binex

: BINEX (only in)

-msg type[(tint)][,type[(tint)]...]
rtcm message types and output intervals (s)
-sta sta

station id

-opt opt

receiver dependent options

-s

msec

timeout time (ms) [10000]

-r

msec

reconnect interval (ms) [10000]

-n

msec

nmea request cycle (m) [0]

-f

sec

file swap margin (s) [30]

-c

file

receiver commands file [no]

-p

lat lon hgt

station position (latitude/longitude/height) (deg,m)

-l

local_dir

ftp/http local directory []

-x

proxy_addr

http/ntrip proxy address [no]

-t

level

trace level [0]

-h

print help

100

RTKLIB ver. 2.4.2 Manual

Appendix B File Formats
B.1

Positioning Solution File

DESCRIPTION
A positioning solution file is just a text file as output of RTKNAVI or RTKPOST. The file is separated to
records or lines by CR/LF. Each records consists of fields. The following table shows the format of the
positioning solution file.

No

Record/Field

1

File header

2

Field indicator

3

Solution body

(1)

Time

Description
The lines starting with ʺ%ʺ are header lines. The header lines
contains some additional information or processing options as
follows.
% program : program version
% inp file : Input file path
% obs start: Observation data start time in GPS time
% obs end: Observation data end time in GPS time
% pos mode: Positioning mode option
% freqs: Frequencies option
% solution: Solution type option
% elev mask: Elevation mask angle option
% snr mask: SNR mask option
% ionos est: Ionospheric parameter estimation option
% tropos est: Tropospheric parameters estimation option
% amb res: Integer ambiguity resolution options
% val thres: Integer ambiguity validation option
% ref pos: position of the antenna of the base station
Field indicator starting with ʺ%ʺ line follows after File header.
To recognize the field formats, RTKLIB uses these lines. Do not
delete them.
Solution body consists of the following fields.
The field contents are varied according to the positioning options.
The epoch time of the solution indicating the true receiver signal
reception time (not indicates the time by receiver clock). The format
is varied to the options.
yyyy/mm/dd HH:MM:SS.SSS :
Calendar time in GPST, UTC or JST, the time system is indicated in
Field indicator
WWWW SSSSSSS.SSS :
GPS week and TOW (time of week) in seconds.

(2)

Receiver
Position

The rover receive antenna or marker position estimated varied
according to the positioning options.

101

Notes

RTKLIB ver. 2.4.2 Manual

No

Record/Field

Description
+ddd.ddddddddd +ddd.dddddddd hhhh.hhhh :
Latitude, longitude in degrees and height in m. Minus value means
south latitude or west longitude. The height indicates ellipsoidal or
geodetic according to the positioning options.
+ddd mm ss.sss +ddd mm ss.sss hhhh.hhhh :
Latitude, longitude in degree, minute and second and height in m.
+xxxxxxxxx.xxxx +yyyyyyyyy.yyyy +zzzzzzzz.zzzz :
X/Y/Z components of ECEF frame in m.

(3)

Quality flag
(Q)

(4)

Number of
valid satellites
(ns)
Standard
deviations
(sdn, sde, sdu,
sdne, sdeu,
sdun)

(5)

(6)

(7)

Age of
differential
(age)
Ratio factor
(ratio)

+eeeeeeeee.eeee +nnnnnnnnn.nnnn +uuuuuuuuu.uuuu :
E/N/U components of baseline vector in m. The local coordinate is
referenced to the rover position.
The flag which indicates the solution quality.
1 : Fixed, solution by carrier‐based relative positioning and the
integer ambiguity is properly resolved.
2 : Float, solution by carrier‐based relative positioning but the
integer ambiguity is not resolved.
3 : Reserved
4 : DGPS, solution by code‐based DGPS solutions or single point
positioning with SBAS corrections
5 : Single, solution by single point positioning
The number of valid satellites for solution estimation.

The estimated standard deviations of the solution assuming a priori
error model and error parameters by the positioning options.
The sdn, sde or sdu means N (north), E (east) or U (up)
component of the standard deviations in m. The absolute value of
sdne, sdeu or sdun means square root of the absolute value of NE,
EU or UN component of the estimated covariance matrix. The sign
represents the sign of the covariance. With all of the values, user can
reconstruct the full covariance matrix.
The time difference between the observation data epochs of the
rover receiver and the base station in second.
The ratio factor of ʺratio‐testʺ for standard integer ambiguity
validation strategy. The value means the ratio of the squared sum of
the residuals with the second best integer vector to with the best
integer vector.

EXAMPLE
%
%
%
%
%
%
%
%

program
inp file
inp file
inp file
obs start
obs end
pos mode
freqs

:
:
:
:
:
:
:
:

RTKLIB ver.2.3.0b
G:\rtklibtest\20090831\omre196a.09o
G:\rtklibtest\20090831\tevc196a.09o
G:\rtklibtest\20090831\omre196a.09n
2009/07/15 07:10:00.0 GPST (week1540 285000.0s)
2009/07/15 07:59:50.0 GPST (week1540 287990.0s)
kinematic
L1+L2

102

Notes

RTKLIB ver. 2.4.2 Manual
% solution : forward
% elev mask : 15.0 deg
% snr mask : 0.0 dBHz
% ionos est : on
% tropo est : on
% amb res
: continuous
% val thres : 3.0
% ref pos
: 32.574831620 -117.126551777
-28.1471
%
% (lat/lon/height=WGS84/ellipsoidal,Q=1:fix,2:float,4:dgps,5:single,ns=# of satellites)
% GPST
latitude(deg) longitude(deg) height(m)
Q ns
sdn(m)
sde(m)
sdu(m) sdne(m) sdeu(m) sdun(m) age(s) ratio
2009/07/15 07:10:00.000
32.560273272 -116.953525346
118.6783
1 10
0.0186
0.0202
0.0899 -0.0072
0.0089 -0.0249
0.00
4.5
2009/07/15 07:10:10.000
32.560273266 -116.953525340
118.6877
1 10
0.0144
0.0154
0.0776 -0.0058
0.0082 -0.0199
0.00
5.3
2009/07/15 07:10:20.000
32.560273262 -116.953525365
118.6853
1 10
0.0124
0.0131
0.0720 -0.0051
0.0078 -0.0173
0.00
5.3
2009/07/15 07:10:30.000
32.560273251 -116.953525345
118.6825
1 10
0.0111
0.0117
0.0686 -0.0046
0.0075 -0.0157
0.00
5.6
2009/07/15 07:10:40.000
32.560273275 -116.953525412
118.6827
1 10
0.0103
0.0108
0.0662 -0.0043
0.0073 -0.0146
0.00
4.7
2009/07/15 07:10:50.000
32.560273277 -116.953525429
118.6812
1 10
0.0097
0.0102
0.0644 -0.0041
0.0071 -0.0138
0.00
4.1
2009/07/15 07:11:00.000
32.560273249 -116.953525449
118.6817
1 10
0.0092
0.0097
0.0630 -0.0039
0.0069 -0.0132
0.00
4.2
2009/07/15 07:11:10.000
32.560273271 -116.953525464
118.6729
1 10
0.0088
0.0093
0.0618 -0.0038
0.0067 -0.0127
0.00
5.2
2009/07/15 07:11:20.000
32.560273246 -116.953525468
118.6772
1 10
0.0085
0.0089
0.0607 -0.0037
0.0066 -0.0123
0.00
6.1
2009/07/15 07:11:30.000
32.560273219 -116.953525461
118.6733
1 10
0.0083
0.0087
0.0598 -0.0036
0.0065 -0.0119
0.00
7.9
2009/07/15 07:11:40.000
32.560273216 -116.953525478
118.6771
1 10
0.0081
0.0085
0.0590 -0.0035
0.0064 -0.0117
0.00
9.0
2009/07/15 07:11:50.000
32.560273206 -116.953525489
118.6726
1 10
0.0079
0.0083
0.0582 -0.0035
0.0062 -0.0114
0.00
8.6
2009/07/15 07:12:00.000
32.560273201 -116.953525497
118.6744
1 10
0.0078
0.0081
0.0575 -0.0034
0.0061 -0.0112
0.00
7.5
2009/07/15 07:12:10.000
32.560273212 -116.953525455
118.6731
1 10
0.0077
0.0080
0.0568 -0.0034
0.0060 -0.0110
0.00
7.9

103

RTKLIB ver. 2.4.2 Manual

B.2

SBAS Log File

DESCRIPTION
A SBAS log file is output of RTKCONV, that is a text file in which a line contains a SBAS message captured
by the GPS/GNSS receiver. The following table shows the format of the SBAS log file.

No
1

Record/Field

Description
A line contains a SBAS navigation data frame, which consists of the
following fields.
GPS week number of SBAS navigation data frame.

(2)

SBAS
messages
GPS week
number
Time of week

(3)

PRN number

PRN number of SBAS satellite transmitting the navigation data

(4)

Message type

(5)

Separator

The type ID of the SBAS message in the frame (0 ‐ 63). Refer SBAS
specifications for details:
RTCA/DO‐229C, Minimum operational performance standards for
Global Positioning System/Wide Area Augmentation system
airborne equipment
:

(6)

SBAS message

(1)

Time of week of SBAS navigation data frame in seconds.

Hexadecimal dump of a 226‐bit SBAS message without 24‐bit
parity field. The message tail is 0‐padded to align to 8‐bit boundary.
Refer SBAS specifications for the detailed message format.

EXAMPLE
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471
1471

349007
349007
349008
349008
349009
349009
349010
349010
349011
349011
349012
349012
349013
349013
349014
349014
349015
349015
349016
349016
349017
349017
349018
349018
349019

137
129
129
137
137
129
137
129
137
129
137
129
129
137
129
137
129
137
137
129
137
129
129
137
129

25
25
4
4
3
2
2
3
26
26
28
28
9
9
4
4
2
3
2
3
25
25
63
63
26

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

C666A0A7F1FE6000027F80000003468000000000000000000000000000
C666A0A7F4FE6004047F80000003468000000000000000000000000000
53109FFFFF5FFDFFDFFDFFFFC7FA9FFDFFDFFDFFDFFF9BBBBB33FFFFC0
53129FFC001FFDFFDFFDFFFFA0009FFDFFDFFDFFDFFF9BBBBB33FFFFC0
9A0C9FFDFFDFFFFFDFFC017FF9FFDFFC009FFC015FFFBB97B9BB9FBB80
9A0A9FFFFC9FFFFE9FFDFFDFFDFFDFFDFFFFF7F93FFBE79BBBBBB9FA00
C60A9FFFFD1FFFFFDFFDFFDFFDFFDFFDFFC003F88003E79FBBFBB9FA00
C60E9FFDFFDFFFFE9FFC007FEDFFDFFFFFDFFFFFDFFFBB97B9BB9FBB80
536A0029E0EF0FF05F829C11C076033015A09D047037C1DE14F08FE000
536A0821A0DD05E82B813E0EF0F7897C27C12E08683B419C0BE057E000
9A723440E44E810029FF1F1F379C0BC35D4BE2B8078F15903253960200
9A722CB5D8739087B46B107DA8D9E828694B55F843782100AF146AD980
C62434198D3F5D92BA855704800236DFE84FE06FFA47FE7FF0008E0240
C6260C198D32310732404C1D40183CDFD187C8F3FF7FFD800FF7D6BE40
53119FFFFF9FFDFFDFFDFFFFD3FA5FFDFFDFFDFFDFFF9BBBBB33FFFFC0
53109FFC005FFDFFDFFDFFFFAFFFDFFDFFDFFDFFDFFF9BBBBB33FFFFC0
9A089FFFFC5FFFFEDFFDFFDFFDFFDFFDFFFFFBF8FFFFE79BBBBBB9FA00
9A0D9FFDFFDFFFFF9FFC017FFDFFDFFC00DFFC015FFFBB97B9BB9FBB80
C6089FFFFD5FFC001FFDFFDFFDFFDFFDFFFFFFF8BFFFE79FBBFBB9FA00
C60C9FFDFFDFFFFE5FFC007FF1FFDFFC001FFFFFDFFFBB97B9BB9FBB80
5366587803FE3FF0010080FFFF835E8000000000000000000000000000
5366587FFDFEDFF40400800000035E8000000000000000000000000000
9AFC000000000000000000000000000000000000000000000000000000
9AFC000000000000000000000000000000000000000000000000000000
C66A0C53E26F09704781DC0DE06702FC19E1EF09F047821C0EF05FE000

104

Notes

RTKLIB ver. 2.4.2 Manual
1471 349019 137 26 : C66A0431E17E0A704741F80DC05E827815C0EF09F877C2FC15E096E000
1471 349020 137 4 : 53119FFC001FFDFFDFFDFFFF9C001FFDFFDFFDFFDFFF9BBBBB33FFFFC0
1471 349020 129 4 : 53129FFFFF5FFDFFDFFDFFFFC3FA9FFDFFDFFDFFDFFF9BBBBB33FFFFC0

105

RTKLIB ver. 2.4.2 Manual

B.3

Solution Status File

DESCRIPTION
A solution status file is output of RTKNAVI or RTKPOST, that is a text file which contains the internal status
of the positioning process. The internal status include estimated states of Kalman filter and residuals of
measurements to analyze the solution quality. The following table shows the format of the solution status
file.

No
1

2

3

4

Record/Field

Description

Position States

Estimated rover position in the filter. The format of a record is as
follows.

Velocity/
Acceleration
States

Receiver
Clock‐bias
States

Ionosphere
Parameter
States

$POS,week,tow,stat,posx,posy,posz,posxf,posyf,poszf
week/tow : gps week no/time of week (s)
stat : solution status
posx/posy/posz : position x/y/z ecef (m) float
posxf/posyf/poszf : position x/y/z ecef (m) fixed
Estimated rover velocity and acceleration in the filter. The format of
a record is as follows.
$VELACC,week,tow,stat,vele,veln,velu,acce,accn,accu,velef,velnf,\
veluf,accef,accnf,accuf
week/tow : gps week no/time of week (s)
stat : solution status
vele/veln/velu : velocity e/n/u (m/s) float
acce/accn/accu : acceleration e/n/u (m/s^2) float
velef/velnf/veluf : velocity e/n/u (m/s) fixed
accef/accnf/accuf : acceleration e/n/u (m/s^2) fixed
Estimated receiver clock bias parameters. The format of a record is
as follows.
$CLK,week,tow,stat,rcv,clk1,clk2,clk3,clk4
week/tow : gps week no/time of week (s)
stat : solution status
rcv : receiver (1:rover,2:base station)
clk1 : receiver clock bias GPS (ns)
clk2 : receiver clock bias GLONASS (ns)
clk3 : reserved
clk4 : reserved
Estimated ionosphere parameter (vertical L1 ionosphere delay
difference). The format of a record is as follows.
$ION,week,tow,stat,sat,az,el,ion,ion‐fixed
week/tow : gps week no/time of week (s)
stat : solution status
sat
: satellite id

106

Notes

RTKLIB ver. 2.4.2 Manual

No

5

6

7

Record/Field

Troposphere
Parameter
States

Receiver H/W
bias States

Residuals

Description

Notes

az/el : azimuth/elevation angle(deg)
ion : vertical ionospheric delay L1 (m) float
ion‐fixed: vertical ionospheric delay L1 (m) fixed
Estimated troposphere parameter (vertical troposphere delay
residual). The format of a record is as follows.
$TROP,week,tow,stat,rcv,ztd,ztdf
week/tow : gps week no/time of week (s)
stat : solution status
rcv : receiver (1:rover,2:base station)
ztd : zenith total delay (m) float
ztdf : zenith total delay (m) fixed
Estimated GLONASS receiver H/W bias difference. The format of a
record is as follows.
$HWBIAS,week,tow,stat,frq,bias,biasf
week/tow : gps week no/time of week (s)
stat : solution status
frq
: frequency (1:L1,2:L2,3:L5,...)
bias : h/w bias coefficient (m/MHz) float
biasf : h/w bias coefficient (m/MHz) fixed
Residuals of pseudorange and carrier‐phase observables. The
format of a record is as follows.
$SAT,week,tow,sat,frq,az,el,resp,resc,vsat,snr,fix,slip,lock,outc,\
slipc,rejc
week/tow : gps week no/time of week (s)
sat/frq : satellite id/frequency (1:L1,2:L2,3:L5,...)
az/el : azimuth/elevation angle (deg)
resp : pseudorange residual (m)
resc : carrier‐phase residual (m)
vsat : valid data flag (0:invalid,1:valid)
snr : signal strength (dbHz)
fix : ambiguity flag (0:no data,1:float,2:fixed,3:hold)
slip : cycle‐slip flag (bit1:slip,bit2:parity unknown)
lock : carrier‐lock count
outc : data outage count
slipc : cycle‐slip count
rejc : data reject (outlier) count

EXAMPLE
$POS,1557,432000.000,2,-3869295.9628,3436570.2567,3717367.6546,0.0000,0.0000,0.0000
$HWBIAS,1557,432000.000,2,1,-0.3503,0.0000
$HWBIAS,1557,432000.000,2,2,0.0108,0.0000
$SAT,1557,432000.000,3,1,253.2,64.3,0.3219,-0.0006,1,48,1,1,1,0,1,0
$SAT,1557,432000.000,3,2,253.2,64.3,-0.0629,-0.0006,1,33,1,1,1,0,1,0
$SAT,1557,432000.000,13,1,298.4,24.1,-0.6732,0.0003,1,42,1,1,1,0,1,0
$SAT,1557,432000.000,13,2,298.4,24.1,0.8081,0.0003,1,17,1,1,1,0,1,0
$SAT,1557,432000.000,16,1,42.0,59.5,0.5037,-0.0005,1,47,1,1,1,0,1,0
$SAT,1557,432000.000,16,2,42.0,59.5,-0.5170,-0.0005,1,30,1,1,1,0,1,0
$SAT,1557,432000.000,19,1,229.8,39.0,-0.1948,-0.0003,1,44,1,0,1,0,0,0
$SAT,1557,432000.000,19,2,229.8,39.0,-0.0806,-0.0003,1,28,1,1,1,0,1,0
$SAT,1557,432000.000,21,1,61.1,28.1,-1.0704,0.0001,1,41,1,1,1,0,1,0
$SAT,1557,432000.000,21,2,61.1,28.1,1.0139,0.0001,1,19,1,1,1,0,1,0

107

RTKLIB ver. 2.4.2 Manual
$SAT,1557,432000.000,23,1,257.9,29.9,-1.3258,-0.0000,1,45,1,1,1,0,1,0
$SAT,1557,432000.000,23,2,257.9,29.9,0.4155,0.0000,1,23,1,1,1,0,1,0
$SAT,1557,432000.000,25,1,317.0,24.7,0.8868,0.0002,1,41,1,1,1,0,1,0
$SAT,1557,432000.000,25,2,317.0,24.7,0.1811,0.0003,1,19,1,1,1,0,1,0
$SAT,1557,432000.000,31,1,145.1,32.5,0.6140,-0.0001,1,44,1,1,1,0,1,0
$SAT,1557,432000.000,31,2,145.1,32.5,-0.2397,-0.0001,1,26,1,1,1,0,1,0
$SAT,1557,432000.000,R9,1,105.7,78.1,-0.1172,-0.0001,1,45,1,1,1,0,1,0
$SAT,1557,432000.000,R9,2,105.7,78.1,0.0000,0.0000,0,0,0,0,0,1,0,0
$SAT,1557,432000.000,R10,1,331.5,41.7,-0.1425,0.0002,1,43,1,1,1,0,1,0
$SAT,1557,432000.000,R10,2,331.5,41.7,0.0349,0.0001,1,30,1,1,1,0,1,0
$SAT,1557,432000.000,R19,1,18.6,61.2,-0.7708,-0.0000,1,46,1,1,1,0,1,0
$SAT,1557,432000.000,R19,2,18.6,61.2,0.1898,-0.0001,1,39,1,0,1,0,0,0
$SAT,1557,432000.000,R20,1,235.7,55.6,1.0305,-0.0000,1,42,1,1,1,0,1,0
$SAT,1557,432000.000,R20,2,235.7,55.6,-0.2247,-0.0001,1,39,1,1,1,0,1,0

108

RTKLIB ver. 2.4.2 Manual

B.4

Configuration File

DESCRIPTION
A configuration file containing processing options, solution options and file options for RTKNAVI,
RTKPOST, RTKRCV and RNX2RTKP. That is a text file which contains the Keyword = Value form records
indicating the various options. For enumeration values, the selectable value is either of a number (0,1,2,...)
or an enumeration label (off, on, ...). The line starting with # and the texts after # in a line are treated as
comments. For the contents of the configuration file, refer 3.5 Configure Positioning Options for RTKNAVI
and RTKPOST.

EXAMPLE
# RTKNAVI options (2013/03/01 10:41:04, v.2.4.2)
pos1-posmode
=single
#
(0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static)
pos1-frequency
=l1+l2
# (1:l1,2:l1+l2,3:l1+l2+l5)
pos1-soltype
=forward
# (0:forward,1:backward,2:combined)
pos1-elmask
=10
# (deg)
pos1-snrmask_r
=off
# (0:off,1:on)
pos1-snrmask_b
=off
# (0:off,1:on)
pos1-snrmask_L1
=0,0,0,0,0,0,0,0,0
pos1-snrmask_L2
=0,0,0,0,0,0,0,0,0
pos1-snrmask_L5
=0,0,0,0,0,0,0,0,0
pos1-dynamics
=off
# (0:off,1:on)
pos1-tidecorr
=off
# (0:off,1:on)
pos1-ionoopt
=brdc
#
(0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:vtec_sf,9
:vtec_ef,10:gtec)
pos1-tropopt
=saas
# (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph
=brdc
# (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1
=on
# (0:off,1:on)
pos1-posopt2
=on
# (0:off,1:on)
pos1-posopt3
=on
# (0:off,1:on)
pos1-posopt4
=on
# (0:off,1:on)
pos1-posopt5
=off
# (0:off,1:on)
pos1-exclsats
=
# (prn ...)
pos1-navsys
=63
# (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)
pos2-armode
=fix-and-hold # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode
=off
# (0:off,1:on,2:autocal)
pos2-arthres
=3
pos2-arlockcnt
=0
pos2-arelmask
=20
# (deg)
pos2-arminfix
=0
pos2-elmaskhold
=0
# (deg)
pos2-aroutcnt
=5
pos2-maxage
=30
# (s)
pos2-slipthres
=0.05
# (m)
pos2-rejionno
=30
# (m)
pos2-rejgdop
=30
pos2-niter
=1
pos2-baselen
=0
# (m)
pos2-basesig
=0
# (m)
out-solformat
=llh
# (0:llh,1:xyz,2:enu,3:nmea)
out-outhead
=off
# (0:off,1:on)
out-outopt
=off
# (0:off,1:on)
out-timesys
=gpst
# (0:gpst,1:utc,2:jst)
out-timeform
=hms
# (0:tow,1:hms)

109

RTKLIB ver. 2.4.2 Manual
out-timendec
out-degform
out-fieldsep
out-height
out-geoid
out-solstatic
out-nmeaintv1
out-nmeaintv2
out-outstat
stats-eratio1
stats-eratio2
stats-errphase
stats-errphaseel
stats-errphasebl
stats-errdoppler
stats-stdbias
stats-stdiono
stats-stdtrop
stats-prnaccelh
stats-prnaccelv
stats-prnbias
stats-prniono
stats-prntrop
stats-clkstab
ant1-postype
ant1-pos1
ant1-pos2
ant1-pos3
ant1-anttype
ant1-antdele
ant1-antdeln
ant1-antdelu
ant2-postype
ant2-pos1
ant2-pos2
ant2-pos3
ant2-anttype
ant2-antdele
ant2-antdeln
ant2-antdelu
misc-timeinterp
misc-sbasatsel
misc-rnxopt1
misc-rnxopt2
file-satantfile
file-rcvantfile
file-staposfile
file-geoidfile
file-ionofile
file-dcbfile
file-eopfile
file-blqfile
file-tempdir
file-geexefile
file-solstatfile
file-tracefile

=3
=deg
# (0:deg,1:dms)
=
=geodetic
# (0:ellipsoidal,1:geodetic)
=internal
# (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
=all
# (0:all,1:single)
=1
# (s)
=1
# (s)
=off
# (0:off,1:state,2:residual)
=300
=300
=0.003
# (m)
=0.003
# (m)
=0
# (m/10km)
=1
# (Hz)
=30
# (m)
=0.03
# (m)
=0.3
# (m)
=10
# (m/s^2)
=10
# (m/s^2)
=0.0001
# (m)
=0.001
# (m)
=0.0001
# (m)
=5e-12
# (s/s)
=llh
# (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
=90
# (deg|m)
=0
# (deg|m)
=-6335367.6285 # (m|m)
=NOV702GG
=0
# (m)
=0
# (m)
=0
# (m)
=rtcm
# (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
=0
# (deg|m)
=0
# (deg|m)
=0
# (m|m)
=TRM29659.00
=0
# (m)
=0
# (m)
=0
# (m)
=off
# (0:off,1:on)
=0
# (0:all)
=
=
=Y:\madoca\data\igs08.atx
=Y:\madoca\data\igs08.atx
=
=
=
=Y:\madoca\data\dcb\P1P21201.DCB
=
=
=C:\Temp
=
=
=

inpstr1-type
=ntripcli
#
(0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr2-type
=off
#
(0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-type
=off
#
(0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr1-path
=kaiyodai:tuomsat00@mgex.igs-ip.net:2101/CUT07:
inpstr2-path
=
inpstr3-path
=
inpstr1-format
=rtcm3
#
(0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)
inpstr2-format
=rtcm3
#
(0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)
inpstr3-format
=rtcm3
#
(0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)

110

RTKLIB ver. 2.4.2 Manual
inpstr2-nmeareq
inpstr2-nmealat
inpstr2-nmealon
outstr1-type
outstr2-type
outstr1-path
outstr2-path
outstr1-format
outstr2-format
logstr1-type
logstr2-type
logstr3-type
logstr1-path
logstr2-path
logstr3-path
misc-svrcycle
misc-timeout
misc-reconnect
misc-nmeacycle
misc-buffsize
misc-navmsgsel
misc-proxyaddr
misc-fswapmargin

=off
# (0:off,1:latlon,2:single)
=26.37293571 # (deg)
=127.143649075 # (deg)
=off
# (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
=off
# (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
=
=
=llh
# (0:llh,1:xyz,2:enu,3:nmea)
=nmea
# (0:llh,1:xyz,2:enu,3:nmea)
=off
# (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
=off
# (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
=off
# (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
=
=
=
=10
# (ms)
=30000
# (ms)
=10000
# (ms)
=5000
# (ms)
=32768
# (bytes)
=all
# (0:all,1:rover,2:base,3:corr)
=
=30
# (s)

111

RTKLIB ver. 2.4.2 Manual

B.5

URL List File for GNSS Data

DESCRIPTION
A file containing URL list of GNSS data in Internet resources. The file is used by RTKGET to download
GNSS data. A line indicates a record of URL for a GNSS data type. The strings after # are treated as
comments. The following table shows the format of the URL list file for GNSS data.

No

Record/Field

1

URL

(1)

Data type

(2)

URL address

Description
A line contains a URL for a GNSS data type, which consists of the
following fields separated by spaces.
GNSS data type ID. The ID does not contain spaces. Under‐bar ʺ_ʺ
in the data type ID means the separator of each data type category.
URL address of the GNSS data type. The URL address shall be:
ftp://<host address>/<file path> or
http://<host address>/<file path>
ftp, http
: used download protocol
<host address>: address of the host
<file path>
: download file path in the host. the file path can
contain the following keywords replaced by date, time, station
name and environment variable.
%Y -> yyyy
%y -> yy
%m -> mm
%d -> dd
%h -> hh
%H -> a
%M -> mm
%n -> ddd
%W -> wwww
%D -> d
%N -> d
%s -> ssss
%S -> SSSS
%r -> rrrr
%{env} -> env

(3)

Default local
directory

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

year (4 digits) (2000-2099)
year (2 digits) (00-99)
month
(01-12)
day of month
(01-31)
hours
(00-23)
hour code
(a-x)
minutes
(00-59)
day of year
(001-366)
gps week
(0001-9999)
day of gps week (0-6)
sequence number (0- )
station name
(lower-case)
station name
(upper-case)
station name
environment variable

If the local directory is not specified in RTKGET, the downloaded
files are saved in the directory. The directory path can contain
keyword as same as URL address.

112

Notes

RTKLIB ver. 2.4.2 Manual

EXAMPLE
#-------------------------------------------------------------------------------------# data type url Address
default local dir
#-------------------------------------------------------------------------------------#! PRODUCT (CDDIS)
IGS_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.sp3.Z
IGS_EPH_GLO ftp://cddis.gsfc.nasa.gov/gps/products/%W/igl%W%D.sp3.Z
IGS_CLK ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.clk.Z
IGS_CLK_30S ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.clk_30s.Z
IGS_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W7.erp.Z
IGR_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.sp3.Z
IGR_CLK ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.clk.Z
IGR_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.erp.Z
IGU_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%h.sp3.Z
IGU_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%h.erp.Z
IGS_POS ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%yP%W.snx.Z
IGS_TEC ftp://cddis.gsfc.nasa.gov/gps/products/ionex/%Y/%n/igsg%n0.%yi.Z
IGR_TEC ftp://cddis.gsfc.nasa.gov/gps/products/ionex/%Y/%n/igrg%n0.%yi.Z
...

113

c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W
c:\product\%W

RTKLIB ver. 2.4.2 Manual

Appendix C API References
The following table shows the list of RTKLIB library functions. For detailed API (calling convention,
description of the function, input and output parameters and types, return value and type) for a library
function, refer the header comment of each function in the source program in <install
dir>\rtklib_<ver>\src. The definition of data types regarding to the APIs, refer the header file
rtklib.h in <install dir>\rtklib_<ver>\src.

The detailed specifications and some examples of API usages will be also provided as RTKLIB API
Reference Manual.

Table C‐1 RTKLIB API function List ( *: added in ver. 2.4.2, **: modified in ver. 2.4.2)
Function

Description

Source Program

Satellite number/system functions
satno()
satsys()
satid2no()
satno2id()
obs2code()
code2obs()
satexclude()
testsnr()
setcodepri()
getcodepri()

Satellite system and PRN/slot number to satellite number
Satellite number to satellite system
Satellite ID to satellite number
Satellite number to satellite ID
Observation type string to observation code
Observation code to observation code string
Test excluded satellites
Test SNR mask
Set code priority for multiple codes
Get code priority for multiple codes

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

Matrix and vector functions
mat()
imat()
zeros()
eye()
dot()
norm()
cross3()
normv3()
matcpy()
matmul()
matinv()
solve()
lsq()
filter()
smoother()
matprint()
matfprint()

New matrix
New integer matrix
New zero matrix
New identity matrix
Inner Product
Euclid norm
Outer product of 3D vectors
Normalize 3D vector
Copy matrix
Multiply matrix
Inverse of matrix
Solve linear equation
Least square estimation
Kalman filter state update
Kalman smoother
Print matrix
Print matrix to file
Time and string functions

114

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

**
**
*
*
*
*

RTKLIB ver. 2.4.2 Manual

Function
str2num()
str2time()
time2str()
epoch2time()
time2epoch()
gpst2time()
time2gpst()
gst2time()
time2gst()
bdt2time()
time2bdt()
time_str()
timeadd()
timediff()
gpst2utc()
utc2gpst()
gpst2bdt()
bdt2gpst()
timeget()
timeset()
time2doy()
utc2gmst()
adjgpsweek()
tickget()
sleepms()
reppath()
reppaths()

Description
String to number
String to time
Time to string
Calendar day/time to time
Time to calendar day/time
GPS week/TOW to time
Time to GPS week/TOW
GST week/TOW to time
Time to GST week/TOW
BDT week/TOW to time
Time to BDT week/TOW
Get Time String
Add time
Time difference
GPS Time to UTC
UTC to GPS Time
GPS Time to BDT
BDT to GPS Time
Get current time in UTC
Set current time in UTC
Time to Day of Year
UTC to Greenwich Mean Sidereal Time
Adjust GPS week number
Get current tick time
Sleep for milliseconds
Replace file path
Replace file paths

Source Program
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

*
*

*
*

*

Coordinates functions
ecef2pos()
pos2ecef()
ecef2enu()
enu2ecef()
covenu()
covecef()
xyz2enu()
eci2ecef()
deg2dms()
dms2deg()

ECEF to geodetic position
Geodetic to ECEF position
ECEF to local coordinates
Local to ECEF coordinates
Covariance in local coordinates
Covariance in ECEF coordinates
ECEF to ENU local coordinate transformation matrix
ECI to ECEF transformation matrix
Convert degree to deg‐min‐sec
Convert deg‐min‐sec to degree

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c **
rtkcmn.c
rtkcmn.c

Input/output functions
readpos()
sortobs()
uniqnav()
screent()
readnav()
savenav()
freeobs()
freenav()

Read station positions
Sort observation data
Delete duplicated ephemerides in navigation data
Screen data by time and interval
Read navigation data from file
Save navigation data to file
Free memory for observation data
Free memory for navigation data
Debug trace functions

115

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

RTKLIB ver. 2.4.2 Manual

Function
traceopen()
traceclose()
trace()
tracet()
tracemat()
traceobs()
traceonav()
tracegnav()
tracehnav()
tracepeph()
tracepclk()
traceb()

Description
Open trace file
Close trace file
Output trace
Output trace with time tag
Output trace as matrix printing
Output trace as observation data printing
Output trace as GPS navigation messages
Output trace as GLONASS navigation messages
Output trace as GEO navigation messages
Output trace as precise ephemeris
Output trace as precise clock
Output trace as binary dump

Source Program
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

Platform dependent functions
execcmd()
expath()
createdir()

rtkcmn.c
rtkcmn.c
rtkcmn.c

Execute command
Expand file path
Create directory
Positioning models

satwavelen()
satazel()
geodist()
dops()
csmooth()

Satellite signal carrier wave length
Satellite azimuth/elevation angle
Geometric distance
Compute DOPs
Carrier smoothing

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c

Atmosphere models
ionmodel()
ionmapf()
ionppp()
tropmodel()
tropmapf()
iontec()
readtec()
ionocorr()
tropcorr()

Ionospheric model
Ionospheric mapping function
Ionospheric pierce point position
Tropospheric model
Tropospheric mapping function
Ionosphere model by TEC grid data
Read IONEX TEC grid file
Ionosphere correction
Troposphere correction

rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
rtkcmn.c
ionex.c
ionex.c
pntpos.c
pntpos.c

Antenna models
readpcv()
searchpcv()
antmodel()
antmodel_s()

Read antenna parameters
Search antenna parameters
Receiver antenna model
Satellite antenna model

rtkcmn.c
rtkcmn.c
rtkcmn.c **
rtkcmn.c

Earth tides models
sunmoonpos()
tidedisp()

Sun and moon position
Displacements by earth tides

rtkcmn.c **
ppp.c

Geoid model
opengeoid()
closegeoid()
geoidh()

geoid.c
geoid.c
geoid.c

Open external geoid file
Close external geoid file
Geoid height
Datum transformation

loaddatump()

Load datum transformation parameter

116

datum.c

RTKLIB ver. 2.4.2 Manual

Function
tokyo2jgd()
jgd2tokyo()

Description
Tokyo datum to JGD2000 datum
JGD2000 datum to Tokyo datum

Source Program
datum.c
datum.c

RINEX functions
readrnx()
readrnxt()
readrnxc()
outrnxobsh()
outrnxobsb()
outrnxnavh()
outrnxgnavh()
outrnxhnavh()
outrnxlnavh()
outrnxqnavh()
outrnxcnavh()
outrnxnavb()
outrnxgnavb()
outrnxhnavb()
uncompress()
init_rnxctr()
free_rnxctr()
open_rnxctr()
input_rnxctr()
convrnx()

Read RINEX file
Read RINEX file in time range/interval
Read RINEX clock file
Output RINEX OBS header
Output RINEX OBS body
Output RINEX NAV header
Output RINEX GLONASS NAV header
Output RINEX GEO NAV header
Output RINEX Galileo NAV header
Output RINEX QZSS NAV header
Output RINEX BeiDou NAV header
Output RINEX NAV body
Output RINEX GLONASS NAV body
Output RINEX GEO NAV body
Uncompress file
Initialize RINEX control
Free RINEX control
Open RINEX control
Input next RINEX data by RINEX control
RINEX converter

rinex.c **
rinex.c **
rinex.c
rinex.c **
rinex.c
rinex.c
rinex.c
rinex.c
rinex.c
rinex.c
rinex.c *
rinex.c
rinex.c
rinex.c
rinex.c
rinex.c *
rinex.c *
rinex.c *
rinex.c *
convrnx.c

Ephemeris functions
eph2clk()
geph2clk()
seph2clk()
eph2pos()
geph2pos()
seph2pos()
peph2pos()
satantoff()
satpos()
satposs()
readsp3()
readsap()
readdcb()
alm2pos()
tle_read()
tle_name_read()
tle_pos()

Broadcast ephemeris to satellite clock‐bias
GLONASS ephemeris to satellite clock‐bias
GEO ephemeris to satellite clock‐bias
Broadcast ephemeris to satellite position/clock‐bias
GLONASS ephemeris to satellite position/clock‐bias
GEO ephemeris to satellite position/clock‐bias
Precise ephemeris to satellite position/clock‐bias
Satellite antenna phase center offset
Satellite position/clock‐bias
Satellite positions/clock‐biases
Read SP3 file
Read satellite antenna phase center parameters
Read DCB parameters
Almanac to satellite position/clock‐bias
Read TLE data file
Read TLE satellite name file
Satellite position and velocity with TLE data

ephemeris.c
ephemeris.c
ephemeris.c
ephemeris.c
ephemeris.c
ephemeris.c
preceph.c
ephemeris.c
ephemeris.c
ephemeris.c
preceph.c **
preceph.c
preceph.c
preceph.c
tle.c *
tle.c *
tle.c *

Receiver raw data functions
getbitu()
getbits()
setbitu()
setbits()
crc32()
crc24q()

rtkcmn.c
rtkcmn.c
rtkcmn.c *
rtkcmn.c *
rtkcmn.c
rtkcmn.c

Extract unsigned bits
Extract signed bits
Set unsigned bits
Set signed bits
CRC32 parity
CRC24Q parity

117

RTKLIB ver. 2.4.2 Manual

Function
crc16()
decode_word()
decode_frame()
init_raw()
free_raw()
input_raw()
input_rawf()

Description
CRC16 parity
Decode navigation data word
Decode navigation data frame
Initialize receiver raw data control
Free receiver raw data control
Input receiver raw data from stream
Input receiver raw data from file

Source Program
rtkcmn.c *
rcvraw.c
rcvraw.c
rcvraw.c
rcvraw.c
rcvraw.c
rcvraw.c

Receiver dependent functions
input_oem4()
input_oem3()
input_ubx()
input_ss2()
input_cres()
input_stq()
input_gw10()
input_javad()
input_nvs()
input_binex()
input_oem3f()
input_oem4f()
input_ubxf()
input_ss2f()
input_cresf()
input_stqf()
input_gw10f()
input_javadf()
input_nvsf()
input_binexf()
gen_ubx()
gen_stq()
gen_nvs()

Input OEM4/V raw data from stream
Input OEM3 raw data from stream
Input u‐blox raw data from stream
Input Superstar II raw data from stream
Input Crescent raw data from stream
Input SkyTraq raw data from stream
Input Furuno GW‐10‐II/III raw data from stream
Input JAVAD GRIL/GREIS raw data from stream
Input NVS BINR raw data from stream
Input BINEX data from stream
Input OEM3 raw data from file
Input OEM4/V raw data from file
Input u‐blox raw data from file
Input Superstar II raw data from file
Input Crescent raw data from file
Input SkyTraq raw data from file
Input Furuno GW‐10‐II/III raw data from file
Input JAVAD GRIL/GREIS raw data from file
Input NVS BINR raw data from file
Input BINEX data from file
Generate u‐blox binary command
Generate SkyTraq binary command
Generate NVS BINR binary command

rcv/novatel.c
rcv/novatel.c
rcv/ublox.c
rcv/ss2.c
rcv/crescent.c
rcv/skytraq.c
rcv/gw10.c
rcv/javad.c
rcv/nvs.c *
rcv/binex.c *
rcv/novatel.c
rcv/novatel.c
rcv/ublox.c
rcv/ss2.c
rcv/crescent.c
rcv/skytraq.c
rcv/gw10.c
rcv/javad.c
rcv/nvs.c *
rcv/binex.c *
rcv/ublox.c
rcv/skytraq.c
rcv/nvs.c *

RTCM functions
init_rtcm()
free_rtcm()
input_rtcm2()
input_rtcm3()
input_rtcm2f()
input_rtcm3f()
gen_rtcm2()
gen_rtcm3()

Initialize RTCM control
Free RTCM control
Input RTCM 2 message from stream
Input RTCM 3 message from stream
Input RTCM 2 message from file
Input RTCM 3 message from file
Generate RTCM 2 message
Generate RTCM 3 message

rtcm.c
rtcm.c
rtcm.c
rtcm.c
rtcm.c
rtcm.c
rtcm.c *
rtcm.c *

Solution functions
initsolbuf()
freesolbuf()
freesolstatbuf()
getsol()
addsol()
readsol()
readsolt()
readsolstat()

Initialize solution buffer
Free solution buffer
Free solution status buffer
Get solution data from solution buffer
Add solution data to solution buffer
Read solution data from solutions files
Read solution data in time range/interval
Read solution status from file
118

solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c

RTKLIB ver. 2.4.2 Manual

Function
readsolstatt()
inputsol()
outprcopts()
outsolheads()
outsols()
outsolexs()
outprcopt()
outsolhead()
outsol()
outsolex()
outnmea_rmc()
outnmea_gga()
outnmea_gsa()
outnmea_gsv()

Description
Read solution status in time range/interval
Input solution data from stream
Output processing options to string
Output solution header to string
Output solution body to string
Output extended solution to string
Output processing options to file
Output solution header to file
Output solution body to file
Output extended solution to file
Output NMEA GPRMC sentence
Output NMEA GPGGA sentence
Output NMEA GPGSA, GLGSA, GAGSA sentences
Output NMEA GPGSV, GLGSV, GAGSV sentences

Source Program
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c
solution.c

Convert solutions to Google Earth KML file
convkml()

Convert solutions to Google Earth KML file

convkml.c

SBAS functions
sbsreadmsg()
sbsreadsmgt()
sbsoutmsg()
sbsdecodemsg()
sbsupdatecorr()
sbssatcorr()
sbsioncorr()
sbstropcorr()

Read SBAS message file
Read SBAS message file in time range
Output SBAS messages
Decode SBAS message
Update SBAS corrections
SBAS satellite correction
SBAS ionospheric correction
SBAS tropospheric correction

sbas.c
sbas.c
sbas.c
sbas.c
sbas.c
sbas.c
sbas.c
sbas.c

Options functions
searchopt()
str2opt()
opt2str()
opt2buf()
loadopts()
saveopts()
resetsysopts()
getsysopts()
setsysopts()

Search option
String to option value
Option value to string
Option to string
Load options from file
Save options to file
Reset system options to default
Get system options
Set system options

options.c
options.c
options.c
options.c
options.c
options.c
options.c
options.c
options.c

Stream data input/output functions
strinitcom()
strinit()
strlock()
strunlock()
stropen()
strclose()
strread()
strwrite()
strsync()
strstat()
strsum()
strsetopt()

Initialize stream communication environment
Initialize stream
Lock stream
Unlock stream
Open stream
Close stream
Read stream
Write stream
Time sync stream
Get stream status
Get stream statistics summary
Set stream options

119

stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c

RTKLIB ver. 2.4.2 Manual

Function
strgettime()
strsendnmea()
strsendcmd()
strsettimeout()
strsetdir()
strsetproxy()

Description
Get current time from stream
Send NMEA message to stream
Send receiver command to stream
Set stream timeout parameters
Set local directory
Set proxy address

Source Program
stream.c
stream.c
stream.c
stream.c
stream.c
stream.c

Integer ambiguity resolution
lambda()

LAMBDA/MLAMBDA integer least‐square estimation

lambda.c

Standard positioning
pntpos()

pntpos.c

Standard positioning
Precise positioning

rtkinit()
rtkfree()
rtkpos()
rtkopenstat()
rtkclosestat()

Initialize RTK control struct
Free RTK control struct
Precise positioning
Open solution status file
Close solution status file

rtkpos.c
rtkpos.c
rtkpos.c
rtkpos.c
rtkpos.c

Precise point positioning
pppos()
pppnx()
pppoutsolstat()
windupcorr()
pppamb()

Precise point positioning (PPP)
Number of estimated states for PPP
Output solution statistics for PPP
Phase windup correction
Resolve integer ambiguity for PPP

ppp.c *
ppp.c *
ppp.c *
rtkcmn.c *
ppp_ar.c *

Post‐processing positioning
postpos()

Post‐processing positioning

postpos.c

Stream server functions
strsvrinit()
strsvrstart()
strsvrstop()
strsvrstat()
strconvnew()
strconvfree()

Initialize stream server
Start stream server
Stop stream server
Get stream server status
Generate stream converter
Free stream converter

streamsvr.c
streamsvr.c **
streamsvr.c
streamsvr.c
streamsvr.c *
streamsvr.c *

RTK server functions
rtksvrinit()
rtksvrstart()
rtksvrstop()
rtksvropenstr()
rtksvrclosestr()
rtksvrlock()
rtksvrunlock()
rtksvrostat()
rtksvrsstat()

Initialize RTK server
Start RTK server
Stop RTK server
Open output/log stream
Close output/log stream
Lock RTK server
Unlock RTK server
Get RTK observation data status
Get RTK stream status

rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c
rtksvr.c

Downloader functions
dl_readurls()
dl_readstas()

Read URL address list file of GNSS data
Read station list file for download

120

download.c *
download.c *

RTKLIB ver. 2.4.2 Manual

Function
dl_exec()
dl_test()

Description
Execute download of GNSS data
Execute local file test of GNSS data

Source Program
download.c *
download.c *

QZSS LEX functions
lexupdatecorr()
lexreadmsg()
lexoutmsg()
lexconvbin()
lexeph2pos()
lexioncorr()

Update LEX corrections
Read LEX message log file
Output LEX message log
Convert LEX binary to LEX message log
LEX satellite ephemeris and clock correction
LEX ionosphere correction

121

qzslex.c
qzslex.c
qzslex.c
qzslex.c
qzslex.c
qzslex.c

*
*
*
*
*
*

RTKLIB ver. 2.4.2 Manual

Appendix D Files and Messages
D.1

Supported RINEX Files

Supported RINEX versions and files by RTKLIB are shown in the following table.

Observation Data

Navigation Messages

RINEX
Version

Met.

CLK

GEO
BRDC

G

R

E

J

C

S

G

R

E

J

C

S

2.10

O

O

O*

O*

O*

O

N

G

N*

N*

-

H

-

-

-

2.11

O

O

O

O*

O*

O

N

G

N*

N*

-

H

-

-

-

2.12

O

O

O

O*

O

O

N

G

N

N*

-

H

-

-

-

3.00

O

O

O

O*

O*

O

N

N

N

N*

N*

N

-

C**

-

3.01

O

O

O

O*

O

O

N

N

N

N*

N*

N

-

C**

-

3.02

O

O

O

O

O

O

N

N

N

N

N

N

-

C**

-

G: GPS, R: GLONASS, E: Galileo, J: QZSS, C: BeiDou, S: SBAS
-: not supported, O,N,G,H: supported as RINEX file type
* RTKLIB extensions (QZSS extensions are based on JAXA [60][61]), ** read only,

122

RTKLIB ver. 2.4.2 Manual

D.2

Supported Receiver Messages

Supported RTCM 2, RTCM 3, BINEX and receiversʹ proprietary messages by RTKLIB are shown in the
following table.

Data Message Types
Format
RTCM 2
[16]

RTCM 3
[17][18]

BINEX
[19]

**

NovAtel
OEM4/V/6

Raw Observation
Data

Satellite
Ephemerides

ION/UTC
Parameters

Antenna
Info

SBAS
Messages

Others

18,19

17

-

3,22

-

1*,9*,
14,16

see below

see below

-

see
below

-

see below

-

-

-

-

IONUTCB,
QZSSIONUTCB,
GALIONOB,
GALCLOCKB

-

RAWWAASFRAMEB,
RAWSBASFRAMEB,
QZSSRAWSUBFRAMEB

-

0x7f-05
(Trimble NetR8)

RANGEB,
RANGECMPB

[41][42]

NovAtel
OEM3

0x01-01,
0x01-02,
0x01-03,
0x01-04,
0x01-06
RAWEPHEMB,
GLOEPHEMERISB,
QZSSRAWEPHEMB,
GALEPHEMERISB

RGEB,
RGED

REPB

IONB,
UTCB

-

FRMB

-

UBX
RXM-RAW

UBX
RXM-SFRB

UBX
RXM-SFRB

-

UBX
RXM-SFRB

-

ID#23

ID#22

-

-

ID#67

ID#20,
ID#21

bin 96,
bin 76

bin 95

bin 94

-

bin 80

-

msg 0xDD
(221)

msg 0xE0
(224)

msg 0xE0
(224)

-

-

msg 0xDC
(220)

msg 0x08

msg 0x27

msg 0x27

-

msg 0x27

msg 0x20

[RC],[rc],[CR],
[cr],[PC],[pc],
[CP],[cp],[DC],
[cd],[EC],[CE],
[FC],[R1],[r1],
[1R],[1r],[P1],
[p1],[1P],[1p],
[D1],[1d],[E1],
[1E],[F1],[R2],

[GE],[NE],
[EN],[WE],
[QE]

[UO],[NU],
[EU],[WU],
[QU],[IO]

-

[WD]

[~~],[::],
[RD],[ST],
[NN]

[43]

u‐blox
LEA‐4T/5T/
6T [44]
NovAtel
Superstar II
[45]

Hemisphere
Crescent,
Eclipse
[46][47]

SkyTraq
S1315F
[48][49]

Furuno
GW‐10‐II/III
[50]

JAVAD
GRIL/GRIES
[51][52][53][54]

123

RTKLIB ver. 2.4.2 Manual
Data Message Types
Format

Raw Observation
Data
[r2],[2R],[2r],
[P2],[p2],[2P],
[2p],[D2],[2d],
[E2],[2E],[F2],
[R3],[r3],[3R],
[3r],[P3],[p3],
[3P],[3p],[D3],
[3d],[E3],[3E],
[F3],[R5],[r5],
[5R],[5r],[P5],
[p5],[5P],[5p],
[D5],[5d],[E5],
[5E],[F5],[Rl],
[rl],[lR],[lr],
[Pl],[pl],[lP],
[lp],[Dl],[ld],
[El],[lE],[Fl],
[TC]

Satellite
Ephemerides

ION/UTC
Parameters

Antenna
Info

SBAS
Messages

Others

msg F5h

msg F7h

msg 4Ah,
msg 4Bh

-

-

-

NVS
NV08C
[55][56]

* Only support to read, DGPS correction is not supported
** Only big‐endian, forward and regular CRC messages

Supported RTCM 3 Message Types
-----------------------------------------------------------------------------Message
GPS
GLOASS
Galileo
QZSS
BeiDou
SBAS
-----------------------------------------------------------------------------OBS Compact L1
1001~
1009~
Full
L1
1002
1010
Compact L1/2
1003~
1011~
Full
L1/2
1004
1012
Ephemeris

1019
-

1020
-

1045*
1046*

1044*
-

-

-

MSM 1
2
3
4
5
6
7

1071~
1072~
1073~
1074
1075
1076
1077

1081~
1082~
1083~
1084
1085
1086
1087

1091~
1092~
1093~
1094
1095
1096
1097

1111*~
1112*~
1113*~
1114*
1115*
1116*
1117*

1121*~
1122*~
1123*~
1124*
1125*
1126*
1127*

1101*~
1102*~
1103*~
1104*
1105*
1106*
1107*

SSR Orbit Corr.
Clock Corr.
Code Bias
Combined
URA
HR-Clock

1057
1058
1059
1060
1061
1062

1063
1064
1065
1066
1067
1068

1240*
1241*
1242*
1243*
1244*
1245*

1246*
1247*
1248*
1249*
1250*
1251*

-

-

Antenna Info
1005 1006 1007 1008 1033
-----------------------------------------------------------------------------* draft, ~ only encode

124

RTKLIB ver. 2.4.2 Manual

D.3

Supported Signal IDs/Observation Types

Supported signal IDs/observation types by RTKLIB are shown in the following table. The table also indicate
the correspondent RINEX 2 and RINEX 3 observation types, RTCM 3 MSM signal IDs and BINEX
observation code IDs. For RTCM 2, RTCM3 and RINEX to RINEX conversion by RTKCONV and
CONVBIN, RTCM 2 and BINEX to RTCM 3 conversion by STRSVR and STR2STR, the table is used as well.

System

Freq.

L1

GPS

L2

L5
G1
GLONASS

G2
G3

Galileo

E1

E5a

Channel or Code
C/A
L1C(D)
L1C(P)
L1C(D+P)
P
Z‐tracking and
similar (AS on)
Y
M
codeless
C/A
L1(C/A)+(P2‐P1)
(semi‐codeless)
L2C(M)
L2C(L)
L2C(M+L)
P
Z‐tracking and
similar (AS on)
Y
M
codeless
I
Q
I+Q
C/A
P
C/A
P
I
Q
I+Q
A PRS
B I/NAV OS/CS/SoL
C
B+C
A+B+C
I F/NAV OS

Signal
ID
1C
1S
1L
1X
1P

RINEX 2
*1
C1/CA*
CB*
-

RINEX 3
*2
1C
1S
1L
1X
1P

RTCM 3
*3
2
30
31
32
3

BINEX
*4
0,1
6
2

1W

P1/C1*

1W

4

3

1Y
1M
1N
2C

-

1Y
1M
1N
2C

5
6
8

4
5
7
11

2D

-

2D

-

12

2S
2L
2X
2P

C2/CC*
-

2S
2L
2X
2P

15
16
17
9

13
14
15
16

2W

P2

2W

10

10,17

2Y
2M
2N
5I
5Q
5X
1C
1P
2C
2P
3I
3Q
3X
1A
1B
1C
1X
1Z
5I

C5
C1/CA*
P1/C1*
C2/CD*
P2
C1
-

2Y
2M
2N
5I
5Q
5X
1C
1P
2C
2P
3I
3Q
3X
1A
1B
1C
1X
1Z
5I

11
12
22
23
24
2
3
8
9
11
12
13
3
4
2
5
6
22

18
19
20
24
25
23,26
0,1
2
10,11
12
14
15
13,16
1
2
0,3
4
5
7

125

RTKLIB ver. 2.4.2 Manual

System

QZSS

BeiDou

SBAS

Freq.

Channel or Code

Signal
ID
5Q
5X
7I
7Q
7X
8I
8Q
8X
6A
6B
6C
6X
6Z
1C
1S
1L
1X
1Z
2S
2L
2X
5I
5Q
5X
6S
6L
6X
2I
2Q
2X
7I
7Q
7X
6I
6Q
6X
1C
5I
5Q
5X

RINEX 2
*1
C5
C7
C8
C6
C1/CA*
CB*
C2/CC*
C6
C2
C7
C6
C1/CA*
C5

RINEX 3
*2
5Q
5X
7I
7Q
7X
8I
8Q
8X
6A
6B
6C
6X
6Z
1C
1S
1L
1X
1Z
2S
2L
2X
5I
5Q
5X
6S
6L
6X
2I
2Q
2X
7I
7Q
7X
6I
6Q
6X
1C
5I
5Q
5X

RTCM 3
*3
23
24
14
15
16
18
19
20
9
10
8
11
12
2
30
31
32
6
15
16
17
22
23
24
9
10
11
2
3
4
14
15
16
8
9
10
2
22
23
24

Q no data
I+Q
I I/NAV OS/CS/SoL
E5b
Q no data
I+Q
I
E5a+E5b
Q
I+Q
A PRS
B C/NAV CS
E6
C no data
B+C
A+B+C
C/A
L1C(D)
L1
L1C(P)
L1C(D+P)
L1‐SAIF
L2C(M)
L2
L2C(L)
L2C(M+L)
I
L5
Q
I+Q
S
LEX
L
S+L
I
Q
B1
I+Q
I
B2
Q
I+Q
I
B3
Q
I+Q
L1
C/A
I
L5
Q
I+Q
*1 pseudorange OBS TYPE [9][10][11][12][13][14], *2 [12][13][14], *3 RTCM MSM signal ID [18],
*4 BINEX observation code ID for message 0x7f‐05 [19], * RINEX 2.12

126

BINEX
*4
8
6,9
11
12
10,13
15
16
14,17
19
20
21
18,22
23
0,1
2
3
4
30
8
9
7,10
14
15
13,16
20
21
19,22
1
2
0,3
5
6
4,7
9
10
8,11
0,1
7
8
6,9

RTKLIB ver. 2.4.2 Manual

D.4

Default Priorities of Multiple Signals

If input observation data contain multiple signals in a frequency, RTKLIB selects a signal for processing by
the following default priorities. To select appropriate signal, use RINEX options or receiver dependent
options described in Appendix D.5. In user APs, to change or obtain the signal priorities, use API
setcodepri() or getcodepri().

System

GPS

GLONASS

Galileo

QZSS

BeiDou

SBAS

Freq.

Signal Priority (1: highest > 10: lowest) *
1

2

3

4

5

6

7

8

L1

1C

1P

1Y

1W

1M

1N

1S

1L

L2

2P

2Y

2W

2C

2M

2N

2D

2S

L5

5I

5Q

5X

G1

1P

1C

G2

2P

2C

G3

3I

3Q

3X

E1

1C

1A

1B

1X

1Z

E5a

5I

5Q

5X

E5b

7I

7Q

7X

E5a+E5b

8I

8Q

8X

E6

6A

6B

6C

6X

6Z

L1

1C

1S

1L

1X

1Z

L2

2S

2L

2X

L5

5I

5Q

5X

LEX

6S

6L

6X

B1

2I

2Q

2X

B2

7I

7Q

7X

B3

6I

6Q

6X

L1

1C

L5

5I

5Q

5X

* Refer Appendix D.3 for signal IDs,

127

9

10

2L

2X

RTKLIB ver. 2.4.2 Manual

D.5

Receiver Dependent Input Options

Format
RTCM 2

RTCM 3

BINEX

NovAtel OEM4/V/6

NovAtel OEM3

Option

Description

-

-

-EPHALL

Input all of ephemerides

-STA=nnn

Input only messages with STAID=nnn

-GLss

Select signal ss for GPS MSM (ss=1C,1P...) * **

-RLss

Select signal ss for GLO MSM (ss=1C,1P...) * **

-ELss

Select signal ss for GAL MSM (ss=1C,1B...) * **

-JLss

Select signal ss for QZS MSM (ss=1C,2C...) * **

-CLss

Select signal ss for BDS MSM (ss=2I,7I...) * **

-EPHALL

Input all of ephemerides

-GLss

Select signal ss for GPS (ss=1C,1P...) * **

-RLss

Select signal ss for GLO (ss=1C,1P...) * **

-ELss

Select signal ss for GAL (ss=1C,1B...) * **

-JLss

Select signal ss for QZS (ss=1C,2C...) * **

-CLss

Select signal ss for BDS (ss=2I,7I...) * **

-EPHALL

Input all of ephemerides

-GL1P

Select 1P for GPS L1 (default 1C) *

-GL2X

Select 2X for GPS L2 (default 2W) *

-RL2C

Select 2C for GLO L2 (default 2P) *

-EL2C

Select 2C for GAL L2 (default 2C) *

-

-

-EPHALL

Input all of ephemerides

-INVCP

Invert polarity of carrier-phase

-TADJ=tint

Adjust time tags to multiples of tint (sec)

NovAtel Superstar II
Hemisphere
Crescent/Eclipse
SkyTraq S1315F

-

-

-EPHALL

Input all of ephemerides

-INVCP

Invert polarity of carrier-phase

Furuno GW‐10‐II/III

-EPHALL

Input all of ephemerides

-EPHALL

Input all of ephemerides

-GL1W

Select 1W for GPS L1 (default 1C) *

-GL1X

Select 1X for GPS L1 (default 1C) *

-GL2X

Select 2X for GPS L2 (default 2W) *

-RL1C

Select 1C for GLO L2 (default 1P) *

-RL2C

Select 2C for GLO L2 (default 2P) *

-JL1Z

Select 1Z for QZS L1 (default 1C) *

-JL1X

Select 1X for QZS L1 (default 1C) *

u‐blox LEA‐4T/5T/6T

JAVAD GRIL/GRIES

NVS NV08C BINR

-NOET

Discard epoch time message ET (::)

-EPHALL

Input all of ephemerides

-TADJ=tint

Adjust time tags to multiples of tint (sec)

* Refer Appendix D.3 for signal IDs, ** Refer Appendix D.4 for default signal priority

128

RTKLIB ver. 2.4.2 Manual

Appendix E Models and Algorithms
This appendix briefly describes the models and algorithms involved in RTKLIB. The common acronyms
used for models or equations in the appendix are shown as follows.

c

: speed of light (m/s)

Prs,i

: Li pseudorange measurement of signal (m)

Drs,i

: Li Doppler frequency measurement of signal (Hz)

 rs,i

: Li carrier‐phase measurement of signal (cycle)

 rs,i

: Li phase‐range measurement of signal (m)

tr

: navigation signal reception time at receiver (s)

t

s

: navigation signal transmission time at satellite (s)

 rs

: geometric range between satellite and receiver antennas (m)

rrs

: range‐rate between satellite and receiver antennas (m/s)

r s (t )

: satellite position at time t in ECEF (m)

v s (t )

: satellite velocity at time t in ECEF (m)

rr (t )

: receiver antenna position at time t in ECEF (m)

vr (t )

: receiver antenna velocity at time t in ECEF (m/s)

ers

: LOS vector from receiver antenna to satellite in ECEF

e rs, enu

: LOS vector from receiver antenna to satellite in local coordinates

Er

: coordinates rotation matrix from ECEF to local coordinates at receiver antenna position

Es

: coordinates rotation matrix from ECEF to satellite body‐fixed coordinates

r

: latitude of receiver antenna position (rad)

r

: longitude of receiver antenna position (rad)

Azrs

: azimuth angle of satellite direction (rad)

Elrs

: elevation angle of satellite direction (rad)

dtr (t )

: receiver clock bias at time t (s)

dtr (t )

: receiver clock drift at time t (s/s)

dT s (t )

: satellite clock bias at time t (s)

dT s (t )

: satellite clock drift at time t (s/s)

Trs

: tropospheric delay (m)

I

s
r ,i

: Li ionospheric delay (m)

fi

: Li carrier frequency (Hz)

i

: Li carrier wave length (m)

Brs,i

: Li carrier‐phase bias (cycle)

129

RTKLIB ver. 2.4.2 Manual
N rs,i

: Li carrier‐phase integer ambiguity (cycle)

P

: measurement errors of pseudorange (m)



: measurement errors of carrier‐phase (cycle)



: measurement errors of phase‐range (m)

e

: earth rotation angle velocity (rad/s)

dr , pco,i

: Li receiver antenna phase center offset in local coordinates (m)

s
d pco
,i

: Li satellite antenna phase center offset in satellite body‐fixed coordinates (m)

dr , pcv,i ( El ) : Li receiver antenna phase center variation (m)
s
d pcv
, i ( )

: Li satellite antenna phase center variation (m)



: off‐nadir angle of receiver antenna direction from satellite (rad)

dr ,disp

: displacement by earth tides at receiver position in local coordinates (m)

pw

: phase windup effect (cycle)

s
dTrel

: relativity correction for satellite clock (s)

U (t )

: ECI to ECEF coordinates transformation matrix at time t

Rx ( )

: coordinates rotation matrix around x‐axis by angle 

Ry ( )

: coordinates rotation matrix around y‐axis by angle 

Rz ( )

: coordinates rotation matrix around z‐axis by angle 

() jk : SD (single‐difference) between satellite j and k
() rb

: SD (single‐difference) between receiver r and b

ZT ,r : tropospheric zenith total delay (m)
ZH ,r

: tropospheric zenith hydrostatic delay (m)

GE,r : east component of tropospheric gradient
GN ,r
s
H ,r

: north component of tropospheric gradient

m

: mapping function for hydrostatic tropospheric delay

mWs , r

: mapping function for wet tropospheric delay

s
I ,r

m

: mapping function for ionospheric delay

130

RTKLIB ver. 2.4.2 Manual

E.1

Time System

RTKLIB internally uses GPST (GPS Time) for GNSS data handling and positioning algorithms. The time of
input data expressed in other time systems like UTC (Universal Time Coordinated) is converted to GPST
before internal processing or the GPST of the internal data is converted to the appropriate other time
system before output. One of the reasons why using GPST is to avoid leap seconds handling. UTC, which is
the most generally used time system, is not a continuous time system with a second jump by the leap
second insertion or deletion.

The GPST is often expressed as a GPS week number and TOW (time of week) in seconds since the start
epoch of 00:00:00 UTC on January 6, 1980. RTKLIB, however, does not use such a convention. In GNSS data
processing, we often need to convert a time to a range or a range to a time. The TOW even expressed as a
double precision has only the resolution of 1.3  1010 s in time, which is equivalent to the resolution of 0.04
m in range. So, instead, RTKLIB expresses time as the type gtime_t defined as:

typedef struct {
time_t time; /* time (s) expressed by standard time_t */
double sec;

/* fraction of second under 1 s */

} gtime_t;

where the time_t is the standard time type provided by the standard C library. The internal representation
of the time_t depends upon the computer system. It is often implemented by an unsigned 32 bit integer as
the number of total seconds since 00:00:00 on January 1, 1970. Due to the bit length limitation the integer,
the gtime_t cannot handle the time before January 1, 1970 or after January 19, 2038 in this case.

The sec of the gtime_t holds the fractional second. The sec has the resolution of 6.7  108 m in range
adequate for GNSS precise position computation. RTKLIB also provides several useful APIs to handle the
gtime_t including adding, difference, conversion to/from the GPS week number and TOW.

(1) GPST and UTC (Universal Time Coordinated)
The rough conversion of GPST to UTC (Universal Time Coordinated) or UTC to GPST can be
expressed simply as:

tUTC  tGPS  t LS

(E.1.1)

tGPST  tUTC  t LS

(E.1.2)

131

RTKLIB ver. 2.4.2 Manual

where tUTC and tGPST are the time expressed in UTC (s) and the time in GPST (s). t LS is the delta
time (s) between UTC and GPST due to the cumulative leap seconds since January 6, 1980. The values
of t LS are shown in Table E.1‐1 until March 2013.

Table E.1‐1

GPST‐UTC Values (until March 2013)

t LS (s)
Time Since (in UTC)
----------------------------1980-01-06 00:00:00
0
1981-07-01 00:00:00
1
1982-07-01 00:00:00
2
1983-07-01 00:00:00
3
1987-01-01 00:00:00
4
1988-01-01 00:00:00
5
1990-01-01 00:00:00
6
1991-01-01 00:00:00
7
1992-07-01 00:00:00
8
1993-07-01 00:00:00
9
1994-07-01 00:00:00
10
1996-01-01 00:00:00
11
1999-01-01 00:00:00
13
1997-07-01 00:00:00
12
2006-01-01 00:00:00
14
2009-01-01 00:00:00
15
2012-07-01 00:00:00
16

The accuracy of the approximation in (E.1.1) or (E.1.2) is within several 10 ns. By using the UTC
parameters in GPS navigation messages,

we can convert GPST to UTC or UTC to GPST more

accurately as:

tUTC  tGPS  t LS  A0  A1 (t E  tot  604800(WN  WNt ))

(E.1.3)

where A0 , A1 , t E , tot , WN are WN t are the UTC parameters provided in GPS navigation messages.
More strictly, UTC in (E.1.3) is UTC(USNO), which is the US local implementation of UTC. The
difference between UTC and UTC(USNO) can be obtained in Circular T provided by BIPM

. The

[72]

difference is usually several ns level.

(2) GLONASST (GLONASS Time)
GLONASST (GLONASS Time) is based on UTC(SU) and includes leap second insertion or deletion.
GLONASST is also aligned to the local time. So, roughly, the time tGLONASST (s) in GLONASST can be
converted to the time tUTC (s) in UTC.

tUTC  tGLONASST  10800

(E.1.4)

132

RTKLIB ver. 2.4.2 Manual
More accurately, the UTC parameters for GLONASST in GLONASS navigation message should be
used similar to the GPST and UTC conversion. Ignoring the leap seconds and the 3 hour offset, the
difference between GPST and GLONASST is usually 100 or several 100 ns level.

(3) GST (Galileo System Time)
GST (Galileo System Time) is composed of week number from the origin of the Galileo time and the
TOW (time of week) in seconds. The GST start epoch is 00:00:00 UTC on August 22, 1999. At the start
epoch, GST shall be ahead of UTC by 13 seconds. The GST is continuous time without leap second
insertion or deletion. So, the GST is aligned to GPST except for the 1024 weeks difference of the time
system origin and a small time offset (GGTO). Note that the Galileo week number is provided as equal
to the GPS week number in the RINEX convention.

(4) QZSST (QZSS Time)
QZSST (QZSS Time) is aligned to GPST. It has the same origin as GPST and the same definition of
one‐second of GPST. Practically, QZSST can be handled as same as GPST.

(5) BDT (BeiDou Navigation Satellite System Time)
BDT (BeiDou Navigation Satellite System Time) is a continuous time system without leap second
insertion or deletion. The start epoch of BDT is 00:00:00 UTC on January 1, 2006. The offset of BDT with
respect to UTC is controlled within 100 ns (modulo 1 second). So, the time tGPS (s) in GPST can
roughly be converted to the time t BDT (s) in BDT within the accuracy of 200 ns as:

t BDT  tGPST  14

(E.1.5)

More accurately, the UTC parameters for BDT in BeiDou navigation messages should be used similar
to the GPST and UTC conversion.

133

RTKLIB ver. 2.4.2 Manual

E.2

Coordinates System

The receiver or satellite positions in RTKLIB are internally represented as the X, Y, Z components in an
ECEF (earth center earth fixed) coordinates system. What ECEF frame used is not explicitly defined but
depends on the satellite ephemeris and the predefined base station position. For example, with GPS signals
and navigation data, the single point positioning results are obtained in WGS84. The baseline analysis with
the base station with the position in an ECEF frame basically brings the rover position in the same ECEF
frame. Practically, all of usually used ECEF frames in GNSS navigation processing like WGS 84, PZ90.02
and ITRF, are identical within the accuracy of broadcast ephemeris or single point positioning. However,
more strict and careful handling of the coordinates system is needed for the baseline analysis or PPP. The
unified coordinates system is desirable to minimize the processing error in these cases.

(1) Transformation from geodetic position to ECEF XYZ position
The geodetic position are defined based on a reference ellipsoid shown in Figure E.2‐1. The geodetic
latitude  r , longitude r and the ellipsoidal height h can be transformed to the ECEF XYZ position
rr  ( x, y, z )T as follows:

e2  f (2  f )
a
v
2
1  e sin r 2

(E.2.1)
(E.2.2)

 (v  h)cos r cos r 


rr   (v  h) cos r sin r 


2
 v(1  e )sin r 

(E.2.3)

where:

a : major radius of the earth reference ellipsoid (m)

f

: flattening of the earth reference ellipsoid

Current version RTKLIB always uses the following values for a and f of the reference ellipsoid
provided by the WGS84 datum.

a  6378137.0 (m)
f  1.0/298.257223563

134

RTKLIB ver. 2.4.2 Manual

Reference
Ellipsoid

rr  ( x, y , z )T

z

h

b

a (1  e 2 )

r

'

x,y plane

N


a

 ' : Geocentric Latitude  : Longitude
 : Geodetic Latitude
h : Ellipsoidal Height
Figure E.2‐1 Reference Ellipsoid

(2) Transformation from ECEF XYZ position to geodetic position
To transform the XYZ position rr  ( x, y, z )T in ECEF to the geodetic position, the following procedure
is applied. The geodetic latitude is derived by an iterative method in the procedure.

r  x2  y 2

(E.2.4)

r ,0  0

(E.2.5)



r ,i 1  arctan  
z
r



ae 2 tan r ,i
r 1  (1  e 2 ) tan 2 r ,i







(E.2.6)

r  lim r ,i

(E.2.7)

  ATAN 2( y, x)

(E.2.8)

r
a

h
2
cos r
(1  e )sin 2 r

(E.2.9)

i 

(3) Transformation between local coordinates and ECEF
The local coordinates at the receiver position, which is also called as ENU coordinates, is often used in
GNSS navigation processing. The rotation matrix Er of the ECEF coordinates to the local coordinates
are expressed as:

  sin r

E r    sin r cos r
 cos  cos 
r
r


cos r
 sin r sin r
cos r sin r

0 

cos r 
sin r 

(E.2.10)

135

RTKLIB ver. 2.4.2 Manual

where r and r are the geodetic latitude and the longitude of the receiver position. By using the Er
and the receiver position rr in the ECEF coordinates, the position rECEF in the ECEF coordinates can
be transformed to the position rlocal in the local coordinates as:

rlocal  E r (rECEF  rr )

(E.2.11)

(4) Geoid models
To obtain the geodetic height derived from the ellipsoidal height, we should consider the geoid height.
The geodetic height hgeod (m) is expressed as:

hgeo d  h  geod (r , r )

(E.2.12)

where geoid (r , r ) is the geoid height (m) at the latitude r and the longitude r . RTKLIB supports
the following geoid models selectable by the processing option ʺGeoid Modelʺ. All of these geoid
models are provided as the geoid heights at the latitude and longitude grid points. RTKLIB uses
bi‐linear interpolation to obtain the value for an appropriate latitude and longitude position. To use
these geoid model except for the internal model, the geoid model data file should be downloaded and
the file path should be set as the processing option ʺGeoid Data Fileʺ.

(a) Internal

: 1 deg x 1 deg grid geoid derived from EGM96

(b) EGM96

: 15ʺ x 15ʺ grid EGM96 geoid model

(c) EGM2008

: 2.5ʺ x 2.5ʺ grid or 1ʺ x 1ʺ grid EGM2008 geoid model

(d) GSI 2000

: 1ʺ x 1.5ʺ grid GSI 2000 geoid model (only surrounding of Japanese island)

136

RTKLIB ver. 2.4.2 Manual

E.3

GNSS Signal Measurement Models

(1) GNSS Signal Structure
Figure E.3‐1 shows a typical GNSS signal structure. The GNSS signal is generally composed of
multiplication of the carrier frequency (Carrier), the spreading code (Code) and the navigation data
(Data). The spreading codes are also called as PRN (pseudo random noise) codes. The detailed
specifications of these GNSS signals provided by GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS
are found in Appendix F.

Carrier
sin( 2ft   )
+1

Code

‐1

C (t )

+1

Data

‐1

D(t )

Signal
2 PC (t ) D(t )sin(2 ft   )

Figure E.3‐1 GNSS Signal Structure

(2) Pseudorange measurement model
The pseudorange is defined as ʺthe distance from the receiver antenna to the satellite antenna
including receiver and satellite clock offsets (and other biases, such as atmospheric delays)ʺ [9]. The Li
pseudorange Prs,i can be expressed by using the signal reception time tr (s) measured by the receiver
clock and the signal transmission time t s (s) measured by the satellite clock as:

Prs,i  c( tr  t s )

(E.3.1)

The equation can be written by using the geometric range  rs between satellite and receiver antennas,
the receiver and satellite clock biases dtr dT s , the ionospheric and tropospheric delay I rs, i , Trs and the
measurement error  P as: [64]

137

RTKLIB ver. 2.4.2 Manual

Prs,i  c((tr  dtr (tr ))  (t s  dT s (t s )))   P
 c(tr  t s )  c(dtr (tr )  dT s (t s ))   P

(E.3.2)

 (  rs  I rs,i  Trs )  c(dtr (tr )  dT s (t s ))   P
  rs  c(dtr (tr )  dT s (t s ))  I rs, i  Trs   P

t s  tr  

At Satellite

Time by Satellite Clock (s)



tr

At Receiver

Time by Receiver Clock (s)

Figure E.3‐2 Pseudorange Model

(3) Carrier‐phase and phase‐range measurement model
The carrier‐phase is ʺ... actually being a measurement on the beat frequency between the received
carrier of the satellite signal and a receiver‐generated reference frequencyʺ

[9]

. The Li carrier‐phase

 rs,i can be expressed as:

rs,i  r ,i (tr )   s i (t s )  N rs,i   
 ( f i (tr  dtr (tr )  t0 )  r ,0,i )  ( fi (t s  dT s (t s )  t0 )  0,s i )  N rs,i   


c

i

t

r

t

s

    dt (t )  dT
c

r

r

s

(t )   (r ,0,i    N )   
s

s
0, i

(E.3.3)

s
r ,i

i

s
where t0 is the initial time (s), r ,i (t ) is the Li phase (cycle) of receiver local oscillator and i (t ) is the

Li phase (cycle) of transmitted navigation signal at the time t . r ,0,i is the Li initial phase (cycle) of
receiver local oscillator and rs,0,i is the Li initial phase (cycle) of transmitted navigation signal at the
time t0 .

The Li phase‐range  rs,i , defined as the carrier‐phase multiplied by the carrier frequency i in m, also
s
s
can be expressed by using the carrier phase bias Br ,i and carrier‐phase correction terms d r , i

138

RTKLIB ver. 2.4.2 Manual
including antenna phase center offsets and variations, station displacement by earth tides, phase
windup effect and relativity correction on the satellite clock as:

 rs,i  irs,i
 c(tr  t s )  c( dtr (tr )  dT s (t s ))  i (r ,0,i  0,s i  N rs,i )  i 

(E.3.4)

  rs  c(dtr (tr )  dT s (t s ))  I rs,i  Trs  i Brs,i  d rs,i  

where:
Brs,i   r ,0,i  0,s i  N rs,i

(E.3.5)



d rs,i  d r , pco,iT ers,enu  E s d spco,i



T

s
T s
ers  d r , pcv,i ( El )  d pcv
,i ( )  d r , disp er ,enu  i pw

(E.3.6)

N rs,i is often called as carrier‐phase integer ambiguity, carrier‐cycle ambiguity or simply ambiguity. For

the detailed formulation of the carrier‐phase correction terms, refer Appendix E.9.

(4) Geometric range between receiver and satellite antennas
The geometric range is defined as the physical distance between the satellite antenna phase center
position and the receiver antenna phase center position in the inertial coordinates. At first, the signal
transmission time t s can be derived from:

t s  tr  Prs,i / c  dT (t s )

(E.3.7)

The both sides in the equation includes t s . So several iterations are needed to solve the equation. The
geometric range can be expressed by using the receiver and satellite antenna phase center positions

rr (tr )  ( xr , yr , zr )T at the time tr and r s (t s )  ( x s , y s , z s )T at the time t s in the ECEF (earth center
earth fixed) coordinates as:

 rs  U (tr )rr (tr )  U (t s )r s (t s )

(E.3.8)

where U (t ) is the ECEF to ECI (earth center inertial) coordinates transformation matrix at the time t .
For the expression in the ECEF coordinates, the earth rotation effect has to be incorporated in to obtain
the geometric range. The equation can be approximated by one of the following equations with
adequate precision under 1 mm level. Current version RTKLIB always uses the equation (F.3.8b) for the
geometric range. The last term in (F.3.8b) is sometimes called as Sagnac effect.

139

RTKLIB ver. 2.4.2 Manual

 rs  rr (tr )  Rz (e  rs / c)r s (t s )
 rs  rr (tr )  r s (t s ) 

e
c

(E.3.8a)

( x s y r  y s xr )

(E.3.8b)

 rs  rr (tr )  Rz (e (tr  t s ))r s (t s )

(E.3.8c)

y
Receiver

r s (t s )

rr (tr )

z
x
Earth

ECEF at signal transmission

Satellite

e (tr  t s )

ECEF at signal reception

Figure E.3‐1 Geometric Range and Earth Rotation Correction

(5) Azimuth and elevation angles of satellite direction
The unit LOS (line‐of‐sight) vector from the receiver to the satellite can be expressed in the ECEF
coordinates as:

ers 

r s (t s )  rr (tr )

(E.3.9)

r s (t s )  rr (tr )

In the equation, the earth rotation effect is neglected. The azimuth and elevation angles Azrs and Elrs of
the satellite direction from the receiver site can be derived from:

e rs, enu  E r e rs  (ee , en , eu )T

Az rs

(E.3.10)

 ATAN 2(ee , en )

(E.3.11)

Elrs  arcsin(eu )

(E.3.12)

140

RTKLIB ver. 2.4.2 Manual
where Er is the coordinates rotation matrix from ECEF to the local coordinates at the receiver position.
Refer E.2 for detailed formation of the matrix.

z (U)
Satellite

Receiver

El
Az

x (E)

y (N)

Figure E.3‐2 Local Coordinates and Azimuth and Elevation Angles

141

RTKLIB ver. 2.4.2 Manual

E.4

GNSS Satellite Ephemerides and Clocks

RTKLIB supports broadcast ephemerides and clocks for GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS.
It also supports the precise ephemerides and clocks provided as the SP3‐c [22] and clock RINEX [15] including
Galileo, QZSS and BeiDou for post processing modes. For real‐time modes, the broadcast ephemerides and
clocks corrected by the SBAS long‐term and fast corrections and the RTCM 3 SSR (state space
representation) corrections are also supported. The following equations show the ephemeris and clock
models used in RTKLIB.

(1) Broadcast ephemerides and clocks for GPS, Galileo and QZSS [1] [5] [6]
Broadcast ephemeris and SV clock parameters for GPS, Galileo and QZSS are given in navigation
messages as:

peph (toe , toc , IOD )  ( a , e, i0 ,  0 ,  , M 0 ,  n , I ,  , Cus , Cuc , C rs , C rc , Cis , Cic , af 0 , af1 , af 2 , TGD )T

(E.4.1)

By using these parameters, the satellite position (antenna phase center position) r s (t ) in ECEF, the
satellite clock bias dT s (t ) and clock drift dT s (t ) are computed as:

tk  t  toe

(E.4.2)

 

M  M 0   3  n  t k
 a




(E.4.3)

M  E  e sin E

(E.4.4)

1  e2 sin E
cos E  e



(E.4.5)

  arctan   

(E.4.6)

 u  Cus sin 2  Cuc cos 2

(E.4.7)

 r  Crs sin 2  Crc cos 2

(E.4.8)

 i  Cis sin 2  Cic cos 2

(E.4.9)

u    u

(E.4.10)

r  a (1  e cos E )   r
i  i   i  I t

(F.4.11)
(E.4.12)

  0  (  e ) tk  e toe

(E.4.13)

 cos u cos   sin u cos i sin  


r s (t )  r  cos u sin   sin u cos i cos  


sin u sin i



(E.4.14)

tc  t  toc

(E.4.15)

0

k

142

RTKLIB ver. 2.4.2 Manual

dT s (t )  af 0  af1tc  af 2tc 2 

2 
c2

e A sin E  bTGD

dT s (t )  af1  2 af 2tc

(E.4.16)
(E.4.17)

where:
 : earth gravitational constant ( 3.9860050  1014 m3/s2for GPS and QZSS, 3.986004418  1014 m3/s2

for Galileo)

e : earth angular velocity ( 7.2921151467  10-5 rad/s)
b  f12 / f i 2 for Li pseudorange

TGD : group delay parameters for GPS and QZSS, BGD for Galileo (s)

The Kepler equation (E.4.4) can be solved the following iteration by Newtonʹs method.

E0  M

(E.4.18)

Ei 1  Ei 

Ei  e sin Ei  M
1  e cos Ei

(E.4.19)

E  lim Ei

(E.4.20)

i 

The broadcast ephemerides and clock are applied in case that the processing option ʺSatellite
Ephemeris/Clockʺ to ʺBroadcastʺ as well as GLONASS, BeiDou and SBAS.
(2) Broadcast ephemerides and clocks for GLONASS [4]
Broadcast ephemeris and clock parameters for GLONASS are given in the navigation messages as:

peph (tb )  ( x, y, z , vx , v y , vz , a x , a y , a z , n ,  n )

(E.4.21)

The differential equations for the satellite position r s (t )  ( x, y, z )T and velocity v s (t )  (vx , v y , vz )T in
ECEF (PZ90.02) can be formed as:

dx
dy
dz
 vx ,
 vy ,
 vz
dt
dt
dt

5z 2
x 1  2

r



  e 2 x  2e v y  a x



(E.4.23)

a 2  5z 2
3
J 2 5e y  1  2

2
r
r



  e 2 y  2e v x  a y



(E.4.24)


  az



(E.4.25)

dv x
a 2
3

  3 x  J 2 5e
dt
2
r
r
dv y
dt




r

3

y

(E.4.22)

a 2
3
dv z

  3 z  J 2 5e
2
dt
r
r


5z 2
z3  2

r


where:

ae : earth semi‐major axis ( 6378136.0 m)
143

RTKLIB ver. 2.4.2 Manual
 : earth gravitational constant ( 398600.44  109 m3/s2)

e : earth angular velocity ( 7.292115  10-5 rad/s)
J 2 : second zonal harmonic of the geopotential ( 1082625.7  109 )
r

x2  y 2  z 2

Note that two errata in A.3.1.2 of GLONASS ICD 5.1 [4] has be corrected in the models above.

The satellite position r s (t ) and velocity v s (t ) at the time t can be derived by the RK4 (Runge‐Kutta
4th order and stage) numerical integration to solve these differential equations with the initial satellite
position r s (tb ) and velocity v s (tb ) at the reference time tb . For satellite clock bias dT s (t ) and drift

dT s (t ) at the epoch time t are also derived as:

dT s (t )   n   n (t  tb )

(E.4.26)

dT s (t )   n

(E.4.27)

The relativistic effect in the satellite clock are included in the GLONASS clock parameters. So the
relativistic correction is not applied in this case.

(3) Broadcast ephemerides and clocks for BeiDou [7]
For BeiDou satellites, the similar ephemeris and clock parameters as GPS, Galileo and QZSS are
provided in the navigation messages as:

peph (toe , toc )  ( a , e , i0 ,  0 ,  , M 0 ,  n , I ,  , Cus , Cuc , C rs , C rc , Cis , Cic , af 0 , af1 , af 2 , TGD )T

(E.4.28)

For MEO and IGSO satellites of BeiDou, the same formulations as (1) for GPS ephemeris and clock,
except for  = 3.986004418  1014 , e = 7.2921150  10-5 rad/s and the time t is expressed in BDT.

To obtain the satellite position r s (t ) of BeiDou GEO satellites at the time t in BDT, the equation
(E.5.13) and (E.5.14) should be replaced by:

  0   tk  e toe

(F.4.29)

 cos u cos   sin u cos i sin  


r s (t )  rRz (etk ) Rx (5)  cos u sin   sin u cos i cos  


sin u sin i



(E.4.30)

where:

144

RTKLIB ver. 2.4.2 Manual

0
1

Rx ( )   0 cos
 0  sin 


0 
 cos


sin   , Rz ( )    sin 

 0
cos 


sin 
cos 
0

0

0
1 

(4) Broadcast ephemerides and clocks for SBAS [8]
Navigation message parameters for SBAS GEO satellites are given in the SBAS messages (message
type 9) as:

peph (t0 )  ( x, y , z , vx , v y , v z , a x , a y , a z , aGF 0 , aGF 1 )

(E.4.31)

By using these parameters, the satellite position r s (t ) in ECEF and satellite clock bias dT s (t ) are
computed as:

 ax 
 x   vx 
1 
   
r (t )   y    v y  (t  t0 )   a y  (t  t0 ) 2
2 
z  
   vz 
 az 

(E.4.32)

dT s (t )  aGF 0  aGF 1 (t  t0 )

(E.4.33)

s

(5) SBAS orbit and clock corrections [8]
The SBAS orbit and clock corrections are defined as the following parameters.

Δsbas (t0 , IOD )  ( x ,  y ,  z ,  x ,  y ,  z ,  af 0 ,  af1 )

(E.4.38)

The IOD indicates the target broadcast ephemeris and clock parameters. The corrected satellite
position r s (t ) at time t is computed as:

  x    x 
   
r (t )  r broadcast (t )    y     y  (t  t0 )
  z    z 
   
s

s

(E.4.39)

where:
r s broadcast (t )

: satellite position at time t computed by the broadcast ephemeris with IOD (m)

The corrected satellite clock bias dT s (t ) at the time t is also computed with the SSR correction as:

dT s (t )  dT s broadcast (t )   af 0   af1 (t  t0 )

(E.4.40)

145

RTKLIB ver. 2.4.2 Manual
where:
dT s broadcast (t ) : satellite clock bias at time t computed by the broadcast clock with IOD .

The SBAS correction with broadcast ephemerides and clocks are applied in case that the processing
option ʺSatellite Ephemeris/Clockʺ to ʺBroadcast+SBASʺ.

(6) Precise ephemerides and clocks
The precise ephemerides for GPS, GLONASS, Galileo, QZSS and BeiDou are usually provided as SP3‐c
files containing satellite positions and velocities (optional) at every 15 min or 5 min epochs. To obtain
the satellite position at the time t , an appropriate interpolation is needed. RTKLIB uses the fixed
degree ( n  10 ) polynomial interpolation by Newton‐Nevilleʹs algorithm as:
Pj , j (t )  x j

p j ,k (t ) 

(tk  t ) p j ,k 1(t )  (t  t j ) p j 1,k (t )
tk  t j

(i  j  i  n)

(E.4.34)

(i  j  k  i  n)

(E.4.35)

where n is the degree of the polynomial for the interpolation and x(ti ), x(ti 1), x(ti  2 ),..., x(ti  n ) are the
ephemeris values for each components at the epochs ti , ti 1, ti  2 ,..., ti  n . For example, in the n  4 case,
the interpolated value x(t ) at the time t can be derived as:
pi ,i (t )  x(ti )
pi ,i 1 (t )
pi 1,i 1 (t )  x(ti 1 )

pi,i  2 (t )

pi 1,i  2 (t )
pi  2,i  2 (t )  x (ti  2 )

pi ,i 3 (t )

pi 1,i  2 (t )
pi  3,i  3 (t )  x(ti  3 )

pi ,4 (t )  x(t )

pi 1,i  3 (t )
pi 1,i  4 (t )
pi  2,i  4 (t )

pi  3,i  4 (t )
pi  4,i  4 (t )  x (ti  4 )

Note that precise ephemerides usually present the CoM (center of mass) positions of satellite not as the
antenna phase center position. So users should correct the satellite antenna phase center offset to use
the precise ephemerides. For details, refer Appendix E.8.

In spite of the precise ephemeris high‐order polynomial interpolation, a simple linear interpolation is
implemented for precise clocks provided as SP3‐c or clock RINEX files as:

146

RTKLIB ver. 2.4.2 Manual

dT s (t ) 

(ti 1  t )dT s (ti )  (t  ti )dT s (ti 1)
ti 1  ti

(ti  t  ti 1)

(E.4.36)

For the precise clocks provided by IGS (International GNSS service), the relativistic effect should be
corrected as: [68]

dT s (t ) 

(ti 1  t )dT s (ti )  (t  ti )dT s (ti 1)
r s (t )T v s (t )
2
ti 1  ti
c2

(E.4.37)

where r s (t ) and v s (t ) are the satellite position and velocity derived from the precise ephemerides.

The precise ephemerides and clocks are applied in case that the processing option ʺSatellite
Ephemeris/Clockʺ to ʺPreciseʺ.

(7) RTCM SSR orbit and clock corrections [18]
The RTCM SSR orbit and clock corrections are defined as the following parameters.
Δssr (t0 , IOD )  ( Oradial ,  Oalong ,  Ocross ,  O radial ,  O along ,  O cross , C0 , C1, C2 )

(E.4.41)

The IOD indicates the target broadcast ephemeris and clock parameters. The corrected satellite
position r s (t ) at time t is computed as:

ealong 

ecross 

v s broadcast (t )

(E.4.42)

v s broadcast (t )
r s broadcast (t )  v s broadcast (t )

(E.4.43)

r s broadcast (t )  v s broadcast (t )

eradial  ealong  ecross

(E.4.44)

  Oradial    O radial 


 
 O    Oalong     O along  (t  t0 )


 
  Ocross    O cross 

(E.4.43)





r s (t )  r sbroadcast (t )  eradial , ealong , ecross  O

(E.4.45)

where:
r s broadcast (t )

: satellite position at time t computed by the broadcast ephemeris with IOD (m)

v s broadcast (t )

: satellite velocity at time t computed by the broadcast ephemeris with IOD (m/s)

147

RTKLIB ver. 2.4.2 Manual
The satellite velocity v s broadcast (t ) is computed by the following differential approximation with

t  0.001 (s).

v sbroadcast (t ) 

r s broadcast (t  t )  r s broadcast (t )
t

(E.4.46)

The corrected satellite clock bias dT s (t ) at the time t is also computed with the SSR correction as:

 C  C0  C1 (t  t0 )  C2 (t  t0 ) 2
C
s
s
dT (t )  dT

broadcast (t ) 

(E.4.47)
(E.4.48)

C

where:
dT s broadcast (t ) : satellite clock bias at time t computed by the broadcast clock with IOD with the

following relativity correction.

trel  

2r s broadcast (t )T v s broadcast (t )

(E.4.49)

C2

The SSR corrections with broadcast ephemerides and clocks are applied in case that the processing
option ʺSatellite Ephemeris/Clockʺ to ʺBroadcast+SSR APCʺ or ʺBroadcast+SSR CoMʺ.

148

RTKLIB ver. 2.4.2 Manual

E.5

Troposphere and Ionosphere Models

RTKLIB supports the following troposphere and ionosphere models.

(1) Troposphere model
The standard atmosphere can be expressed as:
p  1013.25  (1  2.2557  105 h)5.2568

(E.5.1)

3

T  15.0  6.5  10 h  273.15

(E.5.2)

17.15T  4684.0  hrel
e  6.108  exp 

 T  38.45  100

(E.5.3)

where p is the total pressure (hPa), T is the absolute temperature (K) of the air, h is the geodetic
height above MSL (mean sea level), e is the partial pressure (hPa) of water vapor and hrel is the
relative humidity. The tropospheric delay Trs is expressed by the Saastamoinen model with p , T and

e derived from the standard atmosphere.

Trs 


0.002277 
 1255

 0.05  e  tan 2 z 
p  
cos z 
 T



(E.5.4)

where z is the zenith angle (rad) as z   / 2  Elrs .

The standard atmosphere and the Saastamoinen model are applied in case that the processing option
ʺTroposphere Correctionʺ is set to ʺSaastamoinenʺ, where the geodetic height is approximated by the
ellipsoidal height and the relative humidity is fixed to 70 %.

(2) SBAS troposphere model
If the processing option ʺTroposphere correctionʺ is set to ʺSBASʺ, the SBAS troposphere models
defined in the SBAS receiver specifications are applied. The model often called as ʺMOPS modelʺ. Refer
[8] A.4.2.4 for details.

(3) Precise troposphere model
If the processing option ʺTroposphere Correctionʺ is set to ʺEstimate ZTDʺ or ʺEstimate ZTD+Gradʺ, a
more precise troposphere model is applied with strict mapping functions as:

149

RTKLIB ver. 2.4.2 Manual
m( Elrs )  mW ( Elrs ) 1  cot Elrs (GN , r cos Azrs  GE , r sin Azrs )

(E.5.5)

Trs  mH ( Elrs ) Z H , r  m( Elrs )( ZT , r  Z H , r )

(E.5.6)

where:
ZT , r

: tropospheric zenith total delay (m)

Z H ,r

: tropospheric zenith hydro‐static delay (m)

m H ( El )

: hydro‐static mapping function

mW ( El )

: wet mapping function

In RTKLIB, the tropospheric zenith hydro‐static delay is given by Saastamoinen model (E.5.4) with the
zenith angle z  0 and relative humidity hrel  0 . For the mapping function, RTKLIB employs NMF
(Niell mapping function) [70] as default. The zenith total delay Z T , r and the gradient parameters GN , r ,
GH , r (in the case of ʺEstimate ZTD+Gradʺ) are estimated as unknown parameters in the parameter

estimation process. For the mapping function, RTKLIB can uses GMF [71] by setting the compiler option
‐DIERS_MODEL since ver. 2.4.2.

(4) Broadcast ionosphere model
For ionosphere correction for single frequency GNSS users, GPS and QZSS navigation data include the
following broadcast ionospheric parameters.

pion  ( 0 ,1, 2 , 3 ,  0 , 1,  2 , 3 )T

(E.5.5)

By using these ionospheric parameters, the L1 ionospheric delay I rs (m) can be derived the following
procedure [1]. The model is often called as Klobuchar model.

  0.0137 / ( El  0.11)  0.022
i     cos Az
i     sin Az / cosi
m  i  0.064cos(i  1.617)

(E.5.6)
(E.5.7)
(E.5.8)
(E.5.9)

t  4.32  10 4 i  t

(E.5.10)

F  1.0  16.0  (0.53  El )3
x  2 (t  50400) /

(E.5.11)

3

 nmn

(E.5.12)

n 0


F  5  109
( x  1.57)

s
4

Ir  

x2 x4  
n
9

  ( x  1.57)
 F   5  10   nm  1 
2 24  
n 1







150

(E.5.13)

RTKLIB ver. 2.4.2 Manual
Corrections by the broadcast ionosphere model are applied if the processing option ʺIonosphere
Correctionʺ is set to ʺBroadcastʺ or ʺQZSS Broadcastʺ.

(5) SBAS ionosphere model
SBAS corrections for ionospheric delay is provided by the message type 18 (ionospheric grid point
masks) and the message type 26 (ionospheric delay corrections). RTKLIB uses the SBAS ionospheric
correction if the processing option ʺIonosphere Correctionʺ is set to ʺSBASʺ and these SBAS messages
are provided in an input file. For the algorithms for the model and the definition of IGPs (ionospheric
grid points), refer A.4.4.9 and A.4.4.10 of the SBAS receiver specifications [8].

(6) Single layer model
The ionosphere is often modeled as a simple single layer model shown in Figure E.5‐1. The single layer
model is also called as a thin‐shell model.

Satellite

Ionospheric
Pierce Point
zʹ
z

H

Ionosphere
Receiver

Earth
RE



Figure E.5‐1 Single Layer Ionosphere Model

In the model, the latitude IPP (rad) and the longitude IPP (rad) of the IPP (ionospheric pierce
point) can be derived from:
z   / 2  Elrs

(E.5.14)

 RE

z '  arcsin 
sin z 
 RE  H


(E.5.15)

  z  z'

(E.5.16)

IPP  arcsin(cos  sin r  sin  cos r cos Azrs )

(E.5.17)

151

RTKLIB ver. 2.4.2 Manual

(r  70 and tan  cos Azrs  tan( / 2  r )) or (r  70 and  tan  cos Azrs  tan( / 2  r ))

IPP  r    arcsin

sin  sin Azrs
cos IPP

(E.5.18a)

(otherwise)

IPP  r  arcsin

sin  sin Azrs
cos IPP

(E.5.18b)

where RE is the radius of the earth (m) and H is the height of the ionosphere shell (m). RTKLIB
usually uses the values RE  6378137 and H  350000 . Note that the earth surface or the ionosphere
shell are approximated as a sphere in this model.

If the VTEC (vertical total electron content) value TEC (t , IPP , IPP ) at the IPPP and the time t is given,
the Li ionospheric delay I rs,i (m) can be expressed as:

I rs,i 

1 40.3  1016
TEC (t ,IPP , IPP )
cos z '
fi

(E.5.19)

where fi is the carrier frequency of signals (Hz).

The VTEC values are provided in several formats or equations. RTKLIB currently only supports the
VTEC values provided by the IONEX format [24]. In the IONEX format, the VTEC are expressed as the
point values in a latitude and longitude grid. RTKLIB interpolates these grid point values in the IONEX
data to an appropriate IPP position by a simple bi‐linear interpolation. These VTEC values are
provided at every epoch time intervals in the IONEX file. The time interpolation should also be applied
in the sun‐fixed coordinates as:

TEC (t , IPP , IPP ) 

(t  ti )TEC (ti ,IPP , IPP   (t  ti ))  (ti 1  t )TEC (ti 1, IPP , IPP   (t  ti 1 ))
ti 1  ti

(E.5.20)

where ti and ti 1 (ti  t  ti 1 ) are the time for the provided TEC data and   2 / 86400 is the
rotation velocity of the sun to the earth. Correction by the single layer model with IONEX data is
applied if the processing option ʺIonosphere Correctionʺ is set to ʺIONEX TECʺ and IONEX data are
provided as input files only in the post‐processing mode.

(7) Ionosphere‐free LC (linear combination)

152

RTKLIB ver. 2.4.2 Manual
To eliminate the ionosphere effects in the GNSS signal measurements, a LC (linear combination) of
dual‐frequency measurements is often utilized in GNSS data processing. The ionosphere‐free LC of Li
and L j pseudorange and phase‐range are expressed as:

Prs, LC  Ci Prs,i  C j Prs, j

(E.5.21)

 rs, LC

(E.5.22)

 Ci rs,i

 C j rs, j

where Ci and C j are the coefficients of the ionosphere free LC. The Ci and C j are derived from:

Ci 

Cj 

fi 2

(E.5.23)

fi 2  f j 2

 f j2
fi  f j 2
2

(E.5.24)

where fi and f j are the frequencies (Hz) of Li and L j measurements. Current version RTKLIB
always uses L1 and L2 for GPS, GLONASS and QZSS, L1 and L5 for Galileo for the ionosphere‐free
LC. If setting the processing option ʺIonosphere Correctionʺ to ʺIono‐Free LCʺ in the Single or PPP
modes, the ionosphere‐free LC is used for basic measurements to eliminate the ionosphere term. Note
that the ionosphere‐free LC model is not applied for the Kinematic, Static or Moving‐base modes. Refer
the E.7 (6) for details.

153

RTKLIB ver. 2.4.2 Manual

E.6

Single Point Positioning

RTKLIB employs an iterated weighted LSE (least square estimation) for the ʺSingleʺ (single point
positioning) mode with or without SBAS corrections.

(1) Linear LSE
Assume a measurement vector y are given and it can be modeled as the following linear equations of
an unknown parameter vector x and a random measurement error vector v .

y  Hx  v

(E.6.1)

The least square cost function J LS is defined as the sum of the squared measurement errors as:

J LS  v12  v2 2  ...  vm 2  v T v

(E.6.2)

By using (E.6.1) and (E.6.2), the cost function can be rewritten as:

J LS  ( y  Hx )T ( y  Hx )

(E.6.3)

 y T y  y T Hx  x T H T y  x T H T Hx

To minimize the cost function, the gradient of J LS should be zero. Then

J LS
 0T  yT H  ( H T y )T  ( H T Hx )T  xT H T H
x

(E.6.4)

 2 yT H  2 xT H T H  0

It gives so called a ʺnormal equationʺ as:

H T Hx  H T y

(E.6.5)

To solve the normal equation, we can get the estimated unknown parameter vector x̂ by the LSE as:

xˆ  ( H T H ) 1 H T y

(E.6.6)

If the weights of each measurements are given, the cost function (E.6.3) can be rewritten by using a

154

RTKLIB ver. 2.4.2 Manual
weight matrix W .

JWLS  v T Wv

(E.6.7)

To minimize the cost function JWLS , we can obtain the estimated unknown parameter vector by the
weighted LSE by the similar way for the simple LSE as:

xˆ  ( H T WH ) 1 H T Wy

(E.6.8)

The weight matrix W for the weighted LSE is often given as:

W  diag ( 12 , 2 2 ,..., m 2 )

where  i is the a‐priori standard deviation of the i‐th measurement error.

(2) Gauss‐Newton iteration for non‐linear LSE
In case that the measurements are not given as linear models, the measurement equations can be
written by a general non‐linear vector function as:

y  h( x )  v

(E.6.9)

where h( x ) is a measurement vector function of a parameters vector x . The equation can be extended
by using Taylor series around an initial parameter vector x0 as:

h( x )  h( x 0 )  H ( x  x 0 )  ..

(E.6.10)

x  x0
:
where H is a partial derivatives matrix of h( x ) with respect to x at

H

h( x )
x

x  x0

(E.6.11)

Assume the initial parameters are adequately near the true values and the second and further terms of
the Taylor series can be neglected. We can approximate (E.6.9) as:
y  h( x0 )  H ( x  x0 )  v

(E.6.12)

155

RTKLIB ver. 2.4.2 Manual
Then we can obtain the following linear equation.
y  h( x0 )  H ( x  x0 )  v

(E.6.13)

By applying linear weighted LSE (E.6.8) for (E.6.13), we can get the normal equation for non‐linear
weighted LSE:

H T WH ( xˆ  x0 )  H T W ( y  h( x0 ))

(E.6.14)

So we can obtain the estimated unknown parameter vector x̂ by:

xˆ  x0  ( H T WH ) 1 H T W ( y  h( x0 ))

If the initial parameters

x0

(E.6.15)

are not enough near the true values, we can iteratively improve the

estimated parameters like:

xˆ 0  x0

(E.6.16)

xˆ i 1  xˆ i  ( H T WH ) 1 H T W ( y  h( xˆ i ))

(E.6.17)

If the iteration is converged, we can obtain the final estimated parameters as:

xˆ  lim xˆ i
i

(E.6.18)

The iterated LSE is often called as Gauss‐Newton method. Note that such the iterations are not always
converged by the simple Gauss‐Newton method especially for ill‐conditioned measurement equations
having large non‐linearity. In these cases, we should employ another strategy for such non‐linear LSE.
The most popular way for the non‐linear LSE is LM (Levenberg‐Marquardt) method [69].

(3) Estimation of receiver position and clock bias
For ʺSingleʺ mode as ʺPositioning Modeʺ, the following single‐point positioning procedure is applied
to obtain the final solution by epoch‐by‐epoch basis. For an epoch time, the unknown parameters
vector x is defined as:

156

RTKLIB ver. 2.4.2 Manual

x  ( rr T , cdtr )T

(E.6.19)

The pseudorange measurement vector y can be given as:

y  ( Pr1 , Pr2 , Pr3 ,..., Prm )T

(E.6.20)

where Prs is the pseudorange measurement. If the processing option ʺIonosphere Correctionʺ set to
ʺIono‐Free LCʺ, the ionosphere‐free LC (linear combination) pseudorange defined in Appendix E.5 (7)
is used. In other cases, just the L1 pseudorange is used.

s2

s3

s1

sm

r
Figure E.6‐1 Satellite Geometry for Single Point Positioning

The measurement equation and its partial derivative matrix for the single point positioning are formed
as:

 1r  cdtr  cdT 1  I 1r  Tr1 
 e1r T



  r2  cdtr  cdT 2  I r2  Tr2 
 er2T



h( x )    3  cdt  cdT 3  I 3  T s 3  H   e 3T
r
r
r
r
r








 m
 mT
m
m
m





cdt
cdT
I
T
r
r
r 
 r
  er

1

1

1



1

(F.6.21)

where the geometric range  rs and LOS vector ers are given by E.3 (4) and E.3 (5) with the satellite and
receiver positions. The satellite positions r s and the clock biases dT s are also derived from the GNSS
satellite ephemerides and clocks described in E.4 according to the processing option ʺSatellite
Ephemeris/Clockʺ.

157

RTKLIB ver. 2.4.2 Manual
To solve the measurement equation to obtain the final estimated receiver position and the receiver
clock bias, RTKLIB employs the iterated weighted LSE as:

xˆ i 1  xˆ i  ( H T WH ) 1 H T W ( y  h( xˆ i ))

(E.6.22)

For the initial parameter vector x0 for the iterated weighted LSE, just all 0 are used for the first epoch
of the single point positioning. Once a solution obtained, the position is used for the next epoch initial
receiver position. For the weight matrix W , RTKLIB uses the following formulas
W  diag ( 12 , 2 2 ,..., m 2 )



(E.6.23)



 2  F s Rr a 2  b 2 / sin Elrs   eph 2   ion 2   trop 2   bias 2

(E.6.24)

where:
Fs

: satellite system error factor
(1:GPS, Galileo, QZSS and BeiDou, 1.5: GLONASS, 3.0: SBAS)

Rr

: code/carrier‐phase error ratio

a , b

: carrier‐phase error factor a and b (m)

 eph

: standard deviation of ephemeris and clock error (m)

 ion

: standard deviation of ionosphere correction model error (m)

 trop

: standard deviation of troposphere correction model error (m)

 bias

: standard deviation of code bias error (m)

For the standard deviation of ephemeris and clock error, URA (user range accuracy) or similar
indicators are used in RTKLIB. By several iterations, the solution is converged in the normal case and
the estimated receiver position rˆr and the receiver clock bias dtˆr are obtained.

ˆ )T
xˆ  lim xˆ i  ( rˆrT , cdt
r

(E.6.25)

i 

The estimated receiver clock bias dtˆr is not explicitly output to the solution file. Instead, it is
incorporated in the solution time‐tag. That means the solution time‐tag indicates not the receiver
time‐tag but the true signal reception time measured in GPST.

(4) Estimation of receiver velocity and clock‐drift
If Doppler frequency measurements of GNSS signals are given, receiver velocities and clock‐drifts can
be estimated the following procedure. For an epoch time, the unknown parameters vector x for the
158

RTKLIB ver. 2.4.2 Manual
velocity estimation is defined as:

x  (v r T , cdtr )T

(E.6.26)

where vr and dtr are the receiver velocity in ECEF (m/s) and the receiver clock‐drift (s/s), respectively.
The range‐rate measurement vector y can be given as:

y  (  i D1r ,i ,  i Dr2,i ,  i Dr3,i ,...,  i Drm,i )T

(E.6.27)

where Drs,i is the Li Doppler frequency measurement of the satellite s . RTKLIB always uses L1
Doppler frequency measurements. These measurement equations and its partial derivative matrix are
formed as:

 rr1  cdtr

 rr2  cdtr

h( x )   r 3  cdt
r
r



 m

 rr  cdtr

 e1r T
 cdT 1 


 er2T
 cdT 2 


 cdT 3  H   er3T



 
 mT
m

 cdT 
 er

1

1

1



1

(F.6.28)

The range‐rage rrs between the receiver and the satellite in these equations is derived from:





rrs  ersT v s (t s )  v r 

e
c

v x

s
y r

 y s v x, r  v xs yr  x s v y , r



(F.6.29)

where v s  (vxs , v sy , vzs )T and vr  (vx, r , v y , r , vz , r )T . By using the iterated LSE similar to the estimation of
the receiver position, we can obtain the receiver velocity and clock‐drift as:

ˆ  )T
xˆ  lim xˆ i  (vr T , cdt
r

(E.6.30)

i 

where the weight matrix W is set to I (non‐weighted LSE).

(5) Solution validation and RAIM FDE
The estimated receiver positions described in (3) might include invalid solutions due to unmodeled
measurement errors. To test whether the valid solution or not and reject the invalid solutions, RTKLIB
applies the following validation after obtaining the receiver position estimated. If the validation failed,

159

RTKLIB ver. 2.4.2 Manual
the solution is rejected with warning messages.

vs 

P

s
r

ˆ  cdT s  I s  T s )
 ( ˆ rs  cdt
r
r
r



(E.6.31)

s

v  (v1, v2 , v3 ,..., vm )T

(E.6.32)

T

v v
 2 (m  n  1)
m  n 1
GDOP  GDOPthres

(E.6.33)
(E.6.34)

where n is the number of estimated parameters and m is the number of measurements. 2 (n) is
chi‐square distribution of the degree of freedom n and   0.001 (0.1%). GDOP is geometric DOP
(dilution of precision). GDOPthres can be set as the processing option ʺReject Threshold of GDOPʺ.

In addition to the solution validation described above, RAIM (receiver autonomous integrity
monitoring) FDE (fault detection and exclusion) function is added in ver.2.4.2. If the processing option
ʺRAIM FDEʺ is enabled and the chi‐squared test by (E.6.33) is failed, RTKLIB retries the estimation by
excluding one by one of the visible satellites. After all of retries, the estimated receiver position with
the minimum normalized squared residuals vT v is selected as the final solution. In such scheme, an
invalid measurement, which might be due to satellite malfunction, receiver fault or large multipath, is
excluded as an outlier. Note that this feature does not effective with two or more invalid measurements.
It also needs two redundant visible satellites, that means at least 6 visible satellites are necessary to
obtain the final solution.

160

RTKLIB ver. 2.4.2 Manual

E.7

Kinematic, Static and Moving-Baseline

RTKLIB employs EKF (extended Kalman filter) in order to obtain the final solutions in DGPS/DGNSS, Static,
Kinematic and Moving‐baseline modes in conjunction with the GNSS signal measurement models in
Appendix E.3 and the troposphere and ionosphere models in Appendix E.5.

(1) EKF formulation [65]
By using EKF, a state vector x for unknown model parameters and its covariance matrix P can be
estimated with a measurement vector y k at an epoch tk by:
xˆ k (  )  xˆ k ( )  K k ( yk  h( xˆ k ( )))

(E.7.1)

Pk (  )  ( I  K k H ( xˆ k ( ))) Pk ( )

(E.7.2)

Κ k  Pk ( ) H ( xˆ k ( ))( H ( xˆ k ( )) Pk ( ) H ( xˆ k ())  Rk )
T

1

(E.7.3)

where xˆ k and Pk are the estimated state vector and its covariance matrix at the epoch time tk . (  )
and (  ) indicates before and after measurement update of EKF. h (x ) , H (x ) and Rk are the
measurements model vector, the matrix of partial derivatives and the covariance matrix of
measurement errors, respectively. Assuming the system‐model linear, the time update of the state
vector and its covariance matrix for EKF is expressed as:
xˆ k 1 (  )  Fkk 1 xˆ k (  )

Pk 1 ( ) 

Fkk 1Pk ( ) Fkk 1T

(E.7.4)
 Qkk 1

(E.7.5)

where Fkk 1 and Q kk 1 are the transition matrix and the covariance matrix of the system noise from
epoch time tk to t k 1 .

(2) DD (double‐difference) measurement model for short baseline
For carrier‐based relative positioning with a short length (< 10 km) baseline between the rover r and
the base‐station b , the following DD measurement equations are generally used for the Li
phase‐range and pseudorange. In these equations, the satellite and receiver clock biases, and the
ionospheric and tropospheric effects and other minor correction terms are almost eliminated by using
DD technique.

k
s
 rbjk,i   rbjk  i ( Brbj ,i  Brb
,i )  d r ,i  

(E.7.6)

Prbjk,i   rbjk   P

161

RTKLIB ver. 2.4.2 Manual

Satellite j

bj

bk

rj
Receiver r

Satellite k

rk

Baseline

Receiver b

Figure E.7‐1 DD (double‐difference) Formulation

where the d rs,i is the carrier‐phase correction terms, which can be neglected in the short‐baseline case
except for the receiver PCV terms with different antennas. To obtain the geometric range  rs in the
equation, the base‐station position rb is fixed to predetermined values except for the moving‐baseline
case.

Note that the SD between receivers had better to be made between the measurements with the same
epoch time. However, the receivers are not perfectly synchronized due to the different receiver clock
biases. In some typical cases, the sampling interval of the rover is different from the base station like 10
Hz and 1 Hz. To control the SD, RTKLIB takes a simple criterion to select a measurement pair. RTKLIB
simply selects the last measurement before or equal to the epoch time of the rover measurement. The
epoch time difference between the rover and the base station is sometimes called as ʺAge of
Differentialʺ. As the time difference grows, the accuracy of the solution is gradually degraded due to
the satellite clock drift and the variation of ionosphere delay. To compensate only the satellite clock
drift, RTKLIB corrects the SD measurement by using broadcast SV clock parameters. The maximum
ʺAge of Differentialʺ is set as the processing option ʺMAX Age of Diffʺ.

As to the satellite‐side SD generation, RTKLIB selects a reference satellite with the maximum elevation
angle on the epoch‐by‐epoch basis. Note that no satellite‐side SD is generated between satellites of
different navigation systems like between GPS and GLONASS. It is because that the receiver usually
has different group delays for the signal of different navigation system even if they have the same
carrier frequency . The group delay difference in receivers is called as a receiver ISB (inter system bias).

Assuming the use of triple‐frequency GPS/GNSS receivers for both of the rover and the base‐station,
the unknown state vector x to be estimated can be defined as:

162

RTKLIB ver. 2.4.2 Manual
x  ( rr T , v r T , B1T , B2T , B5T )T

(E.7.7)

2
m T
where Bi  ( B1rb ,i , Brb
,i ,..., Brb ,i ) is Li SD (single‐difference) carrier‐phase biases (cycle). As the RTKLIB

implementation, it internally uses SD carrier‐phase biases instead of DD to avoid bothersome
hand‐over handling of reference satellites. The SD biases also assist to resolve integer ambiguities in
GLONASS FDMA signals.

The measurement vector y is also defined with DD phase‐range and pseudorange measurements as:

y  (Φ1,T , Φ 2,T , Φ5,T , P1T , P2T , P5T )T

(E.7.8)

where:
12
13
14
1m T
Φi  ( rb
,i , rb ,i , rb ,i ,..., rb ,i )
12
13
14
1m T
Pi  ( Prb
,i , Prb ,i , Prb ,i ,..., Prb ,i )

(3) Measurement update of EKF for short baseline
By using the equation (E.7.6), the measurement model vector h(x ) , the matrix of partial derivatives

H (x ) and the covariance matrix of measurement errors R can be written as:

h( x )  ( h ,1T , h ,2T , h ,5T , hP ,1T , hP ,2T , hP ,5T )T

H ( x) 

h( x )
x

 DR ,1DT




R






x  xˆ

  DE

  DE
  DE

  DE
  DE

  DE


(E.7.9)

0 1D
0
0 

0
0
2 D 0 
0
0
0
5 D 

0
0
0
0 
0
0
0
0 

0
0
0
0 

(E.7.10)

DR ,2 DT
DR ,5 DT
DRP,1DT
DRP,2 DT

where:
2 
  12
  12

)
 i ( B1rb  Brb
 rb

 rb 
13
1
3
13
   i ( Brb  Brb ) 
 
h ,i   rb
 , hP ,i   rb 



  
 1m
 1m 
1
m 
  rb  i ( Brb  Brb ) 
  rb 

163










T 
DRP,5 D 

(E.7.11)

RTKLIB ver. 2.4.2 Manual

 1 1 0

1 0 1
D
 


1
0
0


 0

 0
: SD (single‐differencing) matrix
  

 1 

E  (e 1r , e r2 ,..., e rm ) T
1 2
2 2
m 2
R ,i  diag(2 
,i , 2  ,i ,..., 2  ,i )

RP ,i  diag(2 1P ,i 2 , 2 P2 ,i 2 ,..., 2 Pm,i 2 )

 s , i : standard deviation of Li phase‐range measurement error (m)
 Ps ,i : standard deviation of Li pseudorange measurement error (m)

By solving the EKF formulas (E.7.1) with these equations, the estimated rover antenna position,
velocity and float SD carrier‐phase biases the epoch time tk are obtained.

(4) Time update of EKF
For the kinematic positioning mode with receiver dynamics (Positioning Mode = Kinematic and REC
Dynamics = ON) in RTKLIB, the time update of EKF (E.7.2) is expressed with:

 I33

Fkk 1  



I33 r
I33


 033
 k 1 
Q
Qv

, k



I (3m 3)(3m 3) 





0(3m 3)(3m 3) 

(E.7.12)

where:
Qv  E r T diag( ve 2 r ,  vn 2 r ,  vu 2 r ) E r

and  r  t k 1  t k is GPS/GNSS receiver sampling interval (s), ( ve , vn , vu ) are the standard deviations
of east, north and up components of the rover velocity system noises (m/s/ s ).

For the pure kinematic mode without receiver dynamics (Positioning Mode = Kinematic and REC
Dynamics = OFF), equations (E.7.9) is be replaced by:

Fkk 1

 I33





I33


 33

 k 1 

033
 , Qk  



I (3m 3)(3m 3) 
0
(3m 3)(3m 3) 


(E.7.13)

To avoid numerical instability by adding infinite process noises to the variances of the receiver position,
the receiver position states are instead reset to the initial guess values at every epochs and adequately

164

RTKLIB ver. 2.4.2 Manual
large process noises (104 m 2) are added to the variance in RTKLIB. The initial position is derived from
the single point positioning process which is used to avoid the iteration for non‐linear signal
measurement model.

In the static mode (Positioning Mode = Static), equations (F.7.10) is simply replaced by:

Fkk 1

 I33





I33


 033

 k 1 

033
 , Qk  



I (3m 3)(3m 3) 
0
(3m 3)(3m 3) 


(E.7.14)

In the instantaneous ambiguity resolution mode (Integer Ambiguity Resolution = Instantaneous), the
time update of the SD carrier‐phase biases Bi are handled in a little different way from described
above. In this mode, values of the carrier‐phase bias states are not succeeded to the next epoch by the
EKF time update. The biases are reset to the initial guess values at every epochs and adequately large
process noises (104 m2) are added to the variance. If a cycle‐slip is detected in the measurement data,
the state of corresponding SD carrier‐phase bias is also reset to initial value. RTKLIB detects the
cycle‐slips by LLI (loss of lock indicator) in the input measurement data and geometry‐free LC (linear
combination) phase jumps if the dual frequency measurements are available. The cycle‐slip threshold
can be changed by the processing option ʺSlip Thresʺ.

(5) Integer ambiguity resolution
Once the estimated states obtained in the EKF measurement update, the float carrier‐phase ambiguities
can be resolved into integer values in order to improve accuracy and convergence time (Integer
Ambiguity Res = Continuous, Instantaneous or Fix and Hold). At first, the estimated states and their
covariance matrix are transformed to DD forms by:

xˆ 'k  G xˆ k (  )  ( rˆr T , vˆr T , Nˆ T )T

(E.7.15)

Q
P 'k  GPk ()GT   R
 QRN

(E.7.16)

QNR 

QN 

where:

 I 66

G 




D
D




 : SD to DD transformation matrix

D 

165

RTKLIB ver. 2.4.2 Manual
In this transformation, the SD carrier‐phase biases are transferred to the DD carrier‐phase form in
order to eliminate receiver initial phase terms to obtain integer ambiguities N̂ and their covariance

QN . In these formulas, the most appropriate integer vector N for the integer ambiguities is obtained
by solving an ILS (integer least square) problem expressed as:


N  argmin (( N  Nˆ )T QN 1( N  Nˆ ))

(E.7.17)

N Z

To solve the ILS problem, a well‐known efficient search strategy LAMBDA

[66]

and its extension

MLAMBDA [67] are employed in RTKLIB. LAMBDA and MLAMBDA offer the combination of a linear
transformation to shrink the integer vector search space and a skillful tree‐search procedure in the
transformed space. The integer vector solution by these procedures is validated by the following
simple ʺRatio‐Testʺ. In the ʺRatio‐Testʺ, the ratio‐factor R , defined as the ratio of the weighted sum of


the squared residuals by the second best solution N 2 to one by the best N , is used to check the
reliability of the solution. The validation threshold Rthres can be set by the processing option ʺMin
Ratio to Fix Ambiguityʺ. Current version RTKLIB just only supports a fixed threshold value.

R



( N 2  Nˆ )T QN 1( N 2  Nˆ )
 Rthres


( N  Nˆ )T Q 1( N  Nˆ )

(E.7.18)

N



After the validation, the ʺFIXEDʺ solution of the rover antenna position and velocity rr and v r are
obtained by solving the following equation. If the validation failed, RTKLIB outputs the ʺFLOATʺ
solution rˆr and vˆr instead.



 rr   rˆr 
1
     ˆ   QRN QN ( Nˆ  N )
 vr   vr 

(E.7.19)

In case the processing option is set as the ʺFix and Holdʺ mode (Integer Ambiguity Resolution = Fix
and Hold) and the fixed solution properly validated by the previous test, the DD carrier‐phase bias
parameters are tightly constraint to the fixed integer values. For these purpose, RTKLIB inputs the
following ʺpseudoʺ measurements to EKF and updates EKF by (F.7.1).

yN
h( x )  G x

(E.7.20)

H ( x)  G

(E.7.22)

R  diag ( c 2 ,  c 2 ,  c 2 ,...)

(E.7.23)

(E.7.21)

166

RTKLIB ver. 2.4.2 Manual

where:
0

G  0
0


D
D



 : SD to DD transformation matrix
D 

 c : constraint to fixed integer ambiguities (= 0.001 cycle).

The ʺFix and Holdʺ mode was firstly introduced in RTKLIB ver. 2.4.0 in order to improve the fixing
ratio especially in the kinematic mode to tracking moving receivers.

(6) Long baseline DD measurement model
For the long baseline processing between the rover r and the base station b , the following DD
measurement equations can be formed similar to the short baseline DD model.

 rbjk, i   rbjk  I rbjk, k  Trbjk  i ( Brbj , i  Brbk ,i )  d rs,i  
Prbjk,i   rbjk  I rbjk,i  Trbjk   P

(E.7.24)

s
s
where the terms I r , i and Tr as the Li ionosphere delay (m) and troposphere delay (m) are added to

the short baseline DD model. Precise ephemerides for satellite positions should be used to mitigate the
broadcast ephemeris error for the baseline over 100 km. In the carrier phase correction terms d rs,i , the
earth tides effects should be taken account for the longer baseline than 500 km. To eliminate the
ionosphere terms, an ionosphere‐free LC (linear combination) is sometimes formed. However, RTKLIB
does not use such explicit LC but does directly estimate the ionosphere terms with dual or triple
frequency measurements by EKF for baseline processing.

The unknown state vector x for the long baseline case can also be settled as:

x  (rr T , v r T , Z r , GN , r , GE , r , Z b , GN ,b , GE ,b , I T , B1T , B2T , B5T )T

(E.7.25)

where Z r and Z b are ZTD (zenith total delay) at the rover and base‐station sites, GN , r , GE , r , GN ,b
1
2
m T
and GE ,b are the north and east components of tropospheric gradients. I  ( I rb , I rb ,..., I rb ) is the SD

vertical ionospheric delay in L1 frequency (m) as well.

The measurement model vector h(x ) and the matrix of partial derivatives H (x) can be written as:

h( x )  ( h ,1T , h ,2T , h ,5T , hP ,1T , hP ,2T , hP ,5T )T

(E.7.26)

167

RTKLIB ver. 2.4.2 Manual

h ,i

12
  rb
 Trb12   k (m1I I rb1  mI2 I rb2 )  i ( Brb1 ,i  Brb2 ,i )  d rb12.i 
 13

  Trb13   k (m1I I rb1  mI3 I rb3 )  i ( Brb1 ,i  Brb3 ,i )  d rb13.i 
  rb


 1m

   T 1m   (m1 I 1  m m I m )   ( B1  B m )  d 1m 
rb
k
I rb
I rb
i
rb , i
rb , i
rb .i 
 rb

  rb12  Trb12   k (m1I I rb1  mI2 I rb2 ) 
 13

  Trb13   k (m1I I rb1  mI3 I rb3 ) 
hP ,i   rb



 1m

1m
1 1
m m 
  rb  Trb   k (mI I rb  mI I rb ) 
  DE 0 DMT , r DMT ,b

  DE 0 DMT , r DMT ,b
  DE 0 DMT , r DMT ,b
H ( x)  
  DE 0 DMT , r DMT ,b
  DE 0 DM
DMT ,b
T ,r

  DE 0 DM
DMT ,b
T ,r


(E.7.27)

(E.7.28)

 1 DM I
 2 DM I
 5 DM I
 1 DM I
 2 DM I
 5 DM I

1D
2 D




5 D 







(E.7.29)

where:

 k  k2 / 12
MT ,r

1
1
 mWG
mW1 , r ( Elr1 ) cot Elr1 cos Az1r
, r ( Elr )
 2
2
m ( El ) mW2 , r ( Elr2 )cot Elr2 cos Azr2
  WG , r r


 m
 m ( El m ) m m ( El m ) cot El m cos Az m
W ,r
r
r
r
 WG , r r

mW1 , r ( Elr1 )cot Elr1 sin Az1r 

mW2 , r ( Elr2 )cot Elr2 sin Azr2 



m
m
m
m
mW , r ( Elr ) cot Elr sin Azr 

MI  (m1I , mI2 ,..., mIm )T

The time update of EKF for the long‐baseline case is expressed as:

 I 33


Fkk 1  





I 33 r
I 33

 033

Qv

k 1 
Qk 





I 66
I mm

QT
QI







I (3m 3)(3m 3) 







0(3m 3)(3m 3) 

(E.7.30)

(E.7.31)

where QT and QI are the process noise covariance matrixes of the ionosphere and the troposphere
terms. In the equation, the ZTD and gradient parameters for the rover and the base‐station and SD
vertical ionospheric delays for each satellites are simply modeled as random‐walk. In addition to
estimate ionosphere and troposphere terms, a ʺPartial fixingʺ feature was added for long baseline
processing in version 2.4.1. It means that only the some partial portion of all ambiguities are resolved
into integer values. Other ambiguities except for the fixed are still pending as float values. To

168

RTKLIB ver. 2.4.2 Manual
determine whether a ambiguity fixed or not fixed, a simple criterion by using the satellite elevation
angle is implemented in RTKLIB. If a satellite is under a threshold of the elevation, the ambiguities of
the satellite are not fixed. Only the ambiguities of satellites over the threshold are resolved to integer.
The elevation threshold for the ambiguity resolution can be set as the processing option ʺMin Elevation
to Fix Ambʺ as well as ʺMin Elevation to Hold Ambʺ to control the ʺFix and Holdʺ feature.

(7) Moving‐baseline model
The moving baseline mode is usually used if both of the rover and the base station receivers are
moving and the only relative position of the rover with respect to the base station is required. The
moving‐ baseline mode can be utilized to determine the precise attitude by mounting two antennas to
a moving platform. In RTKLIB, the moving‐baseline mode is applied if the processing option
ʺPositioning Modeʺ is set to ʺMoving‐Baseʺ.

In the moving‐baseline mode, the base‐station position is not fixed but is estimated by the single point
positioning process on epoch‐by‐epoch basis. Once the base station position is obtained, the base
station position fixed to the estimate position and the rover position is estimated by short baseline
kinematic mode described in (1)‐(5). In this case only the relative position is meaningful, that means the
absolute position solutions of rover and base‐station have only the accuracy as same as the solution by
the point pointing mode.

In addition to the simple implementation for the moving‐baseline mode, RTKLIB corrects the time
difference between the rover and the base station. The rover receiver and the base station receiver are
not synchronized. The receiver clock difference usually reaches 2 ms as maximum. The
unsynchronized clocks bring the accuracy degradation in case of very fast moving platform. To correct
the clock difference, the base station position rb is corrected before the baseline processing by:

rb (tr )  rb (tb )  vb (tb )(tr  tb )

(E.7.32)

where tr and tb are the signal reception time at the rover and the base station estimated by the single
point positioning process. vb (tb ) is also the velocity of the base station estimated with Doppler
measurements. For the attitude determination by the moving baseline mode, the baseline length
constraint can be applied if the processing option ʺBaseline Length Constraintʺ enabled. The constraint
applies the following pseudo‐measurement in the EKF measurement update.
y   rbaseline 



h( x)  rr (tr )  rb (tr )

(E.7.33)



(E.7.34)

169

RTKLIB ver. 2.4.2 Manual
 (r (t )  rb (tr ))T
H  r r
 rr (tr )  rb (tr )


 






(E.7.35)

R   r2

(E.7.36)

where rbaseline is the given pre‐determined baseline length (m) and  r is the constraint of the baseline
length (m). To cope with the non‐linearity in case of a very short length baseline, iterative measurement
update of EKF is supported by setting the processing option ʺNumber of Filter Iterationʺ to more than
1.

170

RTKLIB ver. 2.4.2 Manual

E.8

PPP (Precise Point Positioning)

In PPP modes, RTKLIB also use EKF estimation process similar to the schemes described in Appendix E.7.
The difference from the baseline processing, PPP employs ZD (zero‐difference) measurement equations like
the single point positioning model instead of DD.

(1)

ZD measurement models for PPP
The ionosphere‐free LC phase‐range  rs, LC and pseudorange Prs, LC measurements for the satellite s
are expressed by using (E.3.4) and (E.3.2) as:

 rs, LC   rs  c( dtr (tr )  dT s (t s ))  Trs  Brs, LC  d rs, LC  

(E.8.1)

Prs, LC   rs  c ( dtr (tr )  dT s (t s ))  Trs   P

where the ionosphere terms in (E.3.4) and (E.3.2) are eliminated by forming the ionosphere‐free LC
described in E.5 (7). Brs, LC is the carrier‐phase bias in m and d rs, LC is the ionosphere‐free LC of Li
and L j carrier‐phase correction terms expressed as:



d rs, LC   Ci d r , pco,i  C j d r , pco,i

d

s
s
pcv ,i ( )  d pcv , j ( )



d

T

 

ers,enu  E s Ci d spco,i  C j d spco, j

r , disp

T s
er ,enu





T





ers  Ci d r , pcv,i ( El )  C j d r , pcv, j ( El ) 



 Ci i  C j  j  pw
(E.8.2)

(2)

Receiver antenna phase center model
Figure E.8‐1 shows the receiver antenna PCO (phase center offset) and PCV (phase center variation).
The antenna PCO is defined as the relative position of the receiver antenna phase center with respect
to the ARP (antenna reference point). The PCV is defined as the excess phase delay by the antenna
depending on the elevation and azimuth angle. The PCO and PCV values for various antenna types
have been measured by the appropriate antenna calibration process and provided by some standard
formats. Current version RTKLIB supports the NGS PCV and the ANTEX format for the antenna
model including PCO and PCV data. The PCO value is usually provide in the local coordinates at the
receiver position. So the Li PCO of the receiver antenna in ECEF d r , pco,i is expressed as:

d r , pco,i  Er T d r , pco,i ,enu

(E.8.3)

where Er is the ECEF to local coordinates rotation matrix given by (E.2.10) and d r , pco,i ,enu is Li

171

RTKLIB ver. 2.4.2 Manual
receiver antenna PCO expressed in the local coordinates. The Li receiver antenna PCV d r , pcv ,i ( El ) at
the elevation angle El is derived by the linear interpolation of given PCV values depending on the
elevation angles as:

d r , pcv,i ( El ) 

( El  Eli ) d r , pcv,i ( Eli )  ( Eli 1  El )d r , pcv,i ( Eli 1 )
Eli 1  Eli

(E.8.4)

where Eli  El  Eli 1 .

Antenna
Phase
Center

d r , pcv

d r, pco
Antenna Phase
Center Offset

Antenna
Reference
Point (ARP)

y (N)

z (U)
x (E)

Figure F.8‐1 Receiver Antenna Phase Center

(3)

Satellite antenna phase center model
Figure F.8‐1 shows the GNSS satellite antenna PCO and PCV, which are also provided as the ANTEX
file typically by IGS (international GNSS service) like the receiver antenna. RTKLIB also can import
such the antenna model for satellites. The satellite antenna PCO is usually given in satellite fixed
coordinates with respect to the satellite CoM (center of mass) shown in Figure F.8‐3. So the satellite
antenna PCO in the satellite fixed coordinates should be transferred to ECEF coordinates. The PCV is
also expressed with respect to the nadir angle.

172

RTKLIB ver. 2.4.2 Manual

Mass Center of
Satellite
Antenna Phase
Center

Antenna Phase

d s pco Center Offset
Nadir Angle

d s pcv
Earth

Figure F.8‐2 Satellite Antenna Phase Center

Sun
Satellite

y

x
z
Figure F.8.3 Satellite Body‐Fixed Coordinate System

Assuming the nominal satellite attitude control mode, the coordinates transformation matrix E s from
the satellite body‐fixed coordinates to ECEF coordinates is given as:

e zs  

es 

e sy 

rs
(E.8.5)

rs

rsun  r s

(E.8.6)

rsun  r s
e zs  es
e zs  es

(E.8.7)

e xs  e sy  e zs

(E.8.8)

E s  (e xs , e sy , e zs )

(E.8.9)

where rsun is the sun position in ECEF coordinates. The nadir angle  can also be derived as:

173

RTKLIB ver. 2.4.2 Manual

  arccos

(4)

ersT r s

(E.8.10)

rs

Site displacement by earth tides
The position of a receiver fixed to the ground is varied by the earth tide effects. The tides effects are
usually neglected for the baseline analysis because the DD can cancel the almost all of the effects.
However, in the PPP mode, the effect should be incorporated in the model because the amplitude
sometimes reaches several 10 cm as the vertical component. Figure E.8‐2 shows the example of the site
displacement effect by earth tides.

Figure E.8‐2 Displacement by Earth Tides

In current version RTKLIB, solid earth tides, OTL (ocean tide loading) and pole tides are modeled and
considered if the processing option ʺEarth Tide Correctionʺ to ʺSolidʺ or ʺSolid/OTLʺ. The earth tide
models is based on IERS Conventions 1996

[73]

. By setting the compiler option ‐DIERS_MODEL and

rebuilding APs, RTKLIB uses the IERS Conventions 2010

[74]

solid earth tides model by linking the

FORTRAN subroutine DEHANTTIDEINEL provided as IERS. For the OTL model, OTL coefficients as
provided as the BLQ format [63] should be input as specified as the processing option ʺOTL BLQ Fileʺ.

(5)

Phase windup correction
The phase windup effect is the phase advance and delay by the relative rotation between the receiver
and satellite antennas. The phase windup is modeled as:

174

RTKLIB ver. 2.4.2 Manual

Er  (er , xT , er , yT , er , zT )T

(E.8.11)

sT T
 (e xsT , e sT
y , ez )

(E.8.12)

E

s

D s  e xs  eus (eus  e xs )  eus  e sy

(E.8.13)

Dr  er , x  ers (ers

(E.8.14)

 er , x )  ers

 er , y

 pw  sign (ers  ( D s  Dr ))arccos

D s  Dr
D s Dr

/ 2  N

(E.8.15)

where N is the integer ambiguity, which is determined as to avoiding cycle‐jumps.

(6) Estimation of receiver position by PPP
By using EKF, the unknown state vector x for the PPP case is settled as:

x  (rr T , vrT , cdtr , Z r , GN , r , GE , r , BLC T )T

(E.8.16)

where Z r is ZTD (zenith total delay), GN , r and G E , r are the north and east components of
tropospheric gradients. B LC  ( B1r , LC , Br2, LC ,..., Brm, LC )T is ionosphere‐free LC of ZD (zero‐differenced)
carrier‐phase biases (m).

The measurement vector y is also defined with ZD ionosphere‐free LC phase‐range and pseudorange
measurements with (E.5.21) and (E.5.22) as:

y  (Φ LC ,T , PLC T )T

(E.8.17)

where:
ΦLC  ( r1, LC , r2, LC , r3, LC ,..., rm, LC )T
Pi  ( Pr1, LC , Pr2, LC , Pr3, LC ,..., Prm, LC )T

The measurement model vector h(x ) and the matrix of partial derivatives H (x) can be written as:

h( x )  ( h T , hP T )T

(E.8.18)

   c( dtr  dT )  T  B

 d


2
c
dt
dT
T
B
d

(
)






r

h  


 m

m
m
m
m
   c( dt  dT )  T  B

r
r
r , LC  d r . LC 
 r
1
r
2
r

1

1
r
2
r

1
r , LC
2
r , LC

1
r . LC
2
r . LC

(E.8.19)

175

RTKLIB ver. 2.4.2 Manual

  r1  c(dtr  dT 1 )  Tr1 
 2

  c(dtr  dT 2 )  Tr2 
hP   r



 m

m
m
  r  c(dtr  dT )  Tr 
  DE 0 1 DMT I 
H ( x)  

  DE 0 1 DMT 0 
 R , LC
R  


(E.8.20)

(E.8.21)



RP , LC 

(E.8.22)

where:

1
 
1
1 

 
1
1
1
 mWG
mW1 , r ( Elr1 ) cot Elr1 cos Az1r
, r ( Elr )
 2
2
m ( El ) mW2 , r ( Elr2 )cot Elr2 cos Azr2
M T   WG , r r


 m
 m ( El m ) m m ( El m ) cot El m cos Az m
W ,r
r
r
r
 WG , r r

mW1 , r ( Elr1 ) cot Elr1 sin Az1r 

mW2 , r ( Elr2 )cot Elr2 sin Azr2 



m
m
m
m
mW , r ( Elr ) cot Elr sin Azr 

1 2
2 2
m 2
R , LC  diag(3 
,1 ,3  ,1 ,...,3  ,1 )

RP , LC  diag(3 1P ,12 ,3 P2 ,12 ,...,3 Pm,12 )

 s ,1 : standard deviation of L1 phase‐range measurement error (m)
 Ps ,1 : standard deviation of L1 pseudorange measurement error (m)

By using the EKF formulation and the similar time update processes described in E.7, the unknown
parameters including the receiver position and velocity, the receiver clock bias, the troposphere
parameters and the ionosphere‐free LC carrier‐phase biases are estimated.

Note that to resolve the integer ambiguity in the carrier‐phase biases like the baseline processing cases,
the additional information for the satellite‐side FCB (fractional cycle bias) is needed. The process is
sometimes called as PPP‐AR (ambiguity resolution). Current version RTKLIB only supports the
wide‐lane FCB and the IRC (integer recovery clock) products provided by CNES. The implementation is
experimental and unstable. The PPP‐AR feature is enabled in case of the processing option ʺInteger
Ambiguity Resolutionʺ is set to ʺPPP‐ARʺ only in the post‐processing mode.

176

RTKLIB ver. 2.4.2 Manual

Appendix F GNSS Signal Specifications

System

Freq.
(MHz)

1575.42

GPS [1][2][3]
1227.6

L1C/A

2.046

Q

‐158.5

BPSK (1)

1,023

‐

1.023

1ms

‐

NAV

50

50

‐

L1P(Y)

20.46

I

‐161.5

BPSK (10)

1week

‐

10.23

1week

(Y)

NAV

50

50

‐

GLONASS
[4]

1246.00+
0.4375K
1202.025

Galileo

[5]

1575.42

Modulation

Primary
(chips)

Second
(chips)

Rate
(Mcps)

Period

ENC

Data

Rate
(sps)

Rate
(bps)

Notes

FEC

?

?

?

BOC (10,5)

?

?

5.115

?

Y

?

?

?

?

L1C‐D

30.69

I

‐163

BOC (1,1)

10,230

‐

1.023

10ms

‐

CNAV‐2

100

50

1/2

Block III‐

L1C‐P

30.69

I

‐158.25

TMBOC
(6,1,1/11)

10,230

1,800

1.023

18s

‐

‐

‐

‐

‐

Block III‐

L2C/A

2.046

Q

‐160.0

BPSK (1)

1,023

‐

1.023

1ms

‐

(NAV)

‐50

‐50

‐

Block IIR‐M‐

L2P(Y)

20.46

I

‐164.5/
‐161.5

BPSK (10)

1week

‐

10.23

1week

(Y)

(NAV)

‐50

‐50

‐

L2M

?

?

?

BOC (10,5)

?

?

5.115

?

Y

?

?

?

?

Block IIR‐M‐

L2C

2.046

Q/I

‐160.0

time mux,
Block IIR‐M‐

L5‐I

20.46

I

L5‐Q

20.46

Q

L1C/A

1.022

I

L1P

10.22

Q

L2C/A

1.022

I

L2P

10.22

Q

L3‐I

20.46

I

L3‐Q

20.46

Q

E1‐A

35.805

Q

E1‐B

24.552

I

1176.45

1602.00+
0.5625K

Navigation Data

I/Q

L1M

Min.
Power
(dBW)

Spreading Code

Band
Width
(MHz)

Signal

E1‐C

24.552

Q

Block IIR‐M‐

10,230

‐

0.5115

20ms

‐

(CNAV)

‐50

‐25

1/2

767,250

‐

0.5115

1.5s

‐

‐

‐

‐

‐

BPSK (10)

10,230

10

10.23

10ms

‐

CNAV

100

50

1/2

Block IIF‐

BPSK (10)

10,230

20

10.23

20ms

‐

‐

‐

‐

‐

Block IIF‐

BPSK

511

‐

0.511

1ms

‐

NAV

50

50

‐

?

BPSK

5,110,000

‐

5.11

1s

(Y)

NAV

50

50

‐

‐167.0

BPSK

511

‐

0.511

1ms

‐

NAV

50

50

‐

?

BPSK

5,110,000

‐

5.11

1s

(Y)

NAV

50

50

‐

?

BPSK (10)

10,230

5

10.23

5ms

‐

NAV

100

50

1/2

?

BPSK (10)

10,230

10

10.23

10ms

‐

‐

‐

‐

‐

?

BOC (15,2.5)

?

?

2.5575

?

Y

G/NAV

?

?

?

CBOC (6,1,1/11)

4,092

‐

1.023

4ms

‐

I/NAV

250

125

1/2

CBOC (6,1,1/11)

4,092

25

1.023

100ms

‐

‐

‐

‐

‐

‐157.9/
‐157.0
‐157.9/
‐157.0
‐161.0

‐157.0

BPSK (1)

177

GLONASS‐K‐
PRS
OS, SoL, CS

RTKLIB ver. 2.4.2 Manual
System

Freq.
(MHz)
1191.795
1176.45

Galileo

1207.14

1278.75

1575.42

QZSS [6]

1227.6
1176.45
1278.75

1561.098

Band
Width
(MHz)

I/Q

Min.
Power
(dBW)

E5a+
E5b

51.15

I

‐155.0

Signal

E5a‐I

20.46

I

E5a‐Q

20.46

Q

E5b‐I

20.46

I

E5b‐Q

20.46

Q

E6‐A

?

Q

E6‐B

40.92

I

E6‐C

40.92

I

L1C/A

2.046

Q

‐155.0
‐155.0
?
‐155.0

Spreading Code
Modulation

Rate
(Mcps)

Period

ENC

Data

Rate
(sps)

Rate
(bps)

FEC

8‐PSK (10)

10,230

100

10.23

100ms

‐

‐

‐

‐

‐

AltBOC

BPSK (10)

10,230

20

10.23

20ms

‐

F/NAV

50

25

1/2

OS, CS

BPSK (10)

10,230

100

10.23

100ms

‐

‐

‐

‐

‐

BPSK (10)

10,230

4

10.23

4ms

‐

I/NAV

250

125

1/2

BPSK (10)

10,230

100

10.23

100ms

‐

‐

‐

‐

‐

BOC (10,5)

?

?

5.115

?

Y

G/NAV

?

?

?

PRS

5,115

‐

5.115

1ms

Y

C/NAV

1,000

?

?

CS

BPSK (5)

5,115

100

5.115

100ms

Y

‐

‐

‐

‐

‐158.5

BPSK (1)

1,023

‐

1.023

1ms

‐

NAV

50

50

‐

4.096

I

‐163.0

BOC (1,1)

10,230

‐

1.023

10ms

‐

CNAV‐2

100

50

1/2

L1C‐P

4.096

Q

‐158.25

BOC (1,1)

10.23

1,800

1.023

18s

‐

‐

‐

‐

‐

L1‐SAIF

2.046

I

‐161.0

BPSK (1)

L2C

2.046

I

‐160.0

BPSK (1)

L5‐I

20.46

I

‐157.9

BPSK (10)

L5‐Q

20.46

Q

‐157.9

BPSK (10)

B1

42.0

4.092

I
Q

‐155.7

‐163.0

SBAS [8]

Q

1207.14

B2

24.0

1268.52

B3

24.0

1575.42

L1

2.046

I

‐161.0

1176.45

L5

20.46

I

?

I
Q
I

OS, SoL, CS

BPSK (5)

L1C‐D

LEX

Notes

Second
(chips)

BPSK (5)

QPSK (2)

I
BeiDou [7]

Navigation Data

Primary
(chips)

?

QPSK (10)

?

QPSK (10)

1,023

‐

1.023

1ms

‐

L1‐SAIF

500

250

1/2

10,230

‐

0.5115

20ms

‐

CNAV

50

50

1/2

767,250

‐

0.5115

1.5s

‐

‐

‐

‐

‐

10,230

10

10.23

10ms

‐

CNAV

50

25

1/2

chip‐by‐chip
time mux

10,230

20

10.23

20ms

‐

‐

‐

‐

‐

10,230

‐

2.5575

4ms

‐

LEX

2,000

1,744

RS

1,048,575

‐

2.5575

410ms

‐

‐

‐

‐

‐

chip‐by‐chip
time mux

20

2.046

20ms

‐

D1‐NAV

50

50

BCH

IGSO, MEO
GEO

2,046

‐

2.046

1ms

‐

D2‐NAV

500

500

BCH

2,046

‐

2.046

>0.4s

‐

‐

‐

‐

‐

2,046

20

2.046

20ms

?

?

?

?

?

10,230

‐

10.23

>0.16s

‐

‐

‐

‐

‐

10,230

20

10.23

20ms

?

?

?

?

?

10,230

‐

10.23

>0.16s

‐

‐

‐

‐

‐

BPSK (1)

1,023

‐

1.023

1ms

‐

SBAS

500

250

1/2

BPSK (10)

10,230

‐

10.23

10ms

‐

SBAS

500

250

1/2

K= ‐7,...,+6, ENC: encryption, FEC: forward error correction, 1/2: 1/2 convolutional code, RS: Reed Solomon code, BCH: BCH code and interleave

178

WAAS

RTKLIB ver. 2.4.2 Manual

References
[1]

IS‐GPS‐200F, Navstar GPS Space Segment/Navigation User Interfaces, September 21, 2011

[2]

IS‐GPS‐750A, Navstar GPS Space Segment/User Segment L5 Interfaces, June 8, 2010

[3]

IS‐GPS‐800A, Navstar GPS Space Segment/User Segment L1C Interfaces, June 8, 2010

[4]

Global Navigation Satellite System GLONASS, Interface Control Document Navigational radiosignal
In bands L1, L2, (Edition 5.1), 2008

[5]

European GNSS (Galileo) Open Service Signal In Space Interface Control Document, Issue 1, February,
2010

[6]

Quasi‐Zenith Satellite System Navigation Service Interface Control Specification for QZSS (IS‐QZSS)
V1.4, Japan Aerospace Exploration Agency, February, 2012

[7]

BeiDou navigation satellite system signal in space interface control document open service signal B1I
(version 1.0), China Satellite Navigation office, December 2012

[8]

RTCA/DO‐229C, Minimum operational performanc standards for global positioning system/wide
area augmentation system airborne equipment, RTCA inc, November 28, 2001

[9]

W. Gurtner, RINEX The Receiver Independent Exchange Format Version 2.10, December 10, 2007

[10] W. Gurtner and L. Estey, RINEX The Receiver Independent Exchange Format Version 2.11, December
10, 2007
[11] W. Gurtner and L. Estey, RINEX The Receiver Independent Exchange Format Version 2.12, June 23,
2009
[12] W. Gurtner and L. Estey, RINEX The Receiver Independent Exchange Format Version 3.00, November
28, 2007
[13] W. Gurtner and L. Estey, RINEX The Receiver Independent Exchange Format Version 3.01, June 22,
2009
[14] RINEX The Receiver Independent Exchange Format Version 3.02, International GNSS Service (IGS),
RINEX Working Group and Radio Technical Commission for Maritime Services Special Committee
104 (RTCM‐SC104), December 10, 2012
[15] J. Ray and W. Gurtner, RINEX extensions to handle clock information version 3.02, September 2, 2010
[16] RTCM Recommended Standards for Differential GNSS (Global Navigation Satellite Systems) Service
version 2.3, August 20, 2001
[17] RTCM Standard 10403.1 ‐ Amendment 5, Differential GNSS (Global Navigation Satellite Systems)
Services ‐ version 3, July 1, 2011
[18] RTCM Standard 10403.2, Differential GNSS (Global Navigation Satellite Systems) Services ‐ version 3,
February 1, 2013
[19] UNAVCO, BINEX: Binary exchange format (http://binex.unavco.org/binex.html)

179

RTKLIB ver. 2.4.2 Manual
[20] RTCM Recommended Standards for Networked Transport of RTCM via Internet Protocol (Ntrip),
version 1.0, September 30, 2004
[21] NMEA0183, Standard for Interfacing Marine Electronic Devices, version 4.10, June, 2012
[22] S. Hilla, The extended standard product 3 orbit format (SP3‐c), August 17, 2010
[23] M. Rothacher, R. Schmid, ANTEX: The Antenna Exchange Format Version 1.4, September 15, 2010
[24] S. Schear, W. Gurtner and J. Feltens, IONEX: The IONosphere Map EXchange Format Version 1,
February 25, 1998
[25] National Geodetic Survey‐ Antenna calibrations (http://www.ngs.noaa.gov/ANTCAL)
[26] ESA, EGNOS Message Server (EMS) User Interface Document, November 4, 2005
[27] NovAtel (http://www.novatel.com)
[28] Hemisphere GPS (http://www.hemispheregps.com)
[29] u‐blox (http://www.u‐blox.com)
[30] SkyTraq (http://www.skytraq.com.tw)
[31] JAVAD GNSS (http://www.javad.com)
[32] Furuno (http://www.furunocom)
[33] NVS Technologies AG (http://www.nvs‐gnss.com)
[34] Google Earth (http://www.google.com/earth)
[35] Microsoft Windows (http://windows.microsoft.com)
[36] LAPACK ‐ Linear Algebra PACKage (http://www.netlib.org/lapack)
[37] Intel (R) Math Kernel Library (Intel (R) MKL) (http://software.intel.com/en‐us/intel‐mkl)
[38] Embarcadero Technologies (http://www.embarcaadero.com)
[39] Ubuntu (http://www.ubuntu.com)
[40] The BSD 2‐Clause License (http://opensource.org/licenses/BSD‐2‐Clause)
[41] NovAtel, OM‐20000094 Rev6 OEMV Family Firmware Reference Manual, 2008
[42] NovAtel, OM‐20000129 Rev2 OEM6 Family Firmware Reference Manual, 2011
[43] NovAtel, OM‐20000053 Rev2 MiLLennium GPS Card Software Versions 4.503 and 4.52 Command
Descriptions Manual, 2001
[44] ublox‐AG, GPS.G3‐X‐03002‐D, ANTARIS Positioning Engine NMEA and UBX Protocol Specification,
Version 5.00, 2003
[45] NovAtel, OM‐20000086 Superstar II Firmware Reference Manual, 2005
[46] Hemisphere GPS, Crescent Integratorʹs Manual, December, 2005
[47] Hemisphere GPS, GPS Technical Reference, Part No. 875‐0175‐000, Rev.D1, 2008
[48] Skytraq, Application Note AN0023 Binary Message of SkyTraq Venus 6 GPS Receiver, ver 1.4.8,
August 21, 2008
[49] Skytraq, Application Note AN0024 Raw Measurement Binary Message Extension of SkyTraq Venus 6
GPS Receiver, ver. 0.5, October 9, 2009

180

RTKLIB ver. 2.4.2 Manual
[50] Furuno, SBAS/GPS receiver type GW‐10 III manual, July 2004
[51] Javad GNSS, GREIS GNSS Receiver External Interface Specification, Reflects Firmware Version 3.2.0,
July 22, 2010
[52] Javad navigation systems, GPS Receiver Interface Language (GRIL) Reference Guide Rev 2.2, Reflects
Firmware Version 2.6.0
[53] Javad GNSS, User visible changes in the firmware version 3.4.0 since version 3.3.x (NEWS_3_4_0.txt)
[54] Javad GNSS, GREIS GNSS Receiver External Interface Specification, Reflects Firmware Version 3.4.6,
October 9, 2012
[55] Description of BINR messages which is used by RC program for RINEX files accumulation, NVS
[56] NVS Technologies AG, GLONASS/GPS/Galileo/Compass/SBAS NV08C receiver series BINR Interface
Protocol Specification, ver. 1.3, August, 2012
[57] The GZIP home page (http://www.gzip.org)
[58] Download page for the RNXCMP software (http://terras.gsi.go.jp/ja/crx2rnx.html)
[59] GNU General Public License version 3, June 29, 2007 (http://www.gnu.org/licenses/gpl‐3.0.en.html)
[60] Japan Aerospace Exploration Agency, RINEX ver2‐based QZSS Extension (Version 1.00), December 17,
2010
[61] Japan Aerospace Exploration Agency, RINEX ver3‐base QZSS Extension (Version 1.00)
[62] [IGSMAIL‐1943] AC Coordinator, New IGS ERP Format (version 2), July 10, 1998
[63] Ocean Tide Loading Provider (http://holt.oso.chalmers.se/loading)
[64] P. J. G. Teunissen, A. Kleusberg (Eds.), GPS for Geodesy, 2nd edition, Springer, 1998
[65] A. Gelb (eds.), Applied Optimal Estimation, The M. I. T. Press, 1974
[66] P. J. G. Teunissen, The least‐square ambiguity decorrelation adjustment: a method for fast GPS
ambiguity estimation, J. Geodesy, vol.70, 1995
[67] X.‐W. Chang, X. Yang, and T. Zhou, MLAMBDA: A modified LAMBDA method for integer
least‐squares estimation, J. Geodesy, vol.79, 2005
[68] J. Kouba, A guide to using International GNSS Service (IGS) products, May 2009
[69] D. W. Marquardt, An Algorithm for Least‐Square Estimation for Nonlinear Parameters, Journal of the
Society for Industrial and Applied Mathematics, 1963
[70] A. E. Niell, Global mapping functions for the atmosphere delay at radio wavelengths, Journal of
geophysical research, 1996
[71] J. Boehm, A. Niell, P. Tregoning and H. Shuh, Global Mapping Function (GMF): A new empirical
mapping function base on numerical weather model data, Geophysical Research Letters, 33, L07304,
2006
[72] BIPM Bureau International des Poid et Mesures (http://www.bipm.org)
[73] D. D. McCarthy, IERS Technical Note 21, IERS Conventions 1996, July 1996
[74] G.Petit and B.Luzum (eds.), IERS Technical Note No.36, IERS Conventions (2010), 2010

181

</pre><hr>Source Exif Data: <br /><pre>File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : Yes
Author                          : ttaka
Create Date                     : 2013:04:29 13:38:56+09:00
Modify Date                     : 2015:05:02 15:18:59+02:00
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-20:48:00
Producer                        : Acrobat Distiller 9.5.3 (Windows)
Creator Tool                    : PScript5.dll Version 5.2.2
Metadata Date                   : 2015:05:02 15:18:59+02:00
Format                          : application/pdf
Title                           : Microsoft Word - manual.docx
Creator                         : ttaka
Document ID                     : uuid:904b4983-ffb7-4ea8-90d7-640f2d834fd3
Instance ID                     : uuid:a759f20f-dfb7-45ec-8356-c357583865eb
Page Count                      : 183
</pre>
<small>EXIF Metadata provided by <a href="https://exif.tools/">EXIF.tools</a></small>

<div id="ezoic-pub-ad-placeholder-110">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- usermanual link ad -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-0545639743190253"
     data-ad-slot="6172135303"
     data-ad-format="link"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>
				<div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>				<div class="visualClear"></div>
							</div>
		</div>
		<div id="mw-navigation">
			<h2>Navigation menu</h2>

			<div id="mw-head">
									<div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
                                                 <!--                              <div id="p-search" role="search">

                                                <form action="https://usermanual.wiki/search.php" id="searchform">
                                                        <div id="simpleSearch">
                                                        <input type="search" name="search" placeholder="Search UserManual.wiki" title="Search UserManual.wiki [ctrl-option-f]" accesskey="f" id="searchInput" tabindex="1" autocomplete="off"><input type="hidden" value="Special:Search" name="title"><input type="submit" name="go" value="Go" title="Find a User Manual" id="searchButton" class="searchButton">                                                 </div>
                                                </form>
                                        </div>-->
                                                <ul>
<li id="pt-mycontris"><a href="https://usermanual.wiki/upload" title="Upload User Manual" accesskey="y">Upload a User Manual</a></li>
</ul>
					</div>
									<div id="left-navigation">
										<div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
						<h3 id="p-namespaces-label">Versions of this User Manual:</h3>
						<ul>
 <li id="ca-nstab-main"><span><a href="https://usermanual.wiki/Document/manualRTKLIB242.68761042" title="User Manual Wiki" accesskey="c">Wiki Guide</a></span></li> <li id="ca-nstab-main"><span><a href="https://usermanual.wiki/Document/manualRTKLIB242.68761042/html" title="HTML" accesskey="c">HTML</a></span></li> <li id="ca-nstab-main"><span><a href="https://usermanual.wiki/Document/manualRTKLIB242.68761042/amp" title="Mobile AMP" accesskey="c">Mobile</a></span></li> <li id="ca-nstab-main" class="selected" ><span><a href="https://usermanual.wiki/Document/manualRTKLIB242.68761042/help" title="Discussion / FAQ / Help" accesskey="c">Download & Help</a></span></li>
													</ul>
					</div>
									</div>
				<div id="right-navigation">
										<div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
						<h3 id="p-views-label">Views</h3>
						<ul>
													
		<li id="ca-view"><span><a href="#">User Manual</a></span></li>

                                                                                                                        <li  class="selected"  id="ca-edit"><span><a href="https://usermanual.wiki/Document/manualRTKLIB242.68761042/help" title="Ask a question" accesskey="e">Discussion / Help</a></span></li>

													</ul>
					</div>
									</div>
			</div>
			<div id="mw-panel">
				<div id="p-logo" role="banner"><a class="mw-wiki-logo" href="https://usermanual.wiki/Main_Page" title="Visit the main page"></a></div>
						<div class="portal" role="navigation" id="p-navigation" aria-labelledby="p-navigation-label">
			<h3 id="p-navigation-label">Navigation</h3>

		</div>
			<div class="portal" role="navigation" id="p-tb" aria-labelledby="p-tb-label">


		</div>
				</div>
		</div>
		<div id="footer" role="contentinfo">
							<ul id="footer-info">
											<li id="footer-info-lastmod">© 2024 UserManual.wiki</li>
									</ul>
							<ul id="footer-places">
											<li id="footer-places-privacy"><a href="https://usermanual.wiki/ContactUs" title="UserManual.wiki:Contact Us">Contact Us</a></li>
											<li id="footer-places-about"><a href="https://usermanual.wiki/DMCA" title="UserManual.wiki:DMCA">DMCA</a></li>
									</ul>
										<ul id="footer-icons" class="noprint">
											<li id="footer-poweredbyico">

</li>
									</ul>

		</div>

</div></body></html>
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b092a0cf1940432dc2880cc7-|49" defer></script>