Skip to content

Base station data for RTKLIB

RTKLIB has a number of different algorithms it can use to calculate position. The first two in the list are “Single” and “DGPS”. Both of these methods use only the pseudorange data and not the carrier phase information. Without the carrier phase information, the precision of these methods is quite low, and probably worse than what the GPS receiver would provide without RTKLIB. In general they are not very interesting other than possibly for some initial debug during setup. The rest of the algorithms can be divided into two groups, differential and PPP. The differential algorithms determine position relative to a known nearby location while the PPP (precise point positioning) algorithms determine absolute position. In general, the data quality of the low cost hardware we are using is only good enough to use with the differential methods and not the PPP methods, so we will focus on those. RTKLIB supports four differential modes: Static, Kinematic, Moving-Base, and Fixed. The kinematic mode is designed to calculate the relative position between a fixed base and a moving rover and that is what we will use. It can also be used with a moving base if we are concerned only with finding the distance between the two and not trying to translate that to a fixed position, and we will use it this way as well.

In my particular application, I am interested only in the distance between two receivers and not in any absolute locations. In this case I will collect data from two low-cost receivers and use one as the base and the other as the rover. In many cases, though, it is useful to use an existing ground station as the base and the low cost receiver as the rover. I use this method for testing and verification, even though I don’t plan to use it in my final solution.

In the US, base data is available online for free from many GPS stations in the CORS network.  Here’s a map of CORS station locations.

cors_map.PNG

For the ground stations I have used, it is generally available online less than an hour after it is taken. It is fairy easy to pull it manually using a user-friendly form from the CORS webpage, or you can use the RTKGET utility in RTKLIB. Be aware that some stations have only GPS data, and some have both GPS and GLONASS data.

2 thoughts on “Base station data for RTKLIB”

  1. Hi Tim,

    I’m attempted to use some CORS NTRIP data and running into an issue that I wonder if you have seen before. I’ve successfully connected to unavco.org and rtk2go base stations. However, I cannot get a successful connection going with WISCORS network – this is a pretty thorough network here in the state of Wisconsin (nearest just a few KM from my house!).
    One curveball may be that my login has a “/” in it, which was a previous error that is said to be resolved.

    The same WISCORS NTRIP connection seemed to be successful in the u-center software.

    Have you seen any similar issues with state networks (assuming you’re not in Wisconsin), or with a user name with “/” in it?

    Also, thank you so much for your site. It has helped me tremendously as I’ve started to experiment with a u-blox receiver and rtklib for some projects! It is awesome that you share your knowledge and work!

    Adam

  2. Hi Tim,
    Thanks for all your development and experiment on RTKlib.

    Sorry I am new to RTKlib and I’d like to ask you some questions with its operation.

    I have one RINEX file with some negative value on pseudorange or carrier phase for some satellites. This RINEX is generated by the moving device.

    Q1. Is it normal to get the negative value on pseudorange or carrier phase?

    Q2. I process this file with RTKlib 2.4.2 with either “Single” or “PPP Kinematic” mode, it could generate the .POS file with plenty of position data. But if using your version “demo5_b33c”, neither of these mode could generate the position data in POS file. So I made a tool to remove all the negative value in RINEX file and replace them with blank space. Then this new file could be processed by your version “demo5_b33c” with either “Single” or “PPP Kinematic” mode. I was guessing it might related to the negative value in my RINEX file that in 2.4.2 it will ignore the negative value in the RINEX file by itself. But I am not quite sure about it so I’d like to ask you about the reason.

    Thank you.
    Ian

Leave a Reply

Your email address will not be published. Required fields are marked *