Rust tool suites to parse, analyze and process RINEX Data.
The Wiki pages is the main documentation portal. It contains several examples spanning different GNSS applications.
If you have any question or experience any problems, feel free to open an issue on Github.
You can also contact us on our Discord channel
- Fast 🦀
- Open sources
- Seamless Hatanaka compression and decompression
- Seamless Gzip decompression with
flate2
build option - RINEX V4 full support
- Meteo RINEX full support
- IONEX 2D support. Partial IONEX 3D support.
- Partial ANTEX support
- Full support of High Precision Clock RINEX products
- Full support of SP3 High precision orbit products
- Several pre processing algorithms:
- Several post processing operations
- All modern GNSS constellations, codes and signals
- Time scales: GPST, BDT, GST, UTC
- SBAS support
- High precision phase data (micro cycle precision) theoretically supported but not tested yet
- Quality Check (QC): file quality and statistical analysis to help precise positioning
(historical
teqc
function).
- QZNSST is represented as GPST at the moment.
- We're waiting for Hifitime V4 to support GLONASST and IRNSST.
Until then, orbital calculations on these systems are not feasible.
In other term, positioning is not feasible and you're limited to basic analysis. - These tools are oriented towards the latest revisions of the RINEX format. RINEX4 is out and we already support it. Some minor features in the RINEX2 or 3 revisions may not be supported.
- Our command line applications do not accept BINEX or other proprietary formats
- File production is not fully concluded to this day. We're currently focused on RINEX post processing rather than RINEX data production. Do not hesitate to fork and submit your improvements
-
rinex
is the core library -
rinex-cli
: an application dedicated to RINEX post processing. It supports some ofteqc
operations. It integrates a position solver and can format CGGTTS tracks for clock comparison. The application is auto-generated for a few architectures, download it from the release portal -
sp3
High Precision Orbits (by IGS) -
rnx2crx
is a RINEX compressor (RINEX to Compact RINEX) -
crx2rnx
is a CRINEX decompresor (Compact RINEX to RINEX) -
rinex-qc
is a library dedicated to RINEX files analysis -
qc-traits
declares Traits that are shared betweenrinex
andrinex-qc
-
sinex
SNX dedicated core library -
ublox-rnx
is an application intended to generate RINEX Data from raw uBlox GNSS receiver frames. This application is work in progress at the moment.
- Nyx-space: Navigation, Orbital attitude
- Hifitime: Precise Timing, Timescales, ...
- CGGTTS: Common View Time Transfer
- RTK-RS: Precise Positioning
- GNSS definitions in Rust: GNSS library
If you need to reference this work, please use the following model:
GeoRust RINEX Team (2023), RINEX: analysis and processing (Apache-2/MIT), https://georust.org
The core library supports parsing RINEX V4.00 and the current behavior is to fail on higher revisions. NAV V4 is correctly supported as described in the following table.
We support the latest revisions for both IONEX and Clock RINEX.
We support the latest (rev D) SP3 format.
Type | Parser | Writer | CLI | Content | Record Iteration | Timescale |
---|---|---|---|---|---|---|
Navigation (NAV) | ✔️ | 🚧 | ✔️ 📈 | Ephemerides, Ionosphere models | Epoch | SV System time broadcasting this message |
Observation (OBS) | ✔️ | ✔️ | ✔️ 📈 | Phase, Pseudo Range, Doppler, SSI | Epoch | GNSS |
CRINEX (Compressed OBS) | ✔️ | RNX2CRX1 ✔️ RNX2CRX3 🚧 | ✔️ 📈 | Phase, Pseudo Range, Doppler, SSI | Epoch | GNSS |
Meteorological data (MET) | ✔️ | ✔️ | ✔️ 📈 | Meteo sensors data (Temperature, Moisture..) | Epoch | UTC |
Clocks (CLK) | ✔️ | 🚧 | ✔️ 📈 | Precise SV and Reference Clock states | Epoch | UTC |
Antenna (ATX) | ✔️ | 🚧 | 🚧 | Precise RX/SV Antenna calibration | antex::Antenna |
➖ |
Ionosphere Maps (IONEX) | ✔️ | 🚧 | ✔️ 📈 | Ionosphere Electron density | Epoch | UTC |
DORIS RINEX | 🚧 | 🚧 | 🚧 | DORIS Measurements | Epoch | TAI |
SINEX (SNX) | 🚧 | 🚧 | ➖ | SINEX are special RINEX, they are managed by a dedicated core library | Epoch | ❓ |
Troposphere (TRO) | 🚧 | 🚧 | ❓ | Troposphere modeling | Epoch | ❓ |
Bias (BIA) | ✔️ | 🚧 | ❓ | Bias estimates, like DCB.. | Epoch | ❓ |
✔️ means all revisions supported
🚧 : means Work in Progress
CLI : possibility to load this format in the apps.
CLI + 📈 : possibility to project or extract and plot this format.
RINEX-Cli
accepts more than RINEX data.
Type | Parser | Writer | CLI | Content | Record Iteration | Timescale |
---|---|---|---|---|---|---|
SP3 | ✔️ | 🚧 Work in progress | ✔️ 📈 | High precision SV orbital state | Epoch | GNSS |
Format | File name restrictions | Support |
---|---|---|
RINEX | ➖ | ✔️ |
CRINEX | ➖ | ✔️ |
gzip compressed RINEX | Name must end with .gz |
--flate2 feature must be enabled |
gzip compressed CRINEX | Name must end with .gz |
--flate2 feature must be enabled |
DORIS RINEX | 🚧 Work in progress | 🚧 Work in progress |
gzip compressed DORIS | 🚧 Work in progress | 🚧 Work in progress |
SP3 | ➖ | ✔️ |
gzip compressed SP3 | Name must end with .gz |
--flate2 feature must be enabled |
BINEX | ➖ | ➖ We do not support proprietary formats |
UBX | ➖ | 🚧 Work in progress |
➖ No restrictions: file names do not have to follow naming conventions.
These tools would not exist without the great libraries written by C. Rabotin, check out his work.
Some features would not exist without the invaluable help of J. Lesouple, through our countless discussions. Check out his PhD manuscript (french)
Contributions are welcomed, do not hesitate to open new issues and submit Pull Requests through Github.
If you want to take part in active developments, check out our contribution guidelines and hints to navigate this library quicker.