This is my first post regarding geospatial technology. This will be one of the main subjects of the blog as I hope it will be a resource for people trying to learn more about the field.

RTKLib is an exciting project that brings the possibility of low-cost, high accuracy positioning using satellite navigation systems. RTKLib is capable of cm level accuracy which makes it very attractive for hobbyists and scientists who can't afford the hefty price tag of professional grade positioning systems.

This is part 1 of a 3 part introduction of using RTKLib software package in post processing mode. Part 1 will mainly focus on an overview of the software importing data and running a stand-alone positioning example with RTKLib. Part 2 will focus on processing RTK and while part 3 will use Precise Point Positioning (PPP).


RTKLib is an open source GNSS processing packaged developed and maintained by Tomoji Takasu from the Tokyo University of Marine Science and Technology in Japan. For those not familiar, RTK stands for real-time kinemtic, which is an algorithm for processing measurements made from satellite navigation systems such as the US's GPS. Although the name RTK implies "real-time" processing, many people use the term to refer to any differential positioning using carrier phase measurements, even if it is not performed in real-time.

The name RTKLib does not fully describe the package itself as there are many other tools included, for example:

  • various other processing styles including single, DGNSS, kinematic, static,PPP and more.
  • server communication
  • analysis of raw data and results
  • converting between binary and RINEX formats
  • plotting solutions on Google earth
  • downloading GNSS data
  • browsing NTRIP sources.

Downloading and Installation

To download RTKLib you have two options. The more difficult option is to download the source files and compile them yourself. The easy way is to download the binaries shown below:
Downloading RTKLib binaries

The Current release is v2.4.2, circled in red.Click the link to download the file and once you have downloaded the file, navigate to your downloads folder. Copy the file to your Program Files folder and unzip it.

Double click the rtklib_2.4.2 folder and the contents should be as follows:

            |_____ bin/
            |_____ data/
            |_____ doc/
            |_____ readme.txt

The readme.txt contains an overview of the contents of the directories and the capabilities of the RTKlib applications, the doc/ folder contains the user manual, data/ contains some sample data and the actual applications are contained in the bin/ folder.

To begin, double click the bin folder. The main applications include:

  • RTKPlot - this is pretty self-explanatory
  • RTKConv - convert between raw data and RINEX formats.
  • STRSVR - server communication
  • RTKPost - Post processing: PPP/RTK/standalone
  • NTRIP Browser - access NTRIP sources for streaming real-time data
  • RTKNavi - real-time positioning in RTK mode
  • RTKGet - Downloader for GNSS Products and Data

Running RTKLib

To start we will just run RTKLib in stand-alone positioning mode. Stand-alone positioning is similar to what is used for consumer handheld GPS units and does not rely on any external corrections. The accuracy of this method is usually around 2-5 meters.

Download Data

You can download some sample data here. The sample data is taken from the IGS Tracking Network. Two RINEX files are included here that contain the raw pseudoranges and carrier phase observations, files ending in o, along with a navigation file that contains the satellite positions and clock corrections, file ending in n. We'll process file NRC1 in this example.

Setting up RTKPost

Double click on RTKPost.exe. This will bring up the main dialog window:

RTKPost main dialog

The next step is to add the sample data. Click the button labelled ... besides (1) in the image above. Then, navigate to the location of the sample data folder and select the NRC1 file. Next click the ... besides (2) and add the brdc0010.11n file. Finally, click Execute (3).

Once the process is finished you can click View (4) to see the results. You can manipulate the view using the controls in the upper bar.

Stand-alone positioning result

This plot does not show accuracy since we did not enter known values for the point. However, we can see that the majority of the points fall within a circle with a radius of about 2 meters. This indicates the precision of the solution.


So this tutorial describes the basics of RTKLib. In part 2 and part 3 We will test out the actual RTK algorithm and PPP algorithm. You can checkout part 2 here.