Table of contents
Analysis of rtklib single point positioning command
Positioning result pos file description and positioning accuracy evaluation
Coordinate transformation XYZ->BLH
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
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.