Skip to content

georust/rinex

RINEX

Rust Rust crates.io crates.io

minimum rustc: 1.64 License License

Parser and write for RINEX, SP3 and SINEX data. All these formats are open source solutions to answer the requirements of GNSS navigation.

Use Github Issues to report bugs and other malfunctions.
You can also open a Discussion or leave us a message on Discord.

Advantages 🚀

  • Fast
  • Open sources: read and access all the code!
  • All modern GNSS constellations, codes and signals
    • Surveying with GPS, Galileo, BeiDou and QZSS
  • Time scales: GPST, QZSST, BDT, GST, UTC, TAI
  • RINEX V4 full support
  • Efficient seamless compression and decompression
  • Most RINEX formats supported (see following table)
  • High Precision Clock RINEX products (for PPP)
  • High Precision Orbital SP3 for PPP
  • DORIS (special RINEX)
  • Many pre-processing algorithms including Filter Designer
  • Several file operations: merging, splitting, time binning (batch)

Warnings ⚠️

  • The BINEX parser does not support all frames yet
  • Navigation is currently not feasible with Glonass and IRNSS
  • Differential navigation (SBAS, DGNSS or RTK) is not support yet
  • Our applications do not accept proprietary formats like Septentrio for example
  • File production might lack some features, mostly because we're currently focused on data processing

Repository

  • rinex is the core library
  • tutorials is a superset of scripts (Linux/MacOS compatible) to get started quickly. The examples span pretty much everything our applications allow.
  • sp3 High Precision Orbits (by IGS)
  • binex BINEX Encoding and Decoding library
  • sinex SNX dedicated core library
  • tools are utility scripts and development tools

This repository now only hosts parser libraries: previous applications have been moved to the RTK-rs workspace.

Citation and referencing

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

Formats & revisions

The parser supports RINEX V4.0, that includes RINEX V4 Navigation files.
We support the latest revisions for both IONEX and Clock RINEX.
We support the latest (rev D) SP3 format.

RINEX formats & applications

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 (any)
CRINEX (Compressed OBS) ✔️ RNX2CRX1 ✔️ RNX2CRX3 🚧 ✔️ 📈 Phase, Pseudo Range, Doppler, SSI Epoch GNSS (any)
Meteorological data (MET) ✔️ ✔️ ✔️ 📈 Meteo sensors data (Temperature, Moisture..) Epoch UTC
Clocks (CLK) ✔️ 🚧 ✔️ 📈 Precise SV and Reference Clock states Epoch GNSS (any)
Antenna (ATX) ✔️ 🚧 🚧 Precise RX/SV Antenna calibration antex::Antenna
Ionosphere Maps (IONEX) ✔️ 🚧 ✔️ 📈 Ionosphere Electron density Epoch UTC
DORIS RINEX ✔️ 🚧 ✔️ Temperature, Moisture, Pseudo Range and Phase observations 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

Other formats

Contributions

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.