Skip to content
forked from georust/rinex

RINEX compression, analysis & processing 🛰️

License

Notifications You must be signed in to change notification settings

FlowLoveV/rinex

 
 

Repository files navigation

RINEX

Rust crates.io crates.io

minimum rustc: 1.64 License License

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

Advantages 🚀

  • 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
  • Parial Clock RINEX support
  • Several pre processing operations:
    • File merging
    • Time binning
    • Filtering..
  • Several post processing operations
  • All modern GNSS constellations
  • Modern GNSS codes and signals
  • Time scales: GPST, BDT, GST, UTC
  • Supports many SBAS, refer to online documentation
  • High precision RINEX (carrier phase micro cycle precision)
  • High precision orbit support (SP3)
  • Quality Check (QC): file quality and statistical analysis to help precise positioning (historical teqc function).
  • SPP: Single Point Positioning
  • PPP: Precise Point Positioning is work in progress ⚠️

Disadvantages ⚠️

  • 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

Repository

  • rinex is the core library

  • rinex-cli : an application dedicated to RINEX post processing. It supports some of teqc 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 between rinex and rinex-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.

Other tools and relevant Ecosystems

Formats & revisions

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.

RINEX formats & applications

Type Parser Writer CLI UBX Content Record browsing
Navigation (NAV) ✔️ Ephemeris 🚧 V4 🚧 ✔️ 📈 🚧 Orbit parameters, Ionospheric models.. Epoch iteration
Observation (OBS) ✔️ ✔️ ✔️ 📈 🚧 Phase, Pseudo Range, Doppler, SSI Epoch iteration
CRINEX (Compressed OBS) ✔️ RNX2CRX1 ✔️ RNX2CRX3 🚧 ✔️ 📈 🚧 Phase, Pseudo Range, Doppler, SSI Epoch iteration
Meteorological data (MET) ✔️ ✔️ ✔️ 📈 🚧 Meteo sensors data (Temperature, Moisture..) Epoch iteration
Clocks (CLK) ✔️ 🚧 🚧 🚧 Clock comparison Epoch iteration
Antenna (ATX) ✔️ 🚧 🚧 🚧 Antenna calibration data Sorted by antex::Antenna
Ionosphere Maps (IONEX) ✔️ 🚧 ✔️ 📈 🚧 Ionosphere Electron density Epoch iteration
SINEX (SNX) 🚧 🚧 🚧 SINEX are special RINEX, they are managed by a dedicated core library Epoch iteration
Troposphere (TRO) 🚧 🚧 🚧 Troposphere modeling Epoch iteration
Bias (BIA) ✔️ 🚧 🚧 Bias estimates, like DCB.. Epoch iteration

✔️ means all revisions supported
🚧 : Work in Progress
CLI + 📈 means the cli app provides one or several visualizations

The cli app accepts more than RINEX input, for example SP3 (high precision orbits) are accepted.

File formats

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
SP3 ✔️
gzip compressed SP3 Name must end with .gz --flate2 feature must be enabled

➖ No restrictions: file names do not have to follow naming conventions.

Special Thanks

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

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.

About

RINEX compression, analysis & processing 🛰️

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.1%
  • Other 0.9%