How undergraduates get started with GNSS algorithm (2) - GNSS data format and basic concepts in the process of rtklib positioning solution

Table of contents

Analysis of rtklib single point positioning command

rtklib log​

Positioning result pos file description and positioning accuracy evaluation

rtklib interface API

rtkplot uses

Coordinate transformation XYZ->BLH

Other GNSS data downloads

No public


Analysis of rtklib single point positioning command

.\rtklib.exe -x 5 -p 0 -m 15 -n -o D:\\source\\RTKLIB-rtklib_2.4.3\\rtklib\\out.pos D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05o D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05n

rtklib is basically in the form of one configuration plus one value or no value plus one configuration, such as -x 5, -x We can understand from the introduction in the manual that it is used to control the debug trace level, that is, to control The level of log printing; beginners may not have a concept of logs. Generally, logs are divided into several levels such as error/warning/info/debug. For example, the level of error is to only output errors during program running. The abnormal behavior is defined as error, that is, the correctness of the error program operation cannot be guaranteed; and info basically prints some intermediate information during the running process to check whether some intermediate processes are normal;


rtklib log​

Why don't we print all logs?

This is because log output consumes more computing resources, and generally only error-level logs are printed, or even not printed.

There is not much configuration of the command, basically on page 95 of the manual, and more detailed configuration needs to be read from the configuration file. Except for the configuration + parameter of -x 5 or the single configuration of -i, the end of the command is classified as the output observation file. That is, the above

D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05o D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05n

These two are satellite observations and satellite ephemeris, which are the data that we must input for single point positioning. The format of the data is rinex. For an introduction to the rinex format, see the URL Rinex_Baidu Encyclopedia . Simply put, it is a storage format that is convenient for everyone to store and read in a unified manner. The IGS website has various versions of the rinex format https://kb.igs.org/hc/en-us/articles/201096516-IGS-Formats , the data rinex format provided by rtklib is very old, of course rtklib also supports newer ones format. It seems that the ftp of the IGS official website cannot be accessed. I downloaded the rinex3.04 format from the Internet and put it on the network disk. Link: Baidu Netdisk, please enter the extraction code Extraction code: q2ka


Positioning result pos file description and positioning accuracy evaluation

In the previous section, we have already run out the positioning result D:\source\RTKLIB-rtklib_2.4.3\rtklib\out.pos, open it as follows

​The output inside is a data format called NMEA, which is used to record the positioning results and some intermediate information. For detailed information, please Baidu NMEA by yourself, or look at the encyclopedia

NMEA_Baidu Encyclopedia

At first, it was mainly stipulated for GPS, so they all start with GP, such as GPGGA. But later, because of the addition of multiple systems, it was called GN at the beginning, that is, GNGGA in the above picture. However, this multi-system protocol of GN is not clearly defined, and GNGGA is okay and does not bring much ambiguity. Other NMEA formats have no clear definition for multiple systems, so there may be differences in the output of different manufacturers, and attention should be paid to engineering applications.


rtklib interface API

rtklib actually provides an API with an interface, which we can easily use for data processing. The following describes how to use rtkplot.exe to evaluate the positioning results.

Enter the official website of rtklib again and find the github of bin (API), as shown in the figure below:

​Download from github in the same way, and put it under D:\source\RTKLIB-rtklib_2.4.3\bin for decompression. After decompression is completed, it looks like this:

​There is rtkplot.exe we want to use in the picture above. For other programs, you can use Baidu or read the manual.


rtkplot uses

Open rtkplot.exe

​File->open solution-1, find out.pos in the previous article, and open it.

The drop-down box can choose the type of display

Gnd Trk->Display trajectory; Position->Positioning time series; Velocity->Speed; Accel->Acceleration; NSat->Number of satellites; Generally, Position and NSat are more commonly used.

​Other functions can be explored by yourself, such as zooming in/out/putting two files for comparison, etc. The above picture can easily see the deviation of our single point positioning.

But we need to consider a problem, to evaluate the positioning deviation, at least we need to know the true value of the coordinates to evaluate, and compare the two. The following sets the true value of the coordinates.

Select Edit->Options, as follows

​The Coordinate Origin in the above figure is to set the true value coordinates.

Start Pos -> Use the first result of the result as the true value;

End Pos -> last result as true value;

Average Pos->average as true value;

Lat/Lon/Hgt-> is to set the true value coordinates to evaluate the positioning accuracy. Generally, coordinates are included in rinex o files, but they are not necessarily accurate. That is as shown below:

We try to evaluate the result of single point localization using this coordinate as ground truth.


Coordinate transformation XYZ->BLH

But there is a problem, that is, the coordinates in the spatial rectangular coordinate system are given in the rinex file, and the input requires the latitude and longitude height in the geodetic coordinate system, which involves the problem of coordinate conversion. If you don't understand the concepts of these two coordinate systems, please turn to the book or search online. In "Geodesy" or some books related to GPS navigation, there will be detailed explanations.

Here is a simple way to use rtklib bin conversion. There are also related conversion codes in the rtklib source code, which can be learned by yourself, or will be discussed in subsequent chapters.

Find bin->rtkpost.exe to open, Options->Setting1->kinematic.

Then select Positions->Base Station, select XYZ-ECEF, enter the XYZ coordinates in rinex, and then select Lat/Lon/Height(deg/m) in the drop-down box, and the coordinate conversion will be performed automatically.

Input the converted coordinates into rtkplot.exe, and the real positioning accuracy can be displayed. The result is as follows:


Other GNSS data downloads

Here I recommend a GNSS data ftp of Cuitin University, the data is relatively complete, and there are many types of receivers. Many articles that do short baselines or deviations between systems like to use this data.

Data introduction: IGS Multi GNSS Experiment, research experiments, GNSS - Global Navigation Satellite Systems Research Center | Curtin University, Perth, Australia , there is an ftp address in the introduction, I will also post it here, http://saegnss2.curtin.edu. au/ldc/rinex3/.

The observed value data downloaded by ftp is in crx format, you need to use a tool to convert it to rinex, the tool website CRX2RNX , see the program documentation provided below for the usage method, or refer to this simple blog CDDIS official website to convert the crx file to Rinex3.0 method _Eighteen and her blog - CSDN blog .

At the same time, I downloaded the data and ephemeris of the CUT2 station of 001 in 2022, and did a single point positioning. The running status is as follows:

And using the average value as the true value, the positioning result map is drawn:

Put the cuitin data and conversion program I downloaded on the Baidu network disk, and download it by myself.

Link: Baidu Netdisk, please enter the extraction code Extraction code: uf7p


No public

Sometimes codes or resources are placed on the personal official account. If there is a problem, reply in the background of the official account, and the answer is faster. Welcome to pay attention to GNSS and automatic driving.

Guess you like

Origin blog.csdn.net/dong20081991/article/details/126274393