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.
16pub mod crinex {
17    pub use crate::crinex::{decode, decode_to};
18}
19
20/// RINEX navigation-message parsing.
21pub mod nav {
22    pub use crate::ionex::GalileoNequickCoeffs;
23    pub use crate::rinex_nav::{
24        parse_glonass, parse_iono_corrections, parse_leap_seconds, parse_nav,
25        BroadcastGroupDelayTerm, BroadcastGroupDelays, BroadcastRecord, GlonassRecord,
26        IonoCorrections, KlobucharAlphaBeta, NavMessage, NavParseError,
27    };
28
29    /// Parse a RINEX NAV text into an evaluated broadcast ephemeris store.
30    pub type BroadcastEphemeris = crate::rinex_nav::BroadcastStore;
31}
32
33/// RINEX observation parsing and pseudorange extraction.
34pub mod observations {
35    pub use crate::rinex_obs::{
36        band_frequency_hz, carrier_phase_rows, observation_frequency_hz, observation_values,
37        pseudoranges, CarrierPhaseRow, ObsEpoch, ObsEpochTime, ObsHeader, ObsPhaseShift,
38        ObsScaleFactor, ObsValue, ObservationFilter, ObservationKind, ObservationValueRow,
39        RinexObs, SignalPolicy,
40    };
41
42    /// Role-oriented alias for a parsed RINEX observation file.
43    pub type ObservationFile = RinexObs;
44}
45
46pub use clock::RinexClock;
47pub use crinex::{decode as decode_crinex, decode_to as decode_crinex_to};
48pub use nav::{parse_glonass, parse_iono_corrections, parse_leap_seconds, parse_nav};
49pub use observations::{pseudoranges, ObservationFile};