RINEX
Rust tool suites to parse, analyze and process RINEX
files
-
rinex
is the core library -
rinex-cli
is a command line application based on the core library.
It can be used to process RINEX files or perform operations similar toteqc
.
The application is auto-generated for a few architectures, download it from the release portal -
rnx2crx
is a RINEX compression program -
crx2rnx
is a CRINEX decompression program (Compact RINEX to RINEX) -
sinex
SNX dedicated core library -
ublox-rnx
is an application that connects to aUblox
receiver and generates RINEX data quickly & easily.
It is the combination of the ublox and rinex crates.
By default, all timestamps are in UTC with leap seconds correctly managed.
RINEX
types
Supported Type | Parser | Writer | CLI | UBX | Notes |
---|---|---|---|---|---|
Navigation (NAV) | Ephemeris |
Epoch iteration | |||
Observation (OBS) | Epoch iteration | ||||
CRINEX (Compressed OBS) | RNX2CRX1 |
Epoch iteration | |||
Meteorological data (MET) | Epoch iteration | ||||
Clocks (CLK) | Epoch iteration | ||||
Antenna (ATX) | Sorted by antex::Antenna |
||||
Ionosphere Maps (IONEX) | Epoch iteration | ||||
SINEX (SNX) | SINEX are special RINEX, they are managed by a dedicated core library | ||||
Troposphere (TRO) | Troposphere are one possible SINEX declination | ||||
Bias (BIA) | Bias solutions are one possible SINEX declination |
CLI +
File formats
Format | File name restrictions | Support |
---|---|---|
RINEX | ||
CRINEX | ||
RINEX + gzip |
Must end with .gz |
Compile with --flate2 feature, or uncompress manually first |
CRINEX + gzip |
Must end with .gz |
Compile with --flate2 feature, or uncompress manually first |
.Z |
โ ๏ธ
Known weaknesses - Glonass Time Scale is not known to this day. We cannot parse and apply system time corrections from other time scales into the glonass time scale.
Record
High level operations can be performed on RINEX records and RINEX structure in general. Refer to the official Documentation.
RINEX Records vary a lot from one revision to another and from one file type to another. To learn how to browse the RINEX record you are interested in, refer to its definition in the official documentation. For example, here is the Observation Record definition.
Features
--serde
enables main RINEX structures serialization and deserialization
-
--sbas
: SBAS (stationnary augmentation systems related features).
selection_helper(), select a SBAS for a given location on Earth. -
--flate2
allow native parsing of .gz compressed RINEX files. Otherwise, user must uncompress manually the.gz
extension first.
Benchmark
Test | Results |
---|---|
textdiff/decompression/epoch | 979.55 ns |
textdiff/decompression/flag | 147.16 ns |
numdiff/decompression/small | 191.86 ns |
numdiff/decompression/big | 1.0973 ยตs |
parsing/OBSv2/zegv0010.21o | 951.40 ยตs |
parsing/OBSv3/ACOR00ESP | 4.1139 ms |
processing/esbc00dnkr2021/mask:gnss | 352.81 ms |
processing/esbc00dnkr2021/mask:obs | 438.73 ms |
processing/esbc00dnkr2021/mask:sv | 341.42 ms |
processing/esbc00dnkr2021/smooth:hatch:l1c,l2c | 502.90 ms |
Contributions
Contributions are welcomed, do not hesitate to open new issues and submit Pull Requests.
If you want to take part in active developments, checkout our TODO list