0% found this document useful (0 votes)
59 views6 pages

Annex 3 - Computation Procedure Rinex - v32

This document describes a procedure for computing raw differences between GNSS code measurements from Rinex files of two receivers at the same site. A script called dclrinexplot.sh runs a program called dclrinex.f to generate raw code differences and statistical values from the Rinex files. It produces output files with the differences and their statistics that can be used to calibrate the receivers.

Uploaded by

Edgar Domínguez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views6 pages

Annex 3 - Computation Procedure Rinex - v32

This document describes a procedure for computing raw differences between GNSS code measurements from Rinex files of two receivers at the same site. A script called dclrinexplot.sh runs a program called dclrinex.f to generate raw code differences and statistical values from the Rinex files. It produces output files with the differences and their statistics that can be used to calibrate the receivers.

Uploaded by

Edgar Domínguez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Annex 3 V3.

2: 06 August 2021

Procedure for computing raw difference of GNSS code measurements


for geodetic receivers
Version 2.1 25/03/2015: Operational version 17/03/2015 of the dclrinex software used by the BIPM
Version 2.2 22/03/2016: Operational version 17/03/2016 of the dclrinex software used by the BIPM
Version 2.3 27/07/2017: Operational version 27/07/2017 of the dclrinex software used by the BIPM; change
of source for the p1c1bias file.
Version 2.4 23/02/2018: Operational version 23/02/2018 of dclrinex + more info
Version 3.0 20/02/2020: Operational version 19/02/2020 of the dclrinex software used by the BIPM,
providing results for GPS, GLONASS, Galileo and BeiDou (developed with help of A. Kuna, IPE, Prag).
Version 3.1 01/04/2021: Operational version 19/01/2021 of the dclrinex software, with more robust
computation of baseline between antenna phase centers.
Version 3.2 02/08/2021: Operational version 12/07/2021 of the dclrinex software, which correctly process
Beidou codes: B1/B2 for BDS2 and B1C/B2a for BDS3. Updated 06/08/2021 for clarifications in the BDS3
codes and in the navigation files..

This document describes the computation procedure to obtain raw differences of the GPS code
measurements from the Rinex files of two geodetic receivers operated in the same site. These raw
differences are subsequently used to compute the results of the calibration trip (See Annex 4). The main
items are highlighted in blue.

A single command runs a script that generates the raw code differences from the Rinex files, along with
plots that display the code differences and their time stability. This single step provides the values and
statistical uncertainties of the raw code differences. The script is described in section A.

[As an option, an additional script is provided that allows verifying the consistency of the code
measurements of the Rinex files of a geodetic receiver with the CGGTTS P3 files (if any) generated by the
same receiver. This script is described in section B.] This will be provided later (reserved for future use).

The scripts and programs are available here. They have been tested but bugs may subsist. Please report any
problem to Gérard Petit (gpetit at bipm.org) and Laurent Tisserand (ltisserand at bipm.org).

A. Script to compute the raw code differences from two Rinex files

A.0. Quick summary

Details on the script and programs can be found in the following sections. For simplicity, the standard
operation of a GPS P1/P2 comparison may be summarized as follows:
 Retrieve the script dclrinexplot.sh and the program dclrinex.f here.
 Retrieve Rinex observation files for the two receivers to be compared, and Rinex navigation files.
 Run the script dclrinexplot.sh <sss1> <sss2> <yydoy> <dur> GPSSOL(see details in section A.2)
 Extract raw code differences and uncertainties from ss1sss2yydoy_dur_P12.pdf, check the file
sss1sss2yydoy_dur.sum (see a description of the files in section A.3), and provide both files.

A.1. Basic principles

A FORTRAN program named dclrinex.f reads GNSS observations from two Rinex files taken by two
stations on the same site. Rinex format up to version 3.04 is supported.
From the GPS observations, it forms the L1, L2 and L5 phase differences, checks for gross phase outliers
and cycle slips by comparing the time evolution of the phases, and solves for the baseline between the phase
centers of the two antennas. If not enough L5 phase data is found, the L5 baseline is taken as the mean of L1
and L2. Similarly, the baseline at any other frequency is taken as the mean of L1 and L2.
Then the program forms the pseudorange differences for a list of codes listed below, accounting for the
geometric effect of the computed baseline. The list of differences is provided along with a statistical analysis
for each code. The list of codes is as follows, with the Rinex 2 code followed by the corresponding Rinex3
codes within parenthesis. An option exists to compute only the codes defined in the CGGTTS V2E format,
outlined in red in the list below.

GPS: C1 (C1C), C2 (C2C-C2L-C2X), C5 (C5I-C5Q,C5X), P1 (C1P-C1W), P2 (C2P-C2W)


