GFZRNX Users Guide
GFZRNX Users Guide
Version 2.0.2
Thomas Nischan
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
Content - GFZRNX - Users Guide
1. Overview 5
1.1 Welcome 5
1.4 Examples 8
1.5 Follow us 9
2. Basics 10
2.1 Download 10
2.2 Installation 11
2.2.1 UNIX 11
2.2.2 MS Windows 11
2.3 Usage 15
2.3.1 Unix 15
2.3.2 Windows 16
2.4.2 Input 21
2.4.3 Output 21
- 2/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
Content - GFZRNX - Users Guide
3. Tasks 28
- 3/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
Content - GFZRNX - Users Guide
- 4/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
1. Overview
1. Overview
1.1 Welcome
Welcome to the online documentation of gfzrnx. The latest version of this documentation can be found via the following links.
https://gnss.git-pages.gfz-potsdam.de/gfzrnx
https://gnss.git-pages.gfz-potsdam.de/gfzrnx/pdf/GFZRNX_Users_Guide.pdf
- 5/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
1.2 Scope of Operation
• Observation data
• Navigation data
• Meteorological data
• data sampling
• PRN renaming
See also the Rinex Standard Extensions/NonConformity section for further information.
- 6/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
1.3 End User License Agreement
The software gfzrnx - RINEX GNSS Data Conversion and Manipulation Toolbox can be used under the following licenses:
- 7/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
1.4 Examples
1.4 Examples
You can always find examples in boxes with coloured background like the one below.
Example Box
All given examples are valid for UNIX-based systems like Linux, SunOS or OSX. In the example boxes you will find gfzrnx used as a
synonym for the operating system-dependent executable (gfzrnx_lx64, gfzrnx_osx64, ...).
- 8/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
1.5 Follow us
1.5 Follow us
1.5.1 Documentation (HTML)
https://gnss.git-pages.gfz-potsdam.de/gfzrnx
https://gnss.git-pages.gfz-potsdam.de/gfzrnx/pdf/GFZRNX_Users_Guide.pdf
There is a mailing list [email protected], that will be used for information transfer (new features, versions, etc.). It can also
be used for questions not covered by the documentation.
One can join the mailing list by sending an empty email to:
After getting a Confirmation Request email, please don't forget to reply to it. This reply is mandatory to finish your list joining.
One can drop out of the mailing list sending an empty email to:
For bug reports or comments please use the mailing address: [email protected] Please use the following procedure for
bug reports:
• If you are using the latest version, please provide the complete command line you have used.
• attach your input file(s) to your e-mail or provide a link for the input data download. Shrink the input file(s) if possible.
- 9/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2. Basics
2. Basics
2.1 Download
One can download the software via
https://gnss.gfz-potsdam.de/services/gfzrnx
You will find an official version with a version number and a development version (DEVEL) with ongoing bug fixing and new
features.
- 10/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.2 Installation
2.2 Installation
The software consists of a single executable (operating system dependent) to be used at the command prompt of a Terminal
window or in batch scripts.
2.2.1 UNIX
Put the executable to a directory of the search path $PATH. Simply run the following command to show the elements of your
search path $PATH. This search path can differ depending on your overall setup.
Copy the executable into a directory covered by your system search $PATH variable and create a symbolic link gfzrnx for the
ease of use. Here is an example using e.g. /usr/local/bin and the downloaded executable gfzrnx_osxarm64-1.16-8154 :
The which command should show up with the search fullpath of the gfzrnx-command.
2.2.2 MS Windows
Create a symbolic link gfzrnx.exe in your C:\Windows to the real executable location (e.g. c:
\Users\user\gfzrnx_1.16-8154_win10.exe). This allows you now to use the short command name gfzrnx.exe or simply gfzrnx .
- 11/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.2.2 MS Windows
- 12/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.2.2 MS Windows
- 13/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.2.3 Temporary Directory
UNIX /tmp
If this is not an option for you, you can specify an alternative temporary directory via the environment variables $TEMP or $TMP
on all platforms.
- 14/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3 Usage
2.3 Usage
gfzrnx is a command line executable. It can be used in a terminal window or batch scripts. It has NO graphical interface!
2.3.1 Unix
For Unix (Linux, MacOS, SunOS) users it can be run in any terminal application or used in shell scripts...
- 15/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3.2 Windows
2.3.2 Windows
For MS Windows you can use e.g. cmd.exe, powershell.exe, or create and execute batch scripts (whatever.bat).
Here, a small batch file example.bat is shown. The input data are sampled at 30s time interval.
- 16/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3.3 Fast Help
Simple usage information you can get via command line parameter -h or -help.
./gfzrnx_lx64 -h
SSSSMRCCC_S_YYYYDDDHHMM_NNN_FRQ_TT.FMT
SSSSMRCCC_S_YYYYDDDHHMM_NNN_TT.FMT
splice mode:
------------
[-nomren23 <[s,][mr,][iso]>] - fast nominal output file name for RINEX-2 to RINEX-3 file renaming.
RINEX-3 output file name is written to STDOUT.
- 17/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3.3 Fast Help
from the file header (sat. system(s), data frequency) has to be given via the
command line parameter (see document for details).
[-vnum m.nn] - change header VERSION number and set output RINEX version
(only the version number is changed / output RINEX version is the highest supported one)
[-pr3rx2 <list>] - comma separated list of list of signal priorities used for rinex 3 -> 2
conversion
to overwrite the standard settings, see documentation for details.
S:n[n...]:STRING
G:12:PWCSLXYN,G:5:QXI,R:12:CP
[-errlog <file>] - store (append) error logs to a file (std. print to STDERR)
[-smp_nom <num>] - sampling rate (num) in sec to be used for automatic file naming
[-ot <list>] - obs. types list to be used (pattern matching). the list can be given
[--obs_types <list>] globally or sat. system dependent. the sat. system dependent record
replaces fully a global one.
L1,L2,C1,C2,P1,P2
L1,L2,C1,C2,P1,P2+C:L1,L7,C1,C7+G:L1C,L2W,C1,C2
- 18/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3.3 Fast Help
[-ns <type>] - output order of navigation records. type = [time|prn] (std. prn)
[--nav_sort <type>] time - sort by time,prn
prn - sort by prn,time
[-nt <type-list>] - + separated list of nav. selection records (version >= 4).
[-nav_type <type-list>] record = [<sat.system(s)>::]<nav.type(s)>:[<message.type(s)]
type(s) are separated via .
[-fdiff] - compare two rinex files of the same format (major version id.)
the two input files have to be given via -finp
[-met_nwm] - edit a rinex meteo file(1) by the means of a reference NWM file(2).
the two input files have to be given via -finp.
the second file contains reference NWM data and check limits
(can be used in conjunction with -obs_types, -ot)
[-site <sitename>] - use the 4- or 9-char sitename for output filename via automatic file naming
or for header editing settings extractions (crux)
or for "MARKER NAME" in case it is missing.
- 19/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.3.3 Fast Help
[-sei <in|out>]
[--strict_epoch_interval <in|out>] - output epoch interval according to in/output file name
(only valid in case of RINEX conform file names)
[try_append <sec>] - try append mode to fasten the splice process with
smallest nominal file duration (seconds) of part files
all these date types can be combined via '_' with a time string of type:
hhmmss
hh:mm:ss
----------------------------------------------------------------------------------------------
© Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences
Section 1.1 Space Geodetic Techniques
see https://gnss.gfz-potsdam.de/services/gfzrnx
VERSION: gfzrnx-2.00-8088
- 20/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.4 Data Input/Output
gfzrnx supports all versions 2.x, 3.x, 4.x formats as input. The output format will be only the latest standard format of the major
formats 2, 3 or 4.
2 2.11
3 3.05
4 4.00
2.4.2 Input
The input of a single file can be done via the -finp command line parameter or via STDIN.
2.4.3 Output
The standard output channel is STDOUT. The output to a dedicated file can also be done via the -fout command line parameter.
The program rnx2crx is here the Hatanaka RINEX compression and gzip a common file compression program.
By default, log messages (Notices, Errors, Warnings) are sent to STDERR. One can store the log messages into a file using the -
errlog command line parameter.
- 21/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5 Supported File Names
Label Description
YY 2-digit year 15
- 22/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5.2 RINEX-3 naming convention
Examples
• daily file
pots0070.15o
• hourly files
SSSSMRCCC_S_YYYYDDDHHMM_NNN_TT.FMT[.CMP] POTS00DEU_R_20150070000_01H_MN.rnx.gz
M Monument number 0
R Receiver number 0
S data source R
HH hour 00
MM minute 00
TT data type MO
For an automatic output file naming, one can use the ::RX2::, ::RX3:: or RX4:: parameter for the -fout command line switch.
- 23/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5.3 Automatic Output File Naming
The 4 character site name is taken from the "MARKER NAME" header record. If the site name is not given in the file header, it is
taken from the input file name (if standard file name). In all other cases, it has to be provided via the -site command line
parameter.
This works if the header MARKER NAME fully matches the RINEX-3 "SSSSMRCCC" naming style. For a 4-character MARKER
NAME one has to provide at least the marker-, receiver numbers, and the ISO country code in the command line. If no station
information is found, the full information has to be given on the command line.
The following examples will give the same result for a 4-char header. MARKER NAME is set. The parameters order is not relevant.
The default data source identifier is R (Receiver). If one needs the S (Streaming), simply add it to the ::RX3:: sub-information.
Besides the naming definitions on the command line (-fout ::RX3::00,DEU) multiple site identifier definitions can be provided via
the -4to9 command line parameter providing a simple file with the naming information.
The -4to9 input file (e.g.) must have the following structure:
# name mr iso
0001 pots 00 DEU
0002 brux 00 BEL
0003 tash 00 UZB
...
A correct numbering can be ignored if it is out of interest to you. In this case, you can use the same number for all stations.
# name mr iso
1 pots 00 DEU
1 brux 00 BEL
1 tash 00 UZB
...
An up-to-date 4to9 configuration file for diverse networks like IGS, MGEX, EUREF, TIGA and others can be derived from GFZ's
- 24/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5.3 Automatic Output File Naming
For more details see the SEMISYS api and download page http://semisys.gfz-potsdam.de/semisys/download.
By default, the start epoch and file duration are used to create the epoch parts of the output name. To force the automatic file
naming to a distinct type ::RX2:: can be extended by the letters L, S or D (Long, Short, Day) to ::RX2L::, ::RX2S:: or ::RX2D::.
The following examples illustrate the standard behavior for a station ABCD with start epoch 2015-123 03:05 and different
durations.
The cases ::RX2L::, ::RX2S:: allow storing not only hourly or sub-hourly files. For durations larger than 1 hour, one can use it to
store sub-daily files too. In this case, the file epoch indicates the start time (hour, minute) only. In the case of sub-hourly, file
names with nominal begin epochs ( -epo_beg / -sei in ) and the nominal duration -d 900 are used by default. For other time
intervals, the duration ( -d ) has to be given.
If the data start minute is 17 and the duration e.g. 300 s the following commands give different output file names:
- 25/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5.3 Automatic Output File Naming
For the RINEX-3 file renaming, the following rules are valid for all observation types (O/N/M). The example observation files in the
table below with the following characteristics are used to illustrate the (re)naming process.
Using the following basic command, you will get file names containing the real values derived from the file content.
By default, the real beginning epoch and duration information based on the file content are used:
RINEX-2 RINEX-3
pots0070.15o POTS00DEU_R_20150070112_23H_30S_MO.rnx
pots007c.15o POTS00DEU_R_20150070213_42M_30S_MO.rnx
pots007c30.15o POTS00DEU_R_20150070233_12M_01S_MO.rnx
Similar to the RINEX-2 file naming, to get nominal beginning and duration information in the RINEX-3 file name, additional
command line parameters are needed.
The general method is to give the beginning epoch and the duration information via the -epo_beg and -d command line
parameters.
Assuming 30 s sampling rate and GPS-only data, the output file names will be:
ABCD05DEU_R_20152240200_01H_30S_GO.rnx, POTS00DEU_R_20150070000_01D_30S_GO.rnx.
In the case of nominal standard RINEX input file names you can get nominal RINEX-3 output file names, providing the -sei in
command line parameter (strict epoch interval), which uses the epoch and implicit duration information from the input file name. If
no implicit duration information is given (RINEX-2 11.3 file names) it has to be provided in addition via the -d (duration) command
line parameter (otherwise the real duration is used). This can be useful in renaming scenarios.
- 26/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
2.5.3 Automatic Output File Naming
If generating a mixed broadcast navigation file with automatic file naming (::RX3::) in an ongoing accumulation mode one should
use the -nav_mixed command line parameter to ensure that a _MN file name is generated, nevertheless a single satellite system is
found in the given file(s).
Remark
In the file split mode, the duration information will be nominal (split interval).
The nominal mode has to be used with caution, especially in renaming operations.
Warning
Using the NOMINAL mode gfzrnx does not only (re)name the given output files. It ensures that the file content fits to the file name. This
way, extra observations are removed!
For navigation files, this nominal interval can be extended via the -enb command line parameter (extend navigation boundaries).
See the Operation/Tasks - Rinex File Epoch Interval section.
- 27/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3. Tasks
3. Tasks
• data sampling
• PRN renaming
To get the full available checks via data input, one has to use the -chk option, to make sure that the output data are formally correct. If
you are sure that your files are correct, and you want to do some data manipulation only, you can omit this command line parameter to
speed up the work.
RAM utilisation
Please keep in mind that compared to other tools, working on a single epoch level, gfzrnx stores the whole RINEX data set in the
computer's memory before output. This leads to some performance degradation but offers complete data handling opportunities.
The standard output format of gfzrnx is at the moment the latest supported version of major version RINEX-3 (e.g. 3.05).
RINEX-4 support
The major version RINEX-4 is supported. Use the -vo 4 command line parameter to force the RINEX-4 file output.
- 28/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.2 RINEX File Check and Repair
With -chk all formal checks are done on the input file.
The -kv (keep version) ensures the same output version as the input file (standard output format is the latest supported format).
• Update of observation types to really existing ones, overall empty observation types are removed.
• # / TYPES OF OBSERV
• PRN / # OF OBS
• # OF SATELLITES
• INTERVAL
C 10 C1I C6I C7I D1I L1I L6I L7I S1I S6I S7I SYS / # / OBS TYPES
E 13 C1X C5X C7X C8X D1X L1X L5X L7X L8X S1X S5X S7X S8X
SYS / # / OBS TYPES
G 20 C1C C2W C2X C5X D1C D1P D1W D2W L1C L1P L1W L2W L2X
SYS / # / OBS TYPES
L5X S1C S1W S2C S2W S2X S5X SYS / # / OBS TYPES
J 19 C1C C1X C1Z C2X C5X C6L D1C
L1C L1X L1Z L2X L5X L6L SYS / # / OBS TYPES
S1C S1X S1Z S2X S5X S6L SYS / # / OBS TYPES
R 13 C1C C1P C2C C2P D1C L1C
L1P L2C L2P S1C S1P S2C S2P SYS / # / OBS TYPES
S 4 C1C D1C L1C S1C SYS / # / OBS TYPES
76 # OF SATELLITES
C01 2863 2863 2863 2863 2863 2863 2863 2863 2863PRN / # OF OBS
2863 PRN / # OF OBS
...
C14 1365 1363 1363 1365 1365 1363 1363 1365 1363PRN / # OF OBS
1363 PRN / # OF OBS
E11 900 895 893 899 900 900 895 893 899PRN / # OF OBS
900 895 893 899 PRN / # OF OBS
E19 1605 1601 1601 1603 1605 1605 1601 1601 1603PRN / # OF OBS
1605 1601 1601 1603 PRN / # OF OBS
G01 1189 1148 1181 1181 1189 1189PRN / # OF OBS
1148 1181 1181 1189 1181 1148PRN / # OF OBS
1181 1181 PRN / # OF OBS
...
G32 1247 1241 1247 1247PRN / # OF OBS
1241 1247 1241PRN / # OF OBS
PRN / # OF OBS
J01 2863 2863 2863 2863 2863 2863 2863 2863 2863PRN / # OF OBS
2863 2863 2863 2863 2863 2863 2863 2863 2863PRN / # OF OBS
2863 PRN / # OF OBS
R01 713 713 709 706 713 713 713 709 706PRN / # OF OBS
713 713 709 706 PRN / # OF OBS
- 29/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.2.1 Navigation Data Epoch Filter
...
R24 695 695 695 695 695 695 695 695 695PRN / # OF OBS
695 695 695 695 PRN / # OF OBS
S26 1973 1973 1973 1973 PRN / # OF OBS
...
S37 2863 2863 2863 2863 PRN / # OF OBS
30.000 INTERVAL
2014 8 17 0 0 0.0000000 GPS TIME OF FIRST OBS
2014 8 17 23 59 30.0000000 GPS TIME OF LAST OBS
...
The repair of a file is different concerning RINEX-2 and RINEX-3(4,...). Data values are not corrected! Via the repair operation,
formally corrupt observation parts are omitted only.
• RINEX-2
Use the -nav_epo_filter command line parameter to filter the navigation data input via epoch record checks. In this case, only
nominal epochs are passed to the output file. Excluded records are given in the log table. Only epoch minutes and hours are
checked at the moment. The following table shows valid hours and minutes per satellite system:
C 0 1
E 0,10,20,30,40,50 1
G 0 2
R 15,45 1
J 0 1
RINEX-meteo site data can be checked against a reference RINEX-file created from e.g. Numerical Weather Model (NWM) data
(predicted or reprocessed). Two input files have to be given via the -finp command line parameter. The first file is the one to be
checked, the second file is the reference file to be checked against.
The check limits for the different observation types are taken from the reference file "SENSOR MOD/TYPE/ACC" header records.
Here is an example:
Observations that exceed the difference limits are eliminated and don't go to the output file.
- 30/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.2.2 Meteo Data check/edit against NWM-Data
By default, all observation types found in the reference file are used for the differences checks. To limit the tests to single
observation types, they can be given via the -obs_types or -ot command line parameters.
... | MESSAGE
...-+-----------------------------------------------------------...
... | MET_NWM: ignoring checks for obs. type -> PR
| MET_NWM: DELETED 2020-01-01 00:05:00.0000000 HR - -81.4( 97.4) exceeds limit of 100.0(178.8)
| MET_NWM: DELETED 2020-01-01 00:15:00.0000000 TD - 29.0( 2.6) exceeds limit of 10.0(26.4)
...
- 31/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.3 RINEX File Statistics / Information
The -stk_only or -stk_obs outputs observations statistics information to STDOUT. Only the nonzero (nonempty) data values are
counted.
You can store it into a file using the -fout command line parameter.
STP sin1 C TYP C1I C6I C7I D1I L1I L6I L7I S1I S6I S7I
STO sin1 C C01 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863
STO sin1 C C02 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863
...
STO sin1 C C14 1365 1363 1363 1365 1365 1363 1363 1365 1363 1363
STP sin1 E TYP C1X C5X C7X C8X D1X L1X L5X L7X L8X S1X S5X S7X S8X
STO sin1 E E11 900 895 893 899 900 900 895 893 899 900 895 893 899
STO sin1 E E12 1230 1230 1230 1230 1230 1230 1230 1230 1230 1230 1230 1230 1230
STO sin1 E E19 1605 1601 1601 1603 1605 1605 1601 1601 1603 1605 1601 1601 1603
STP sin1 G TYP C1C C2W C2X C5X D1C ... L1C L1P L1W L2W L2X L5X S1C ...
STO sin1 G G01 1189 1148 1181 1181 1189 ... 1189 0 0 1148 1181 1181 1189 ...
...
STO sin1 G G10 886 881 0 0 886 ... 886 9 9 881 0 0 886 ...
...
STO sin1 G G32 1247 1241 0 0 1247 ... 1247 0 0 1241 0 0 1247 ...
STP sin1 J TYP C1C C1X C1Z C2X C5X C6L D1C L1C L1X L1Z L2X L5X L6L ...
STO sin1 J J01 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863 2863 ...
STP sin1 R TYP C1C C1P C2C C2P D1C L1C L1P L2C L2P S1C S1P S2C S2P
STO sin1 R R01 713 713 709 706 713 713 713 709 706 713 713 709 706
STO sin1 R R02 1143 1143 1141 1141 1143 1143 1143 1141 1141 1143 1143 1141 1141
...
STO sin1 R R24 695 695 695 695 695 695 695 695 695 695 695 695 695
The -stk_epo command line parameter can be used to create an ASCII time plot to show the availability of observations per PRN
(std.) and/or observation type.
In the simplest mode, one has to provide the time bin to be used in seconds (here 1800).
- 32/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.3.2 ASCII Time plot of Observables
A timeplot per observation type is available, providing the [:[prn/otp]] parameter list. This can be combined with other
parameters like -smp, -satsys, --obs_types, -prn, -no_prn etc.
- 33/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.3.2 ASCII Time plot of Observables
Using an editor that is able to scroll horizontally through a text file (nedit for Unix, or Notepad++ for MS Windows)one can
visually check data availability details down to a single observation in case of problems. Here is an example of an input file with 5 s
sampling rate:
- 34/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.4 RINEX File Format Conversion
The used observation types mapping is hard-coded in**gfzrnx**. It can be shown up via the following command:
gfzrnx -out_obs_map
gfzrnx -out_obs_map -fout obs_types_map.txt
The information in columns 2, 3 and 4 is treated as a comment only and is not used.
Remark
During the conversion process, the data values - observation, loss of lock indicator (LLI), signal strength indicator (SSI) - are left as they
are. The LLI meaning differs between versions 2 and 3 or 4 and the Interpretation of bits 1 and 2 has to be used with caution!
RINEX-2 to RINEX-3 or 4
Please use this conversion only if you are sure that the output files are usable in the environment the data are supplied to! The
output format for this conversion/transition is RINEX-3.01 to be standard-compliant. The 2-characters observation types are kept as
they are except the code observations for GPS and GLONASS (see below).
or
or
- 35/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.4.1 RINEX OBS File Format Conversion (4, 3, 2 to 2, 3, 4)
A hard-coded observation types mapping for the GPS and GLONASS code observations is implemented:
G P1 C1W
G C1 C1C
G P2 C2W
G C2 C2C
R P1 C1P
R C1 C1C
R P2 C2P
R C2 C2C
This is used because both Px and Cx code types are mapped to the single Cx? RINEX-3 or 4 code type.
RINEX-3 or 4 to RINEX-2
Use the --version_out or -vo command line parameter to define the RINEX format version of the output file.
In the RINEX-3 or 4 format, one can have multiple observation types per data type and frequency (tracking mode or channel
attribute). For a specific observation type selection for the format conversion, you can use the observation types selection feature
in addition. Add the -ot command line parameter to the upper command like in the example below to select the RINEX-3 or 4
observation types to be converted and to get a distinct conversion.
-ot G:C1W,L1W,D1W,S1W+C2W,L2W,D2W,S2W+R:C1P,L1P,S1P,D1P,C2P,L2P,S2P,D2P
- 36/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.4.1 RINEX OBS File Format Conversion (4, 3, 2 to 2, 3, 4)
By default, the following signal priorities per frequency and satellite system are used for the RINEX-3 or 4 to RINEX-2 conversion:
G - GPS 1 PRWCSLXYMN
G - GPS 2 PRWCSLXYMN
G - GPS 5 IQX
R - GLO 1 PC
R - GLO 2 PC
R - GLO 3 IQX
R - GLO 4 ABX
R - GLO 6 ABX
E - GAL 1 BCX
E - GAL 5 IQX
E - GAL 6 BCX
E - GAL 7 IQX
E - GAL 8 IQX
J - QZS 1 SLXCZ
J - QZS 2 SLX
J - QZS 5 IQX
J - QZS 6 SLX
C - BDS 1 IQX
C - BDS 2 IQX
C - BDS 5 DPX
C - BDS 6 IQX
C - BDS 7 IQX
C - BDS 8 DPX
I - IRN 5 ABCX
I - IRN 9 ABCX
S - SBS 1 C
S - SBS 5 IQX
- 37/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.4.1 RINEX OBS File Format Conversion (4, 3, 2 to 2, 3, 4)
The observation code's priority is LCDS: phase, code, doppler and signal strength. It defines the basis for the selection of the other
observation types of that frequency, if existing. You can update the internal signal priority list by providing update records via the
-pr3rx2 command line parameter. According to the upper table, it should consist of a comma-separated list of a satellite system
identifier, colon, frequency number, colon, and the signal priority string. Observation types not covered by the priority string are
simply ignored via conversion. See the following example:
-pr3rx2 G:5:QXI,I:59:CXAB
The same priority string per satellite system for different frequencies can be given combined.
The observation types per satellite system used for the format conversion can be found as COMMENTs in the RINEX file header.
*********************************************************** COMMENT
* WARNING - FORMAT CONVERSION * COMMENT
* ------------------------------------------------------- * COMMENT
* The data values: observation, loss of lock (LLI) and * COMMENT
* signal strength (SSI) indicators are left as they are. * COMMENT
* The LLI meaning differs between versions 2 and 3 * COMMENT
* and the Interpretation of bit 1 and 2 has to be * COMMENT
* used with caution !!! * COMMENT
*********************************************************** COMMENT
COMMENT
RINEX 3 -> 2 TYPE CONVERSION DETAILS: COMMENT
------------------------------------- COMMENT
C C1I -> C1 COMMENT
C C6I -> C6 COMMENT
C C7I -> C7 COMMENT
C D1I -> D1 COMMENT
C L1I -> L1 COMMENT
C L6I -> L6 COMMENT
C L7I -> L7 COMMENT
C S1I -> S1 COMMENT
C S6I -> S6 COMMENT
C S7I -> S7 COMMENT
------------------------------------- COMMENT
E C1X -> C1 COMMENT
E C5X -> C5 COMMENT
E C7X -> C7 COMMENT
E C8X -> C8 COMMENT
E D1X -> D1 COMMENT
E L1X -> L1 COMMENT
E L5X -> L5 COMMENT
E L7X -> L7 COMMENT
E L8X -> L8 COMMENT
E S1X -> S1 COMMENT
E S5X -> S5 COMMENT
E S7X -> S7 COMMENT
E S8X -> S8 COMMENT
------------------------------------- COMMENT
G C1C -> C1 COMMENT
G C2X -> C2 COMMENT
G C5X -> C5 COMMENT
G D1C -> D1 COMMENT
G L1C -> L1 COMMENT
G L2W -> L2 COMMENT
G L5X -> L5 COMMENT
G C2W -> P2 COMMENT
G S1C -> S1 COMMENT
G S2W -> S2 COMMENT
G S5X -> S5 COMMENT
...
- 38/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.4.2 RINEX NAV File Format Conversion (3.04/3.05)
REMARK
To avoid the selection of an observation type with sparse observations using Signal Priorities mode, it can be useful to add the -
rsot command line parameter (remove sparse observations types) in addition.
There is a significant change in the GLONASS broadcast records in the RINEX version 3.05 (one additional record).
The GFZRNX output version is always the highest supported one. For the RINEX-3 standard output, a "dummy" record is added to
be 3.05 standard compliant.
If you can't use this latest 3.05 version because e.g. your software does not support this, you can create a 3.04-formatted file via
the -vo , -version_out command line parameters.
- 39/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.5 Rinex File Nominal Renaming Support
A fast file name conversion of RINEX-3 or 4 files with RINEX-2 style file names to RINEX-3 or 4 style file names is supported. It can
be used without reading the input files, using all necessary information from the RINEX-2 style file name and from information
provided via command line parameters (useful for compressed files).
For uncompressed observation files, including hatanaka compressed files, some required information can also be derived from the
file header.
The renaming support can be invoked via the -nomren23 (nominal rename) command line parameter. The output is the RINEX-3
file name (printed to STDOUT) which can be used for renaming operations. The input can be a full path, the output is the file name
only.
Using -nomren23 command line parameter the following additional information s,mr,iso has to be provided via command line
because they are not available from the RINEX-2 style file name or RINEX file header.
s data source R or S R
mr marker/receiver number mr 00
Via the -4to9 command line parameter, one can provide multiple site identifier information from a provided configuration file. See
the Automatic Output File Naming section for details on -4to9 .
- 40/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.5.1 RINEX File Nominal Renaming Support (2, 3 or 4)
There are default mappings from the extension letter to the RINEX-3 data type identifier:
o _MO.rnx
d _MO.crx
n _GN.rnx
g _RN.rnx
l _EN.rnx
c _CN.rnx
q _JN.rnx
j _JN.rnx
h _SN.rnx
p _MN.rnx
m _MM.rnx
To support additional extensions, these default mappings can be overwritten or extended via the -extsysdt23 command line
parameter, providing a comma-separated list of extension letter-colon-data type pairs.
Meteo- and Navigation files don't have additional information which can be derived from the file header.
For observation files, the data frequency and satellite system can be derived from the "INTERVAL" and
"SYS / # / OBS TYPES" RINEX header records. For compressed files, this information can be provided via the command line
parameters -smp and -satsys .
- 41/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.5.1 RINEX File Nominal Renaming Support (2, 3 or 4)
R 8 C1C C1P C2C C2P L1P L2P S1P S2P SYS / # / OBS TYPES
10.000 INTERVAL
Sub-daily files need the additional duration information if it is not 15 minutes (std.). It can be given via the -d , -duration
command line parameter.
Remark
- 42/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.6 RINEX File Splice
For bash command shell, it can be shortened using filename expansion options.
The input file order is derived automatically. In case of overlapping input files, the file with fewer epochs is preferred. This will allow
the splice of resubmitted files into an existing "big" file. All output data records are stored in RAM to allow a full data statistics
output in the header while reading any input file only once. The output data types are derived from input statistics. This allows
omitting "empty" observation types.
Via the -splice_memsave just the pure line-by-line output data block is stored in RAM for a fast output after the RINEX output header
is written. Empty observation types are left in the output files because the observation types from the input header information are
used to derive the output observation types.
- 43/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.6.2 Navigation Data Splice Specials
Via the -splice_direct command line parameter, an epoch by epoch output of the observations data can be reached, which leads
to a small RAM utilization. Using this mode, a full data statistics header output is impossible.
The -try_append n command line parameter initiates an initial check over all input files if append to the first file is possible. This
can be useful in environments where e.g. a daily file is accumulating e.g. hourly files with time. In case of the append mode, the
process will be significantly faster. The parameter of -try_append is the shortest nominal file duration (s)of the part files to be
appended (e.g. 3600 for hourly files or 900 for 15-min files).
The navigation data splice is based on a majority filter for redundant navigation data records. There is a statistics table in the file
header giving information about how many files contributed to the outputs per PRN. This can be useful in the case of creating
navigation summary files for e.g. one day.
The header statistics table can be avoided via the -no_nav_stk command line parameter.
B_TOP COMMENT
B_TOP ---------------------------------------------- COMMENT
B_TOP # of NAV. EPOCHS based on # of FILE CONTRIB. COMMENT
B_TOP ---------------------------------------------- COMMENT
B_TOP COMMENT
B_BEG C COMMENT
B_HD BTP C MTP =1 `<5 <10 <15 <25 <50 >`=50 #EPO COMMENT
B_LN --- C ----------------------------------------------- COMMENT
B_STK EOP C19 CNVX . . 1 . . . . 94 COMMENT
B_STK EOP C20 CNVX . . 1 . . . . 72 COMMENT
...
B_STK EOP C45 CNVX . 1 . . . . . 75 COMMENT
B_STK EOP C46 CNVX 1 . 1 . . . . 106 COMMENT
B_STK EPH C01 D2 1 13 11 . . . . 25 COMMENT
B_STK EPH C02 D2 1 . 12 12 . . . 25 COMMENT
...
B_STK EPH C56 D1 . 1 . . . . . 1 COMMENT
B_STK EPH C59 D2 13 12 . . . . . 25 COMMENT
B_STK EPH C60 D2 1 24 . . . . . 25 COMMENT
B_STK ION C01 D1D2 1 . . . . . . 2 COMMENT
B_STK ION C02 D1D2 7 8 . . . . . 16 COMMENT
...
B_STK ION C59 D1D2 8 . . . . . . 10 COMMENT
B_STK ION C60 D1D2 4 . . . . . . 4 COMMENT
B_STK STO C01 D1D2 1 . . . . . . 2 COMMENT
B_STK STO C02 D1D2 1 . . . . . . 16 COMMENT
...
B_STK STO C46 D1D2 1 2 . . . . . 15 COMMENT
B_STK STO C59 D1D2 2 . . . . . . 10 COMMENT
B_LN --- C ----------------------------------------------- COMMENT
B_SUM EOP C CNVX 2174 COMMENT
B_LN --- C ----------------------------------------------- COMMENT
B_SUM EOP C 2174 COMMENT
- 44/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.6.2 Navigation Data Splice Specials
...
Use the -nav_epo_filter command line parameter to filter the navigation records. Only records with standard epochs are left in
the output file.
Use the -nav_epo_strict command line parameter to filter the navigation records. Only records with nominal epochs are left in the
output file.
Use the -nav_latest command line parameter to filter the navigation records. Only the latest record per PRN is left in the output
file. In this case, the header statistics tables are omitted and the default prn output sorting is used.
With Rinex version 3.05 an additional record was introduced to the GLONASS navigation data block.
Use the -vo 3.04 command line parameter to output version 3.04 omitting the additional GLONASS record to be compatible with
your existing navigation data environment.
Remark - Splice/Split
It is possible to combine the splice and split operation of observation data via a single command line call.
Here is an example of splicing e.g. 15 min input files and splitting to hourly files keeping the version in output.
This can be additionally combined with data sampling, satellite system- and observation type selection etc..
- 45/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.6.2 Navigation Data Splice Specials
On UNIX systems, the file name expansion is usually done by the calling command shell. Please adopt the filename expansion options
like ? , * , [] , etc. to your used command shell. The [a-x] or {a...x} can be used too, depending on the used command shell.
MS Windows does not support the file name expansion in its command line interfaces. Therefore, this is done within gfzrnx. Only ? , * ,
[] are supported here.
- 46/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.7 RINEX File Split
will split a daily file into hourly files, keeping the input file RINEX version and using the RINEX-2 file naming.
will split a daily file into RINEX-3 hourly files using the RINEX-3 file naming.
/tmp/POTS00DEU_R_20150070000_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150070100_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150070200_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150070300_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150070400_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150070500_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150070600_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150070700_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150070800_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150070900_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150071000_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150071100_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150071200_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150071300_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150071400_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150071500_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150071600_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150071700_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150071800_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150071900_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150072000_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150072100_01H_30S_MO.rnx
/tmp/POTS00DEU_R_20150072200_01H_30S_MO.rnx /tmp/POTS00DEU_R_20150072300_01H_30S_MO.rnx
Remark
It is possible to combine the split with a splice operation of observation data. See splice section for details.
- 47/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.8 RINEX File Output Epoch Interval
Date
Time
Epoch
An Epoch string can be formed, connecting any Date-string via _ with a Time-string.
MJD 56753_123000
GPSweekWeekday 17870_12:30:00
YearDayofyear 2014096_123000
YearMonthDay 20140406_12:30:00
Year-Month-Day 2014-04-06_123000
To extract a dedicated epoch interval from a RINEX-file you have to provide a Start-Epoch via -epo_beg and the duration -d or -
duration in seconds.
- 48/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.8.3 Strict Epoch interval ( -sei )
If you want that your output epoch interval strictly follows a RINEX file naming, you can give the -sei command line parameter to
omit all data that do not fit the implicitly given epoch interval of your input or output file name. You have to use the parameters in,
out to the -sei switch to indicate if either the input- or the output filename has to be used for the strict epoch interval handling.
The last example extracts the first hour from the daily input file, including a data sampling operation.
Navigation information files often contain records that don't correspond to the nominal time interval given via the in/out file
names. To avoid the elimination of data extending the nominal time interval one can extend the interval to be checked via the
-enb command line parameter. The check time interval will be extended at both boundaries by the number of seconds given.
Choose a reasonable value to ensure the quality of the output file.
- 49/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9 RINEX File Manipulation
Provide the sampling rate [sec] and the optional tolerance range [sec] to link an observation epoch to its nominal epoch via -smp
command line parameter. This parameter can be given for any gfzrnx operation.
-smp num[:eps]
For observation data, the default tolerance range (eps) is 0.5 times of the input sampling rate taken from the INTERVAL header
element.
In case the INTERVAL header element is not available or not mandatory (e.g. meteorological data) the default tolerance range
(eps) is 0.5 times of the via -smp specified sampling rate (num).
LLI shift
The LLIs (Loss of Lock Indicator) of the unused data epochs between two sample epochs are shifted to the sample epoch if you
provide the -smp_lli_shift command line parameter. Otherwise, the LLIs of the sample epoch data are left as they are, and the
information is lost. The use of this option slows down the sampling operation.
Remark
If more than one observation epoch is found in the tolerance range, only the nearest to the nominal epoch is used. Having several
observation epochs within a tolerance range slows down the sampling process, especially for observation files. You can fasten the
sampling process providing a reasonable tolerance range (eps) on the command line.
>= 1 s 0.5 s
<1s 5 ms
If you are interested in a subset of satellite systems only, you can use the -satsys command line parameter to provide your
desired satellite system. All other satellite systems are omitted in the output file.
-satsys <string>
- 50/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.3 PRN Selection ( -prn, -no_prn )
The satellite systems string (string) consists of Satellite system letters (G-GPS, R-Glonass, E-Galileo, C-Beidou ...).
For RINEX Observation files one can use a PRN selection/deselection via -prn and -no_prn command line parameters to include/
exclude specific PRNs in the RINEX or statistics output. Both parameters can be mixed ( -no_prn is prioritized). Simply provide a
comma-separated list of PRNs or PRN-ranges.
If you are interested in a subset of observation types only, you can use the -obs_types command line parameter to provide your
desired observation types via a comma-separated list of patterns.
The observation types selection works via a pattern matching mode. The pattern matching is done left aligned (e.g. L,L2,L2C or
1,1C).
RINEX-2
The result will be a file containing the following observation types only.
5 C1 L1 L2 P1 P2 # / TYPES OF OBSERV
will result in a file containing the following observation types, omitting the P1 observable too.
4 C1 L1 L2 P2 # / TYPES OF OBSERV
- 51/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.5 Remove of Sparse Observation Types ( -remove_sparse_obs_types )
RINEX-3\/4
In a simple case, it works the same way as for RINEX-2. For RINEX-3 it is possible to do the selection down to the satellite systems.
One has to concatenate the global and the satellite system-dependent definitions via the + character. For satellite system-
dependent selections, you have to start with the satellite system character and colon.
Here is a global selection overall satellite systems (simple mode) selecting phase and code observations only:
Here is a global selection with special selections for C (Beidou) and G (GPS).
One can give a limit in % which can be used to eliminate sparse observation types. The basis is the median of the number of
observations per single observation type.
For GNSS observation files, complete empty observation types are removed by default. Complete empty PRN data records are
removed too. To keep all this data, use the -kaot command line parameter.
-ots <CPLSD>[:<attribute>]
- 52/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.8 Navigation File Sorting ( -nav_sort )
The default observation types output sorting order is alphanumeric. To control the observation types output order (GNSS
observation files only) a string of the first observation types letters should be given. To order by frequency first, the following
attributes are possible:
attribute order by
Some examples:
-ots PCLDS
-ots CL
-ots PCLDS:frqasc
-ots PCLSD:frq1,5,7
-ots PCLDS:frodsc
-ots PCLDS:fro1,5,7
G 21 C1C L1C D1C S1C L1P D1P L1W D1W S1W D2C S2C C2W L2W SYS / # / OBS TYPES
D2W S2W C2X L2X S2X C5X L5X S5X
-ots CPLDS
G 21 C1C C2W C2X C5X L1C L1P L1W L2W L2X L5X D1C D2C D1P SYS / # / OBS TYPES
D1W D2W S1C S2C S1W S2W S2X S5X SYS / # / OBS TYPES
-ots CPLDS:frqasc
G 21 C1C L1C L1P L1W D1C D1P D1W S1C S1W C2W C2X L2W L2X SYS / # / OBS TYPES
D2C D2W S2C S2W S2X C5X L5X S5X SYS / # / OBS TYPES
-ots CPLDS:froasc
G 21 C1C C2W C2X C5X L1C L1P L1W L2W L2X L5X D1C D1P D1W SYS / # / OBS TYPES
D2C D2W S1C S1W S2C S2W S2X S5X SYS / # / OBS TYPES
The output order of the navigation records can be controlled via -nav_sort or -ns command line parameter. Two options prn,
time, prnmtype are possible.
- 53/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.9 Navigation Types Selection ( -nav_types )
This can be used for any operation on navigation files (check, splice, split, ... ).
With RINEX version 4 navigation record types (EPH, STO, EOP, ION) have been introduced.
Type Description
For every navigation record type message types (e.g. CNAV, LNAV, CNV3, ...) have been introduced additionally. If you are
interested in a subset of navigation record types and selected message types only, you can use the --nav_types or -nt command
line parameter to provide your desired selection.
The selection definition consists of a concatenation via '+' of global or satellite-dependent settings. One complete selection
element consists of:
<satellite_system(s)>::<list_of_nav_types>:<list_of_message_types>
It is possible to omit the satellite_system(s) or the list_of_message_types. In this case, all valid supported elements are used.
Lists are built via dot. Here are some examples:
--nav_types GC::EPH
--nav_types C::ION.STO
--nav_types C::ION.STO:CNVX
--nav_types EPH+C::ION.STO:CNAV
--nav_types C::ION.STO:CNVX+C::EPH:D1.D2.CNV1+E::EPH:INAV
--nav_types EPH.STO
Remark
Additional command line selection options like -satsys , -prn can be used too.
Supported output versions ( -vo ) for NAV-files are 2, 3.04, 3.05 and 4.
- 54/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.10 GPSweek Rollover Correction ( -shift_gpsw )
Due to firmware or Rinex converter problems, we have seen files that show up with data epochs affected by 1024-week rollovers,
which leads to data epoch shifts by a multiple of 1024. The week shift to be added must be provided via the -shift_gpsw command
line parameter. The file name epoch needs to be corrected first before using the -shift_gpsw command line parameter. gfzrnx
checks if the gpsweek difference between the first data epoch and the filename epoch is a multiple of 1024. Only in this case, the
epoch shift will be applied.
Here is one example for the file MAR100DEU_R_20190440015_15M_01S_GO.rnx, where the gpsweek for 20190440015 (2019
02 13) is 2040.
The gps-week of 1999 06 30 is 1016 (2040-1016=1024). The shift by 1024 weeks results in the correct data epochs.
- 55/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.11 Antenna Rename ( -ant_rename )
Historical files, especially GPS observation files before the year 2000, use outdated non-IGS-conform antenna names.
- 56/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.11 Antenna Rename ( -ant_rename )
With the -ant_rename command line parameter, the antenna names can be updated using the fix implemented table below to have
IGS-standard conform antenna names in the header. The renaming is documented in the RINEX header via a COMMENT record
which is added.
- 57/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.11 Antenna Rename ( -ant_rename )
FROM TO
MARINE/RANGE ASHMAR/RANGE
A-C L1 ASHAC_L1
ASH701945.02B ASH701945B_M
ASH701946.012 ASH701946.2
ASH701946.022 ASH701946.2
ASH701975.01Agp ASH701975.01AGP
TRM10877.10+RGP TRM12333.00+RGP
JPSMARANT_GGD JNSMARANT_GGD
TRM10877.10+SGP TRM11877.10+SGP
TOPCR3_GGD TPSCR3_GGD
- 58/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.9.12 Antenna Rename Table output ( -ant_rename_out )
FROM TO
STXS9+X001A STXS9PX001A
The table for the antenna renaming can be extended or corrected. Via the command line parameter -ant_rename_out one can get
the currently used table for extension or correction. The output file is in json format.
gfzrnx -ant_rename_out
{
"4000ST L1 GEODETIC" : "TRM14177.00",
"MINIMAC PATCH" : "MACPATCH",
....
"MAGELLAN PM-500" : "MAGPM-500",
"TR GEOD L1/L2 W/O GP" : "TRM22020.00-GP"
}
If you want to use an own or extended renaming table, you can provide it via the -ant_rename_inp command line parameter. It
overwrites completely the internal table. The input file must be in json format.
- 59/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.10 Handling a Group of Files with a Single Command ( -single_file )
For the output file naming, the automatic file naming must be used ( ::RX2:: , ::RX3:: , ::RX4:: ) or the ::INP:: variable.
The ::INP:: means, that the output file name is the same as the input file name.
- 60/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11 RINEX File Header/Data Editing
There are two modes available: * Header editing as part of other operations on the input RINEX file. * Header editing only. Only the
header input, editing and check are performed, but the data part is simply copied as it is.
For the editing only mode one has to use the -hded option in addition.
An additional epoch and station identifier have to be given if no standard RINEX file names are used. If no additional information
provided, the MARKER NAME and the first data epoch is used if it exists. This information is needed to extract the right header
editing information from the overall configuration information.
gfzrnx -finp file.rnx -fout file.rnx_hded -crux header_crux.txt -hded -epo_beg 2015234_000000 \
-site POTS
gfzrnx -finp file.rnx -fout file.rnx_hded -crux header_crux.txt -hded -epo_beg 2015234_000000 \
-site POTS00DEU
The following operations are supported: * Update single elements of an existing header line (label) * Insert single elements of a
non-existing header line (label) * Update (insert) a complete header line or multiple header lines per label * Common string
replacement in a string- or regular expression mode * Renaming of PRN in the header and data part * Renaming of OBS types in
the header par * Station-, data type- and epoch interval-dependent settings in a single configuration file are possible
Due to the variety of input options, one can check how the configuration is interpreted in the program. It can be used as a kind of
check via the -show_crux option before the real use.
gfzrnx -show_crux
Formally there are 3 major modes: update_insert, replace or rename delimited by colon.
- 61/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
In case of rename a type (prn|obs) has to be given additionally. The mode definition line has to be followed by an optional data
type identifier string (OMN Obs., Met., Nav.) delimited with a hyphen, an optional epoch interval delimited by a hyphen, and a valid
station identifier (4- or 9-char.) or dot-separated list of station identifiers delimited by a colon. Now the editing definitions can
follow.
Update_insert :
#--------------
[OMN-][YYYYMMDD:HHMMSS YYYYMMDD:HHMMSS-] ALL:
...
[OMN-][YYYYDDD:SSSSS YYYYDDD:SSSSS-] STA1[.STA2[.STA3...] :
[OMN-][YYYYDDD:SSSSS YYYYDDD:SSSSS-] STA1MRCCC[.STA2MRCCC[.STA3MRCCC...] :
...
Replace :
#--------
[OMN-][YYYYMMDD:HHMMSS YYYYMMDD:HHMMSS-] ALL:
...
[OMN-][YYYYDDD:SSSSS YYYYDDD:SSSSS-] STA1[.STA2[.STA3...]:
...
Every rename setting has to be done completely on a single line using the following syntax:
Rename : prn
#--------
[ON-][YYYYMMDD:HHMMSS YYYYMMDD:HHMMSS-] - <prn-from> - <prn-to> : ALL
[ON-][YYYYDDD:SSSSS YYYYDDD:SSSSS-] - <prn-from> - <prn-to> : STA1[.STA2[.STA3...]
[ON-][YYYYDDD:SSSSS YYYYDDD:SSSSS-] - <prn-from> - <prn-to> : STA1MRCCC[.STA2MRCCC[.STA3MRCCC...]
Rename : obs
#--------
[OM][YYYYMMDD:HHMMSS YYYYMMDD:HHMMSS-] <obs-from> - <obs-to> - <sat.sys> : ALL
[OM][YYYYDDD:SSSSS YYYYDDD:SSSSS-] <obs-from> - <obs-to> - <sat.sys> : STA1[.STA2[.STA3...]
[OM][YYYYDDD:SSSSS YYYYDDD:SSSSS-] <obs-from> - <obs-to> - <sat.sys> :
STA1MRCCC[.STA2MRCCC[.STA3MRCCC...]
• The file name station identifier has to be used for the station name. Currently, only the 4 characters station identifier is
supported (RINEX-2 file naming)
• For non-specific station definitions, the ALL station identifier can be used
• Omitting the data types identifier extends the validity to all supported data types (OMN)
• Overlapping epoch intervals for the same header label and station lead to an error
• The date of the epoch interval can be given either as YYYYDDD (year, day of year) or YYYYMMDD (year, month, day of
month)
• The time of the epoch interval can be given as SSSSS (second of day 0-86399) or HHMMSS ( hour, minute, second )
• Unlimited begin or end of an epoch interval can be given using zeros in the date and time values (e.g. 0000000:000000)
- 62/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
Single header element update/insert can be done by providing the label in double quotes, "+" an optional time interval, ":" and the
list of index-value pairs enclosed in curly brackets. Every definition should cover only one line!
update_insert :
#--------------
O - POTS.OUST.WINT:
"REC # / TYPE / VERS" : { 1 : "TRIMBLE NETR9" }
O - POTS00DEU:
"OBSERVER / AGENCY" + 0000000:00000 2013126:86399 : { 0:"automatic", 1:"GFZ" }
"OBSERVER / AGENCY" + 2013127:00000 0000000:00000 : { 0:"gfz", 1:"GFZ/IHL" }
• Multi-string elements in the index-value pairs have to be enclosed with double quotes. Please make sure that the given values
don't exceed the element's format length!
• The site name used to search for site-dependent settings in the loaded crux information is extracted from the standard
RINEX-2 or 3 input file name. In case of wrong or non-standard input file names or in pipe environments, the site name has to be
provided via the -site command line parameter. The -site parameter overwrites any otherwise derived site name in general.
gfzrnx -finp xxxx282a.19o -crux crux.txt -fout ::RX3:: -kv -f -site MET300FIN
cat MET300FIN_R_20192820000_01H_30S_MO.rnx |gfzrnx -crux crux.txt -fout ::RX2:: -kv -f \
-site MET300FIN
gzip -dc MET300FIN_R_20192820000_01H_30S_MO.rnx.gz|gfzrnx -crux crux.txt -fout ::RX3:: -kv -f \
-site MET3
- 63/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
The following variable string substitutes are supported to be used via crux single header elements updates and added COMMENT
lines. To be more independent of OS-derived values, the following environment variables are used with a higher preference if
existing.
Warning
Please check in advance if you get the expected results for your operating system!
update_insert :
#---
MNO - ALL:
"COMMENT" : "PG tImEsTaMp pRoGrAm uSeR@dOmAiNnAmE"
"PGM / RUN BY / DATE" : { 0: "pRoGrAm" , 1: "uSeR@dOmAiNnAmE", 2: "tImEsTaMp" }
For the upper configuration, the "PGM / RUN BY / DATE" record will be updated and the "COMMENT" record below will be added:
If the "COMMENT" string gets longer than 60 characters, it will be cut to 60!
Multiple header elements like the "SENSOR MOD/TYPE/ACC" or "SENSOR POS XYZ/H" for meteo data need an additional
condition (here the sensor identifiers TD, PR, HR,...). An additional "+ column_number:value" pair has to be added to the label and
optional epoch interval information. The column counter starts with 0. Here is a crux example block.
update_insert :
#-----
- 64/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
M - POTS00DEU :
See below a small example of a header manipulation with the initial header and the manipulation result.
pots3410.15m
pots3410.15m_new
Proposed Use
There are several possibilities to organize the header editing configuration file. The clearest form would be to organize it per
station. Below you can find a configuration example for the single station POTS covering the whole station history information for
Observation and Meteo file header entries.
update_insert:
- 65/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
OM - POTS:
Depending on the first data epoch the appropriate header entry is updated.
Remark
There is one exception concerning the RINEX header fields manipulation. According to IGS antenna definition (number, antenna + radome)
the "ANT # / TYPE" record consists of 3 columns, which is a deviation from the RINEX standard.
This means the standard (A20,A20) RINEX definition is in gfzrnx handled as (A20,A16,A4). A correction record should be of the following
form:
update_insert :
# -------------
POTS:
"ANT # / TYPE" : { 0:"30336561", 1:"TRM55971.00", 2:"NONE" }
For a single line definition, one has to give the label name in double quotes followed by an "+" optional epoch interval string
followed by a colon and the 60 char. string to be updated or inserted. The multi-line definition has to be enclosed in square
- 66/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.5 Configuration file
brackets as a comma-separated list of 60 char. strings with one string per line. The square brackets have to be given on the first ([)
and last (]) 60 char. string definition line.
update_insert :
#--------------
O - 2015010:00000 0000000:00000 - POTS00DEU:
"OBSERVER / AGENCY" : "Automatic Deutsches GeoForschungsZentrum (GFZ) "
"SYS / PHASE SHIFT" : [ "G L1C 0.00000 ",
"J L1C 0.00000 ",
"J L1X 0.25000 ",
"E L1X 0.00000 ",
"C L7I 0.00000 ",
"R L1P 0.25000 ",
"R L2C 0.00000 ",
"R L2P 0.25000 ",
"G L2X -0.25000 ",
"G L5X 0.00000 " ]
Please keep in mind that an already existing header label content is completely removed. Only COMMENT header lines are
appended.
Remark
For the string replacement, the major mode replace has to be used. One has to define the station identifier as before. Afterward,
you can define from/to pairs of type regexp or string. The regular expression syntax follows Perl syntax. Each pair element
(from/to) should be given on a separate line. The example below shows how to correct an erroneous label name.
replace :
#--------
ALL:
regexp_from : "^(.{60})PGM\s*/\s*RUN\s*BY\s*/\s*DATE\s*$"
regexp_to : "$1PGM / RUN BY / DATE"
ALL:
string_from : "PGM/RUN BY/DATE"
string_to : "PGM / RUN BY / DATE"
To remove single header label lines on input use an empty regexp_to (""). To remove all COMMENT lines use:
replace :
#--------
ALL:
regexp_from : "^.{60}COMMENT\s*$"
regexp_to : ""
- 67/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.6 Header edit via command line ( -cx_updins )
replace :
#--------
ALL:
regexp_from : "^.*ABC DEF.*$"
regexp_to : ""
Rename - PRNs
If raw data conversion programs don't assign the right PRN, this can be changed via the "rename: PRN" mode. Here is the crux
configuration syntax:
rename: prn
#----------
rename: obs
#----------
Remark
You can use 9-char. station names in crux-config-file for the handling of 4-char. station names too! The replace mode is done directly on
input, the update_insert and rename modes are done after the whole header has been read.
Single update_insert header edit options can also be provided via command line using the -cx_updins command line parameter,
providing a list of edit options. The site definition has to be given before the header label change option.
- 68/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.7 Internal/Data Headers via crux-file ( -cx_addinthd )
Remark
Please pay attention to the different single/double quote usage on Windows- and Unix-based operating systems. Please check in
advance with -show_crux the acceptance of your header edit options due to the mixture of different quotation marks after -cx_updins .
Remark
Metadata changes following e.g. hardware changes can be introduced at the event epochs into the data part of a RINEX file if
information is found in the crux-file. This mechanism can be activated additionally to the normal header edit operations via the -
cx_addinthd command line parameter for update_insert crux-settings.
Here is an example:
update_insert:
O - 20141105:071700 20180417:060500 - OBWT:
"REC # / TYPE / VERS" : { 0: "4831K57521", 1: "TRIMBLE NETR5", 2: "Nav 4.87 / Boot 4.18"}
"ANT # / TYPE" : { 0: "30767802", 1: "TRM55971.00", 2: "TZGD"}
O - 20180417:061500 00000000:000000 - OBWT:
"REC # / TYPE / VERS" : { 0: "1705310", 1: "LEICA GR30", 2: "4.20.232"}
"ANT # / TYPE" : { 0: "09440002", 1: "LEIAR25.R3", 2: "LEIT" }
- 69/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.11.8 Manipulate Header Version Number ( -vnum )
18 04 17 06 15 00.0000000 4 2
1705310 LEICA GR30 4.20.232 REC # / TYPE / VERS
09440002 LEIAR25.R3 LEIT ANT # / TYPE
18 04 17 06 15 00.0000000 0 16G02G05G07G09G13G27G28G30R06R07R08R09
R10R16R23R24
24247477.484 127421298.588 6 99289349.307 6 24247479.359 42.200
25.500
21028794.141 110507030.196 7 86109402.765 9 21028797.266 49.300
Remark
Windows users should swap single and double quotes using -cx_addinthd similar to -cx_updins command line options.
By default, the latest supported version number is used for the "RINEX VERSION / TYPE" header element, and there are made
manipulations to fit this version. If a special version number is needed (for whatever reason) one can use the -vnum command line
parameter to manipulate the version number to a certain value.
This will change the default output header value e.g. 3.04 to the wished value of 3.03.
Remark
The -vnum version number change is only a formal exchange of the version number to meet any conditions of external software. The file
content will be still conform to the highest supported version number!
- 70/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.12 RINEX File Metadata Extraction ( -meta )
• The basic mode extracts only the header information, the first and last epoch from the RINEX file without reading the whole file
(fast).
• The medium extends the basic information by real data interval, first/last epochs, and number of epochs.
• The full mode extends/updates the basic information with information derived from the complete data file like data statistics,
the real data interval, and so on.
• The following output formats are supported: txt(default), json, jsonp(pretty json), xml, dump. They can be used for fast view
or further applications.
The file-, site-, receiver-, antenna- sections information is derived from the RINEX header part only. The data-section holds
information derived from the RINEX data part.
- 71/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.12 RINEX File Metadata Extraction ( -meta )
sysobs:
E = C1X C5X D1X D5X L1X L5X S1X S5X
G = C1C C1W C2W C2X C5X D1C D1W D2W D2X D5X L1C L1W L2W L2X L5X S1C S1W S2W S2X S5X
R = C1C C1P C2C C2P D1C D1P D2C D2P L1C L1P L2C L2P S1C S1P S2C S2P
system = M
systyp:
E = C D L S
G = C D L S
R = C D L S
type = O
version = 3.03
receiver:
firmware = 3.6.7
name = JAVAD TRE_G3TH DELTA
number = 205
site:
agency = GFZ
name = POTS
number = 14106M003
observer = GFZ
position:
x = 3800689.6341
y = 882077.3857
z = 5028791.3179
{"antenna":{"height":{"e":"0.0000","h":"0.1206","n":"0.0000"},"name":"JAV_RINGANT_G3T",
"number":"316","radome":"NONE"},"data":{"epoch":{"first":"2018 03 05 00 00 00.0000000",
"interval":"30.000","last":"2018 03 05 23 59 30.0000000"}},"exec":{"date":"2018-03-06 16:56:40 UTC",
"meta":"basic","name":"gfzrnx","version":"1.10-7323"},"file":{"epo_first":
"2018 03 05 00 00 00.0000000","interval":"30.000","md5":"9a49ad078b4bcfbe1d1a2fe4de440de1",
"name":"POTS00DEU_00001024_FRO_RX3_MO_20180305_000000_01D_30S_GFZ.rnx","pgm":"JPS2RIN v.2.0.134",
"pgm_date":"20180305 011547 UTC","pgm_runby":"GFZ ODC","satsys":"EGR","site":"POTS00DEU",
"source":"R","sysfrq":{"E":["1","5"],"G":["1","2","5"],"R":["1","2"]},
"sysobs":{"E":["C1X","C5X","D1X","D5X","L1X","L5X","S1X","S5X"],"G":["C1C","C1W","C2W","C2X",
"C5X","D1C","D1W","D2W","D2X","D5X","L1C","L1W","L2W","L2X","L5X","S1C","S1W","S2W","S2X",
"S5X"],"R":["C1C","C1P","C2C","C2P","D1C","D1P","D2C","D2P","L1C",
"L1P","L2C","L2P","S1C","S1P","S2C","S2P"]},"system":"M","systyp":{"E":["C","D","L","S"],
"G":["C","D","L","S"],"R":["C","D","L","S"]},"type":"O","version":"3.03"},
"receiver":{"firmware":"3.6.7","name":"JAVAD TRE_G3TH DELTA","number":"205"},
"site":{"agency":"GFZ","name":"POTS","number":"14106M003","observer":"GFZ",
"position":{"x":"3800689.6341","y":"882077.3857","z":"5028791.3179"}}}
{
"antenna" : {
"height" : {
"e" : "0.0000",
"h" : "0.1206",
"n" : "0.0000"
},
"name" : "JAV_RINGANT_G3T",
"number" : "316",
"radome" : "NONE"
},
"data" : {
"epoch" : {
"first" : "2018 03 05 00 00 00.0000000",
"interval" : "30.000",
"last" : "2018 03 05 23 59 30.0000000"
}
- 72/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.12 RINEX File Metadata Extraction ( -meta )
},
"exec" : {
"date" : "2018-03-06 16:55:57 UTC",
"meta" : "basic",
"name" : "gfzrnx",
"version" : "1.10-7323"
},
"file" : {
"epo_first" : "2018 03 05 00 00 00.0000000",
"interval" : "30.000",
"md5" : "9a49ad078b4bcfbe1d1a2fe4de440de1",
"name" : "POTS00DEU_00001024_FRO_RX3_MO_20180305_000000_01D_30S_GFZ.rnx",
"pgm" : "JPS2RIN v.2.0.134",
"pgm_date" : "20180305 011547 UTC",
"pgm_runby" : "GFZ ODC",
"satsys" : "EGR",
"site" : "POTS00DEU",
"source" : "R",
"sysfrq" : {
"E" : [
"1",
"5"
],
"G" : [
"1",
"2",
"5"
],
"R" : [
"1",
"2"
]
},
"sysobs" : {
"E" : [
"C1X",
"C5X",
"D1X",
"D5X",
"L1X",
"L5X",
"S1X",
"S5X"
],
"G" : [
"C1C",
"C1W",
"C2W",
"C2X",
"C5X",
"D1C",
"D1W",
"D2W",
"D2X",
"D5X",
"L1C",
"L1W",
"L2W",
"L2X",
"L5X",
"S1C",
"S1W",
"S2W",
"S2X",
"S5X"
- 73/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.12 RINEX File Metadata Extraction ( -meta )
],
"R" : [
"C1C",
"C1P",
"C2C",
"C2P",
"D1C",
"D1P",
"D2C",
"D2P",
"L1C",
"L1P",
"L2C",
"L2P",
"S1C",
"S1P",
"S2C",
"S2P"
]
},
"system" : "M",
"systyp" : {
"E" : [
"C",
"D",
"L",
"S"
],
"G" : [
"C",
"D",
"L",
"S"
],
"R" : [
"C",
"D",
"L",
"S"
]
},
"type" : "O",
"version" : "3.03"
},
"receiver" : {
"firmware" : "3.6.7",
"name" : "JAVAD TRE_G3TH DELTA",
"number" : "205"
},
"site" : {
"agency" : "GFZ",
"name" : "POTS",
"number" : "14106M003",
"observer" : "GFZ",
"position" : {
"x" : "3800689.6341",
"y" : "882077.3857",
"z" : "5028791.3179"
}
}
}
- 74/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.13 RINEX File Comparison ( -fdiff )
The output is RINEX-3-like, contains only the data epochs and data records, where both files differ in the data records. Internal or
data headers are ignored.
• If per epoch, an observation type exists in both files. Its numerical difference (file1-file2) is shown.
• If per epoch an observation type is missing in one of the input files, the original data value of the corresponding input file is
shown (merged).
• For the LLI and SSI values, absolute differences are always reported.
In the header, you can find the observation types order and the PRN-statistics of detected differences.
The data or differences part will look like the following example:
- 75/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.13 RINEX File Comparison ( -fdiff )
• In the first epoch, the data of two PRNs differ by 1 in the LLI (loss of lock indicator) value for the C1C observation type.
• In the second epoch, the PRN G02 differs (file1-file2) by the given values for the observation types C1C, L1, C2W. The PRN G19
seems to be fully missing in one of the files, or you see a merged record, where an observation type is missing either in the first
or the second file.
• The third epoch seems to be fully missing in one of the files, or you see a merged record, where a full PRN or an observation
type is missing either in the first or the second file.
- 76/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.14 RINEX Hatanaka Compressed Files
The Hatanaka RINEX compression/decompression utilities RNXCMP are free software and can be downloaded from http://
terras.gsi.go.jp/ja/crx2rnx.html.
On the following page, you can find some examples of the RNXCMP decompression/compression in combination with gfzrnx and
gzip compression.
Decompression:
--------------
Compression:
------------
- 77/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.15 RINEX to Tabular Output
The tabular observations output allows to output a RINEX observations input file into a data table that can be used for simple
visualization or for an easier introduction into third-party applications like EXCEL, Matlab, etc... All main options like satellite
system selection ( -satsys ) and/or satellites selection ( -prn ) and/or observation types selection ( -obs_types ) and others are
supported. It can be used for all RINEX data types (OBS, MET, NAV).
The tabular observation output can be initiated via the -tab command line parameter. Here is an example for a single satellite and
selected observation types:
The last command leads to the following default tabular output, extracting phase observations for the PRN G03:
The first columns are fixed, showing the: + Line Type, + Satellite System, + Date, + Time, + PRN.
This is followed by the list of wished or given observation types as provided in the satellite system-specific header line order.
The last command leads to the following tabular output, extracting only BDS EPH-records of message type CNV1
- 78/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.15.2 Date/Time Formats
gfzrnx -finp *.rnx -fout RNX_C_CNV1.tab -f -vo 4 -tab -tab_sep \; -nt C::EPH:CNV1
#HD;S;DATE;TIME;NAV;PRN;MTYP;DATA ---------------
NAV;C;2021-03-17;00:00:00;EPH;C19;CNV1;
7.642341079190e-04;1.389732773305e-11;0.000000000000e+00;2.871513366699e-03; ...
NAV;C;2021-03-17;01:00:00;EPH;C19;CNV1;
7.642844575457e-04;1.394262483245e-11;0.000000000000e+00;2.720832824707e-03; ...
NAV;C;2021-03-17;02:00:00;EPH;C19;CNV1;
7.643348653801e-04;1.396838200662e-11;0.000000000000e+00;2.270221710205e-03; ...
...
The Date/Time format can be controlled via the -tab_date , -tab_time command line parameters. The following pattern describes
selected Date/Time formats:
The Date/Time patterns ddd and sod used above, result in the output below.
- 79/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.15.3 Column Separator
By default the column separator is the blank character. Using the -tab_sep command line parameter you can choose any
character or even string for column separation. In case of the blank column separator all missing/empty data values are replaced
by 9999999999.999, otherwise, they are just empty.
#HD,G,DATE,TIME,PRN,L1C,L1W,L2W,L2X
OBS,G,007,26700.0000000,G03,134798128.476,134798125.823,105037501.328,105037506.181
OBS,G,007,26730.0000000,G03,134629777.213,134629774.487,104906318.473,104906323.263
OBS,G,007,26760.0000000,G03,134461452.299,134461449.545,104775156.193,104775160.914
OBS,G,007,26790.0000000,G03,134293160.630,134293157.877,104644019.757,104644024.465
OBS,G,007,26820.0000000,G03,134124902.769,134124900.043,104512909.644,104512914.387
- 80/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences
3.16 RINEX-2 BDS, QZSS, IRNSS support
In the RINEX-2 standard, there are no extension letters defined for single system BEIDOU-, QZSS-, IRNSS- single system navigation
files. The following characters are used by gfzrnx:
BDS c pots0750.17c
QZSS j pots0750.17j
IRNSS i pots0750.17i
The RINEX-3.03 standard (and higher) does not allow an empty attribute identifier (tracking mode or channel) in observation type
naming (tna - observation type|band/frequency|attribute). Converting files from RINEX-2 to RINEX-3 shows the problem of safely
map 2-characters to 3-characters observation type names (e.g. L2 to L2?). As it is not foreseen to have an "unknown" or
"converted" attribute identifier, the output version used is 3.01 to stay format conform.
gfzrnx s driven by hard-coded observation types, and the mapping table is compliant with RINEX standards. Running the program
for unsupported or non-standard observation types results in the omitting of these data. To avoid this behavior, one has to extend
the standard. This can be done with the following procedure:
gfzrnx -out_obs_map
gfzrnx -out_obs_map -fout obs_types_map.txt
• Add new observation types records to the map. The information in the columns 2,3 and 4 is treated as a comment only and is
not used.
Be aware that this undermines the given RINEX standard and can be an error source if not used properly. The generated files are for
internal use only!
- 81/81 -
© 2015-2022 Helmholtz Center Potsdam - GFZ German Research Center for Geosciences