Annex 3 - Computation Procedure Rinex - v32
Annex 3 - Computation Procedure Rinex - v32
2: 06 August 2021
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
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 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.
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 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.
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.
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
[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.
[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.
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