GLONASS: C1 (C1C), C2 (C2C), P1 (C1P), P2 (C2P)
NOTE: in all output files and listings, C1-C2 are noted D1-D2, P1-P2 are noted R1-R2.
Galileo: E1 (C1x), E5 (C5x), E6 (C6x), E7 (C7x), E8 (C8x)
NOTE: The notation E5 corresponds to the E5a code.
BeiDou: B1 (C1I-C2I), B2 (C7I), B3 (C6x), B7 (C7D), B8 (C8x)
NOTE: CGGTTS V2E codes are so far defined only for BDS2.
In V3.2 of this document, in anticipation of adding BDS3 to CGGTTS V2E, the BDS3 codes B1C
(C1D-C1P) and B2a (C5x) are added as default CGGTTS codes. The corresponding output files are noted
BC and B5 respectively.

The standard set-up is that the two stations have the same reference clock, but an option exists to process
two stations with two different references.

A.2. Operation

The dclrinex executable should be generated from the FORTRAN source.


A Bash script dclrinexplot.sh runs the dclrinex executable and automatically produces plots with
pseudorange differences (Station 1 – Station 2) and statistical data. It assumes that all useful files are in the
current directory. To use this script you have to install the GMT (Generic Mapping Tools) software which is
available in many Linux repositories. Alternately, it is possible to only use the dclrinex executable that does
not generate the plots.
The script and the executable both need the following arguments (the first four are mandatory and the last
one is optional):

dclrinexplot.sh <sss1> <sss2> <yydoy[.xxxx]> <dur> [<OPTION>]


where:
sss1 = The four or nine-character code of station 1 (traveling system), used to name its Rinex files
sss2 = The four or nine-character code of station 2 (local system), used to name its Rinex files
yydoy = first day of Rinex files (last two digits of year + day of year number)
.xxxx = option to specify precise start time as a fraction of the first day
dur = number of consecutive days to process (maximum advised is 9)
OPTION = P1ISC1: Use C1 measurements instead of P1, for a station with no P1 data
LZYYYY: Use files LZYYYYmj.day to report station 2 to the same reference as station 1.
GPSSOL to process only GPS (default = all four GNSS)
BDSGEO to process BeiDou geostationary satellites (def=no)
NOBDS2 to remove BeiDou 2 satellites (def=process)
NOBDS3 to remove BeiDou 3 satellites (def=process)
NOBDS to remove BeiDou satellites (def=process)
NOGAL to remove Galileo satellites (def=process)
NOGLO to remove GLONASS satellites (def=process)
ALLCOD to process all codes including non CGGTTS V2E (def=only CGGTTS codes)
BIGDIF to write all raw code differences in the output file .dif (def=smaller file)
ELMIxx to remove elev<xx deg (def=05)

If several options are used, they should be entered between “ “.


By default (no option), the two stations have GPS P1 data and use the same reference. CGGTTS V2E codes
for all four GNSS will be processed but the BeiDou geostationary are not considered.

The option of specifying the start time as a fraction of the first day (e.g. 14344.25 to start at 6:00 on doy 344
of 2014) is provided to accommodate possible bad data at startup of the stations.
The needed input files are, for each day to be processed:
 One RINEX observation file per station, with the usual RINEX 2 standard name ssssdoy0.yyo; The long
filename convention of RINEX 3 is also supported. If the option P1ISC1 is used, the RINEX files
should first be corrected for GPS satellite C1P1 biases through the program cc2noncc1.
 One RINEX navigation file with broadcast ephemerides. If GPS only is processed, the GPS-only
brdcDOY0.YYn (which content can be any RINEX navigation file with at least one record per prn) can
be used. If multi-GNSS processing is attempted, brdmDOY0.YYp mixed navigation files, or the
equivalent ‘long filename’ RINEX 3 navigation files must be provided. Note that the navigation files are
searched for in the order brdc RINEX 2, brdm RINEX 2, RINEX 3 and errors may occur if multiple
files exist for the same day.
 If the option LZYYYY is used, one file named LZYYYYmj.day (where YYYY is to be chosen by the
user) linking the reference of Station 2 to that of Station 1.

Three ASCII output files are created: and named sss1sss2yydoy_dur.EXT


where
sss1sss2yydoy_dur.sum Summary with essential information (see example below)
sss1sss2yydoy_dur.lis Long listing including all warning messages (For debugging purposes only)
sss1sss2yydoy_dur.dif List of code differences at the requested interval
Warning: Previous files with the same filename should be removed before running the script!

Output files with names ss1sss2yydoy_dur_Xij.pdf (see example in A3.2 below) contain plots of two codes
differences and Time deviations for the recognized dual-frequency combinations. This includes C12 and
P12 for GPS C1-C2 and P1-P2 respectively, D12 and R12 for GLONASS C1-C2 and P1-P2 respectively,
E15 for Galileo E1-E5, B12 and BC5 for BeiDou B1-B2 (BDS2) and B1C-B2a (BDS3) respectively. If all
codes are processed (option ALLCOD), additional files are produced for each additional code.

In addition, temporary ascii files named ZZ.tmp, medZZ.tmp, tdevZZ.tmp containing the plotted values are
created and overwritten at each run. Here ‘ZZ’ indicates the code and corresponds to the Rinex 2 code, with
the exception of GLONASS for which D1/D2 is used for C1/C2 and R1/R2 is used for P1/P2.

