Hello and welcome on board 👋
Use the github portal to submit PR, all contributions are welcomed.
Don't forget to run a quick cargo fmt
prior any submissions, so the CI/CD does not fail
on coding style "issues".
This crate and ecosystem is part of the RTK-rs framework and community.
You can contact us on Discord
The RINEX library is architectured per RINEX formats. We support
- Observation RINEX
- Navigation RINEX
- IONEX
- Clock RINEX
- ANTEX
- DORIS
- and Meteo RINEX
For each supported RINEX types, you will find the related to section in a dedicated folder,
for example src/navigation
for Navigation RINEX.
For each record type, we define two custom types, K
and V
to describe the file content and be
indexed in a Map (either Hash or BTree). This principle has proved sufficient and very powerful.
The crate is undergoing a simplification phase where the record types are being simplified.
In otherwords, a simple Map<K, V>
is then enough to represent the file content: that was not the case
in previous versions. This is true for most types but not all of them as of today!
For that reason, this parser requires the std
lib and we don't have plans to remove that dependency.
SV
and Constellation
support is provided by our general purposes GNSS library.
Epoch
, Duration
and Timescales
are defined within Hifitime
.
src/observable
desfines RINEX Observable, as used in many RINEX formats.src/carrier
defines carrier signals
## Notes on CRINEX (RINEX compression)
Support for the CRINEX algorithm and compression technique
is provided in the src/hatanaka
module, named after Y. Hatanaka who invented this compression algorithm, dedicated to Observation RINEX.
We have a very complete & powerful infrastructure that support the algorithm both ways and have demonstrated bit by bit reciprocity. The algorithm is tested in many ways in our CI and benchmarked on github.com. This makes our library the most complete when it comes to supporting this compression technique as of today.
The crate comes with a build script that defines the Navigation messages to be supported (written as dictionary).