Skip to main content

sidereon_core/
rinex.rs

1//! RINEX and CRINEX parsing.
2//!
3//! Parsing is separated from ephemeris evaluation: navigation records can be
4//! parsed through [`nav`] or loaded into an [`crate::ephemeris::BroadcastEphemeris`],
5//! while observation files are parsed through [`observations`].
6
7/// RINEX clock parsing and satellite clock-bias interpolation.
8pub mod clock {
9    pub use crate::rinex_clock::{
10        civil_to_clock_instant, civil_to_gps_seconds, ClockEpoch, ClockPoint, RinexClock,
11        RinexClockError,
12    };
13}
14
15/// Hatanaka/CRINEX observation-file decoding and encoding.
16pub mod crinex {
17    pub use crate::crinex::{
18        decode, decode_to, encode_crinex, encode_stream, parse_stream, CrinexVersion, EpochRecord,
19        ObsEpoch, ObsStream, SatRecord,
20    };
21}
22
23/// RINEX navigation-message parsing.
24pub mod nav {
25    pub use crate::ionex::GalileoNequickCoeffs;
26    pub use crate::rinex_nav::{
27        encode_nav, parse_glonass, parse_glonass_lenient, parse_iono_corrections,
28        parse_leap_seconds, parse_nav, BroadcastGroupDelayTerm, BroadcastGroupDelays,
29        BroadcastRecord, GlonassParse, GlonassRecord, IonoCorrections, KlobucharAlphaBeta,
30        NavMessage, NavParseError, SkippedGlonass,
31    };
32
33    /// Parse a RINEX NAV text into an evaluated broadcast ephemeris store.
34    pub type BroadcastEphemeris = crate::rinex_nav::BroadcastStore;
35}
36
37/// RINEX observation parsing and pseudorange extraction.
38pub mod observations {
39    pub use crate::rinex_obs::{
40        band_frequency_hz, carrier_phase_rows, observation_frequency_hz, observation_values,
41        pseudoranges, CarrierPhaseRow, ObsEpoch, ObsEpochTime, ObsHeader, ObsPhaseShift,
42        ObsScaleFactor, ObsValue, ObservationFilter, ObservationKind, ObservationValueRow,
43        RinexObs, SignalPolicy,
44    };
45
46    /// Role-oriented alias for a parsed RINEX observation file.
47    pub type ObservationFile = RinexObs;
48}
49
50pub use clock::RinexClock;
51pub use crinex::{decode as decode_crinex, decode_to as decode_crinex_to, encode_crinex};
52pub use nav::{parse_glonass, parse_iono_corrections, parse_leap_seconds, parse_nav};
53pub use observations::{pseudoranges, ObservationFile};