A.3. Example of run and output files

Compute the raw differences of the traveling system BP21 with the local system TS04 for 2 days of
operation starting 11 November 2019 with the line command:
dclrinexplot.sh bp21 ts04 19315 2

A.3.1 Summary file bp21ts0419315_2.sum (Comments are included in red below)

[Running options and output filename]


DCLRINEX Version 12/07/2021
Outfiles = bp21ts0419315_2
Output interval (s) = 300
Code threshold (ns) = 20
Residual threshold (m) =0.050
Process all GNSS
Process only CGGTTS codes
No process BDS GEO satellites
Process BDS2 satellites
Process BDS3 satellites
Min Elevation (deg): 5

[Input filenames, per day, first the Rinex navigation file then the two Rinex observation files]

INPUT FILES

1
The cc2noncc software may be found at http://acc.igs.org/software/CC2NONCC_ESOCv6.5.tar . The C1P1 biases
may be found at ftp://ftp.aiub.unibe.ch/bcwg/cc2noncc/ .
BRDC00IGS_R_20193150000_01D_MN.rnx
Rinex version 3.04
bp213150.19o
Rinex version 3.04
ts043150.19o
Rinex version 3.03
….(list of files continued)

COMPUTATION OF BASELINE
[This section computes the L1/L2/L5 baseline between the two antennas. The results of several steps are
shown, the details of which are not necessary. The section ends with information on the computed L1/L2/L5
baselines where the RMS of residuals should not exceed ~0.01m]
If the message ' WARNING Phase baseline L1 differs from a priori by > 10 cm' is present, it is advised to
contact the BIPM Time department.

Computed baseline L1 (X,Y,Z)/m = -0.147 -0.074 -0.102


RMS of residuals L1 /m = 0.003
Computed baseline L2 (X,Y,Z)/m = -0.176 -0.071 -0.125
RMS of residuals L2 /m = 0.005
Computed baseline L5 (X,Y,Z)/m = -0.174 -0.070 -0.126
RMS of residuals L5 /m = 0.003

Final baseline L1 (X,Y,Z)/m = 3.369 -0.782 -3.154


Final baseline L2 (X,Y,Z)/m = 3.340 -0.780 -3.177
Final baseline L5 (X,Y,Z)/m = 3.343 -0.779 -3.178

COMPUTATION OF CODE DIFFERENCES


[This section provides the results of code differences: First the global average of all individual differences.
Note that one receiver does not provide GLONASS L1P code.]

Total number of code differences = 143744

Global average of individual differences


Code #pts, ave/ns, rms/ns
C1: 41165 -110.458 2.844
C2: 25764 -107.966 2.477
P1: 39023 -110.548 2.150
P2: 38992 -107.834 3.530
D1: 35606 -110.914 4.300
D2: 32568 -111.019 3.262
R1: 0 NaN NaN
R2: 31132 -110.949 3.555
E1: 27153 -110.294 2.536
E5: 27538 -111.199 2.363
B1: 35571 -109.162 3.725
B2: 12411 -107.923 2.647

[Then the results of code differences with 1 point per 300s epoch and per prn]
Number of 300s epochs in out file = 576
Code #pts, median/ns, ave/ns, rms/ns
C1: 4152 -110.338 -110.456 1.491
C2: 2595 -107.912 -107.950 1.394
P1: 3906 -110.442 -110.542 1.174
P2: 3904 -107.809 -107.814 1.958
D1: 3610 -110.878 -110.917 2.127
D2: 3300 -111.002 -111.028 1.651
R1: 0 0.000 NaN NaN
R2: 3147 -110.926 -110.980 1.771
E1: 2752 -110.256 -110.305 1.367
E5: 2784 -111.206 -111.199 1.411
B1: 3617 -109.113 -109.182 2.119
B2: 1254 -107.889 -107.912 1.680
A.3.2 Plot file bp21ts0419315_2_P12.pdf

The plot contains the P1/P2 differences, median values of differences, and Tdevs and is generated by the
script from the files P1.tmp, P2.tmp, medp1.tmp, medp2.tmp, tdevp1.tmp, tdevp2.tmp. Users may produce
other plots if they wish so. Similar plots are provided for all pairs of codes, or individual codes, processed.

A.3.3 Use of the results

To compute the calibration results (Annex 4) it is recommended :


 to use the median values (in dark blue in the example .sum file above, and in the plots) for the
values of the raw differences;
 to estimate the uncertainties as the top of the flicker plateau in the Tdev, or to use 0.1 ns as
default value if the Tdev continuously decreases to lower values.
B. Script to check the consistency of code measurements in the Rinex and CGGTTS files
This section will be finalized later (reserved for future use).

B.1. Basic principles

If a geodetic receiver generates both Rinex and CGGTTS files, the script will transform the Rinex
files into CGGTTS files using the latest version of the R2CGGTTS program issued by the BIPM,
then will compare these CGGTTS files with the ones generated by the receiver and will produce a
summary of the differences.

B.2. Operation

You might also like