In Part 1 we looked at how to download, install and process data using RTKLib in standalone mode. Although standalone mode is good for 2-5 meter accuracy the real power of RTKLib lies in the Prceise Point Positioning (PPP) and RTK processing modes. This post will focus on RTK. For now we are only going to demonstrate RTK in post processing mode since we do not need to worry about setting up a communication server. PPP will be saved for a separate tutorial.

Post Processing in RTK Mode

Although it is a bit of a misnomer the term RTK has become so popular that people oftern use it to refer to any differential processing using carrier phase, even if it is not in real time. For post processing in RTK Mode you need to have:

  • two RINEX files
  • broadcast orbit and clock file
  • known coordinates for one of the points

You can download sample data for this demo here.

To get started download the sample data and unzip it to a folder. Open RTKPost.exe by double clicking on the executable. To begin it is necessary to set-up the processing settings. Click Options.

Under the Settings1 page, change:

  • mode to kinematic
  • frequencies to L1+L2
  • elevation mask to 10

Once done it should look like this:
RTK Settings page 1

Next, go to the positions tab. Here we will setup the base station. Change Lat/Lon/Hei (deg/m) to Lat/Lon/Hei(dms/m) enter the reference coordinates from the reference.txt file in the sampledata folder into the three boxes as shown below. Once done click ok.

Setting base station coordinates

Finally, we can add the files to be processed. Follow the steps highlighted below:

File setup for RTK

Once set-up press Execute. In the status bar it should show the progress and Q=1 or 2 which indicates that it is processing in RTK mode. Once done press Plot to see the results. It should look something like this:

RTK result

The yellow dots indicate a float solution, carrier phase ambiguities not fixed, while the green dots indicate a fixed solution. Unlike the standalone solution that had a scatter of about 2 meters this result has a scatter of around 5 cm for the majority of the points. Switching to the GrdTrack in the menu bar will change the view of the results to local coordinate frame, where we can see the result vs time in a local coordinate system (North-East-up).

results in local north-east-up system

The x-axis shows the UTC time. For the first 12 hours the performance is quite good. Most of the epochs are fixed. Between 12 and 24 hours the RTK solution performs quite poorly, with very few fixed solutions.

To see if we can improve this result we can change some of the options on the option page. In the first result, we simply ignored the ionosphere and used the L1 and L2 observations as two separate observations. An alternative is to combine these measurements to create a single measurement that almost completely removes the ionosphere error. However, the drawback is that the wavelength of the observation is only ~10.7 cm which makes the ambiguity resolution much more difficult.

To switch to the ionosphere free combination, change the ionosphere correction box to Iono-Free LC. Once this selection is ok, return to the main screen and press execute.

The result using the ionosphere free combination shows that the precision overall is much better, we no longer have the large variations between 12 - 18 hours. However, we were not able to resolve the ambiguties because of the smaller wavelength. Additionally, there is an incorrect fix, shown in the green when the ambiguities were resolved to the incorrect values. However, when the baselines are long and the ionosphere error is large the ionosphere free combination can be a useful option, but it does require an expensive dual frequency receiver.

Ionosphere free combination result

Conclusion

RTKLib allows for quick and easy cm level positioning using the RTK mode and a near by reference station. Depending on the atmospheric conditions sometimes errors can creep in even for relatively short baselines of 11 km. In the next tutorial, we'll try using the PPP mode in RTKLib.