Usage¶
gfzrnx is a command line executable. It can be used in a terminal window or batch scripts. It has NO graphical interface!
Unix¶
For Unix (Linux, MacOS, SunOS) users it can be run in any terminal application or used in shell scripts...
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.
gfzrnx.exe -finp C:\data\XXXX0010.15o -fout C:\data_30\XXXX0010.15o -smp 30
gfzrnx.exe -finp C:\data\XXXX0020.15o -fout C:\data_30\XXXX0020.15o -smp 30
...
gfzrnx.exe -finp C:\data\XXXX3650.15o -fout C:\data_30\XXXX3650.15o -smp 30
Fast Help¶
Simple usage information you can get via command line parameter -h or -help.
gfzrnx -h
***** USAGE: gfzrnx
file only or common options
-----------------------------------------------------------------------------------------
[-h] - show this usage message
[-help]
[-finp <file list>] - input rinex file(s) (std. STDIN).
STDIN is only valid for a single file input.
the following file name types are supported to derive the
nominal epoch/duration information.
RINEX-2 file naming
ssssDDD0.YYx - daily file
ssssDDD[a-x].YYx - hourly file
ssssDDD[a-x]mm.YYx - sub-hourly file
RINEX-3/4 file naming
SSSSMRCCC_S_YYYYDDDHHMM_NNN_FRQ_TT.FMT
SSSSMRCCC_S_YYYYDDDHHMM_NNN_TT.FMT
see Documentation for details
splice mode:
------------
* list of input files
[-fout <file>] - output rinex or statistics file (std. STDOUT)
automatic output file name if filename given is "::RX2::", "::RX3::" or "::RX4::"
[-4to9 <file>] - renaming information for rinex-3 type (re)naming
( NNNN -> NNNNMRCCC / POTS -> POTS00DEU )
[-f] - force overwrite of output file if it already exists
(std. no overwrite)
[-sifl] - perform an operation on a single file if a file list is
[-single_file] provided via "-finp"
[-ant_rename] - rename historical antenna names to be IGS conform
[-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.
s - data source (S|R) (default R)
mr - marker receiver number (default 00)
iso - 3 char. iso country code (default XXX)
the input parameters can be given in any order.
supported input file names nnnnddde.yyt[.cmp] or nnnndddedd.yyt[.cmp]
if providing a compressed file all information which is usually taken
from file header (sat. system(s), data frequency) has to be given via the
command line parameter (see documion for details).
[-vo <2|3|4>] - output RINEX version (std. latest)
[--version_out <2|3|4>]
[-vosc <2|3|4>] - output RINEX version (fully standard conform)
[-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>] - komma 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
S - satellite System [CEGJRSI]
n - frequency number(s)
STRING - prority STRING
G:12:PWCSLXYN,G:5:QXI,R:12:CP
[-errlog <file>] - store (append) error logs to a file (std. print to STDERR)
[-smp <num>] - sampling rate in sec. (std. no sampling / resolution 1 ms)
[-smp_nom <num>] - sampling rate (num) in sec to be used for automatic file naming
[-smp_lli_shift] - perform LLI shifts via data sampling to sampling epoch
[-nav_mixed] - create a mixed nav. filename
[-no_nav_stk] - no nav. splice header statistic tables
[-stk_obs] - output data statistics information (std. STDOUT)
[-stk_only]
[-crux <file>] - rinex header manipulations definitions for input files
[-cx_updins <string(s)>] - rinex header manipulation(s) definition for input files
given via command line
[-cx_addinthd] - if using using a crux-file (-crux) internal/data headers are created
at crux-settings starting epochs.
[-show_crux] - show crux structure adopted and used by the program
[-hded] - perform the header edit ONLY mode (with -crux)
[-stk_epo <n[:list]>] - ASCII timeplot of data availability (std. STDOUT)
n - time resolution in seconds
list - comma separated list (prn,otp) (std. prn)
[-ot <list>] - obs. types list to be used (pattern matching). the list can be given
[--obs_types <list>] globaly or sat. system dependent. the sat. system dependent record
replaces fully a global one.
list can be: [S:]OT1,OT2,...[+S:OT3,OT4,...][+...]
S - satellite system [CEGJRSI]
OT - observation type identifier
L1,L2,C1,C2,P1,P2
L1,L2,C1,C2,P1,P2+C:L1,L7,C1,C7+G:L1C,L2W,C1,C2
[-ots <string>[:<attr>]] - obs. types output sorting
[--obs_types_sort <string>[:<attr>]]
the "string" consists of the 1st obs. type id. characters ( e.g. CPLDS ),
the "attr" can be [frqasc|frqdsc|frqi,j,...] (frequ. numbers (i,j,...) = 1,...,n),
which means a preferred sorting by frequency (ascending,descending or
a list of distinct frequency numbers)
[-prn <prn-list>] - komma separated list of PRNs to be used
range notations are possible G1-32,C01-5,R01-10,E14,E18
[-no_prn <prn-list>] - komma separated list of PRNs to be skipped
range notations are possible G1-32,C01-5,R01-10,E14,E18
[-kaot] - keep all obs. types (including fully empty ones)
[-rsot <n>] - remove sparse obs. types.
[--remove_sparse_obs_types <n>] n - defines the % limit of the median number of observations
per observation type used to delete an observation type fully.
[-satsys <letters>] - satellite system(s) to be used (CEGIJRS) (std. CEGIJRS)
C - Beidou
E - Galileo
G - GPS
I - IRNSS
J - QZSS
R - Glonass
S - SBAS
[-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 '.'
[-split n] - split input file in <n seconds> pieces
- valid only with -fout ::RX2:: or ::RX3::
- valid if n is a multiple of 60 seconds.
- only supported for single input file
[-chk] - extended formal checks on input file (slower)
[-meta <type[:format]>] - extract file meta data. the type can be (basic|full).
supported formats are json|xml|txt|dump
[-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.
[-kv] - keep major output version number same as in input
[-q] - quiet mode
[-d <sec>] - file duration (seconds) (std. ignored on input
[--duration <sec>] std. 86400 on output )
[-epo_beg <EPOCH>] - first output epoch (<EPOCH> see below)
[-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)
[-enb <n>] - extend the nav. epoch interval by +- n seconds
(when using strict epoch interval)
[-nav_epo_filter] - only standard epochs are passed to the output
[-nav_epo_strict] - only nominal epochs are passed to the output
[-nav_latest] - only latest nav. record per PRN are passed to the output
[-splice_direct] - use no RAM to store observations via splice operations
(no header data statistics)
[-try_append <sec>] - try append mode to fasten the splice process with
smallest nominal file duration (seconds) of part files
[-direct] - direct input/output of single rinex OBS. files (!!! no header statistics !!!)
[-use_obs_map <file>] - use modified obs. types mapping
[-out_obs_map] - output std. obs. types mapping
[-tab] - create a tabular data representation output
[-tab_date] - use other date (pattern) for tabular observation output
(yyyy-mm-dd|yy-mm-dd|yyyy-ddd|wwww-d|yyyymmdd|yymmdd|yyyyddd|wwwwd|mjd|ddd)
[-tab_time] - use other time pattern for tabular observation output
(hh:mm:ss|hhmmss|sod|fod)
[-tab_sep <string>] - column separator string (default: BLANK)
epoch <EPOCH> parameter
-----------------------------------------------------------------------------------------
mjd 56753 or 56753_123000
wwwwd 17870 or 17870_12:30:00
yyyyddd 2014096 or 2014096_123000
yyyymmdd 20140406 or 20140406_12:30:00
yyyy-mm-dd 2014-04-06 or 2014-04-06_123000
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
for license details and manual
Thomas Nischan, nisn@gfz-potsdam.de
----------------------------------------------------------------------------------------------
VERSION: gfzrnx-2.1.8
Data Input/Output¶
Supported Format Versions¶
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.
Standard out put version for major RINEX version:
Major | Standard Output |
---|---|
2 | 2.11 |
3 | 3.05 |
4 | 4.01 |
Input¶
The input of a single file can be done via the -finp
command line parameter or via STDIN.
Output¶
The standard output channel is STDOUT. The output to a dedicated file can also be done via the -fout
command line parameter.
Examples Input/Output¶
Input via -finp
¶
Input via STDIN¶
Output via -fout
¶
Output via STDOUT¶
gfzrnx -finp pots007a.15o > pots007a.15o_rx3
gfzrnx -finp pots007a.15o | rnx2crx > pots007a.15d
gfzrnx -finp pots007a.15o | rnx2crx | gzip > pots007a.15d.gz
The program rnx2crx is here the Hatanaka RINEX compression and gzip a common file compression program.
Log Messages¶
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.
> gfzrnx -finp leid2000.13o -fout leid2000.13o_rx3
DATE/TIME | C | EPOCH/FILE | SITE | T | MESSAGE
--------------+---+-------------+------+---+------------------------------------------------
2015-01-09 .. | N | .. 00:00:00 | LEID | O | file duration set to 86400 s
2015-01-09 .. | W | .. 00:00:00 | LEID | O | no MARKER NAME in header / taken from file name
2015-01-09 .. | W | .. 00:00:00 | LEID | O | HEADER -> missing receiver type ><
2015-01-09 .. | W | .. 23:59:30 | LEID | O | BEIDOU obs. types update: D2_ -> D1_ !
2015-01-09 .. | W | .. 23:59:30 | LEID | O | BEIDOU obs. types update: L2_ -> L1_ !
2015-01-09 .. | W | .. 23:59:30 | LEID | O | BEIDOU obs. types update: P2_ -> P1_ !
2015-01-09 .. | W | .. 23:59:30 | LEID | O | BEIDOU obs. types update: S2_ -> S1_ !
2015-01-09 .. | N | .. 23:59:30 | LEID | O | mandatory HEADER label >GLONASS COD/PHS/BIS< added
2015-01-09 .. | N | .. 23:59:30 | LEID | O | mandatory HEADER label >SYS / PHASE SHIFT< added
2015-01-09 .. | N | .. 23:59:30 | LEID | O | label ># / TYPES OF OBSERV< skipped via output
Label | Description |
---|---|
DATE/TIME | processing epoch |
C(ode) | N(otice), W(arning), E(rror) |
EPOCH / FILE | affected epoch in input file |
SITE | 4-char. station identifier |
T(ype) | Data Type |
MESSAGE | log message |
Output of log information to a file via -errlog
command line parameter.
Direct Mode (-direct)¶
For a single OBS. rinex file it is possible to use a direct input/output mode. The I/O is done epoch by epoch and you miss information stored in the header like statistics and the automatic removal of empty obs. types. The advantage is the economic utilisation of RAM.
Supported File Names¶
The following input file names are supported and used to initialize the nominal data epoch interval.
RINEX-2 naming convention¶
File Name | Description | Example |
---|---|---|
SSSSDDD0.YYT | daily file | pots0070.15o |
SSSSDDD[a-x].YYT | hourly file | pots007a.15o |
SSSSDDD[a-x]MM.YYT | sub-hourly file | pots007r45.15o |
Var. | Description | Example |
---|---|---|
SSSS | 4-char. station identifier | pots |
DDD | day of year | 007 |
YY | 2-digit year | 15 |
MM | minute of data begin | 45 |
T | data type (o,d,m,n,...) | o |
Examples¶
-
daily file
-
hourly files
-
sub-hourly files (15 min)
RINEX-3 naming convention¶
File Name | Example |
---|---|
SSSSMRCCC_S_YYYYDDDHHMM_NNN_FRQ_TT.FMT[.CMP] | POTS00DEU_R_20150070000_01H_30S MO.rnx.bz2 |
SSSSMRCCC_S_YYYYDDDHHMM_NNN_TT.FMT[.CMP] | POTS00DEU_R_20150070000_01H_MN.rnx.gz |
Var. | Description | Example |
---|---|---|
SSSSMRCCC | station identifier | POTS00DEU |
SSSS | 4-char. identifier | POTS |
M | Monument number | 0 |
R | Receiver number | 0 |
CCC | ISO country code | DEU |
S | data source | R |
YYYYDDDHHMM | start epoch | 20150070000 |
YYYY | year | 2015 |
DDD | day of year | 007 |
HH | hour | 00 |
MM | minute | 00 |
NNN | nominal file period (nominal) | 01H |
FRQ | data frequency | 30S |
TT | data type | MO |
FMT | format extension | rnx |
CMP | compression method | gz, bz2, ... |
For more details, see RINEX-3 file format definitions.
Automatic Output File Naming¶
For an automatic output file naming, one can use the ::RX2::, ::RX3:: or RX4:: parameter for the -fout
command line switch.
RINEX-2 Site Name¶
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.
RINEX-3 Site Name¶
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.
gfzrnx -finp pots0070.15o -fout ::RX3::pots,00,DEU
gfzrnx -finp pots0070.15o -fout /tmp/::RX3::pots,00,DEU
The following examples will give the same result for a 4-char header. MARKER NAME is set. The parameters order is not relevant.
The output file name will be: POTS00DEU_R_20150070000_01H_30S_MO.rnx.
The default data source identifier is R (Receiver). If one needs the S (Streaming), simply add it to the ::RX3:: sub-information.
gfzrnx -finp pots0070.15o -fout ::RX3::00,DEU,S
gfzrnx -finp pots0070.15o -fout /tmp/::RX3::00,DEU,S
The output file name will be: POTS00DEU_S_20150070000_01H_30S_MO.rnx.
RINEX-3 Site Name (-4to9)¶
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:
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.
An up-to-date 4to9
configuration file for diverse networks like IGS, MGEX, EUREF, TIGA and others can be derived from GFZ's
SEnsor Meta Information SYStem (SEMISYS) via a simple command line:
curl -G http://semisys.gfz-potsdam.de/semisys/api/ -d 'symname=1005' -d 'network=EPN' -o EPN_4to9.txt
curl -G http://semisys.gfz-potsdam.de/semisys/api/ -d 'symname=1005' -d 'network=IGS,MGEX' -o IGS_MGEX_4to9.txt
curl -G http://semisys.gfz-potsdam.de/semisys/api/ -d 'symname=1005' -d 'network=EPN,IGS,MGEX,TIGA' -o ALL_4to9.txt
For more details see the SEMISYS api and download page http://semisys.gfz-potsdam.de/semisys/download.
RINEX-2 Start Epoch/Duration¶
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.
Duration | < 1 hour | 1 hour | > 1 hour |
---|---|---|---|
::RX2:: | abcd122d05.15o | abcd122d.15o | abcd1220.15o |
::RX2L:: | abcd122d05.15o | abcd122d05.15o | abcd122d05.15o |
::RX2S:: | abcd122d.15o | abcd122d.15o | abcd122d.15o |
::RX2D:: | abcd1220.15o | abcd1220.15o | abcd1220.15o |
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:
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2::
TMP/pots125x15.13o
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2L::
TMP/pots125x15.13o
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2L:: -d 120
TMP/pots125x16.13o
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2L:: -sei in
TMP/pots125x15.13o
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2L:: -epo_beg 2015125_230000 -d 1800
TMP/pots125x00.13o
gfzrnx -kv -finp pots125x15.13o -fout TMP/::RX2S::
TMP/pots125x.13o
RINEX-3 Start Epoch/Duration (real)¶
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.
Characteristics | pots0070.15o | pots007c.15o | pots007c30.15o |
---|---|---|---|
Time Begin | 01:12:30 | 02:13:30 | 02:33:13 |
Time End | 23:59:30 | 02:55:30 | 02:44:50 |
Duration (implicit) | 1 day | 1 hour | unknown |
Duration (nominal) | 1 day | 1 hour | 15 min |
Duration (real hh: mm: ss) | 22:47:00 | 00:42:00 | 00:11:37 |
Sampling Rate | 30s | 30s | 1s |
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 |
RINEX-3 Start Epoch/Duration (nominal)¶
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.
gfzrnx -finp file.rnx -fout ::RX3::ABCD,05,DEU -epo_beg 20150812_020000 -d 3600
gfzrnx -finp pots0070.15o -fout ::RX3::00,DEU -epo_beg 20150107_000000 -d 86400
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.
RINEX-2 | command line parameters | RINEX-3 |
---|---|---|
pots0070.15o | -sei in | POTS00DEU_R_20150070000_01D_30S_MO.rnx |
pots007c.15o | -sei in | POTS00DEU_R_20150070200_01H_30S_MO.rnx |
pots007c30.15o | -sei in -d 900 | POTS00DEU_R_20150070230_15M_01S_MO.rnx |
RINEX-3 Mixed Broadcast Splice File Naming -nav_mixed¶
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.