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        cnav_ura_ned_m, cnav_ura_nominal_m, encode_nav, parse_glonass, parse_glonass_lenient,
28        parse_iono_corrections, parse_leap_seconds, parse_nav, parse_nav_lenient,
29        BroadcastGroupDelayTerm, BroadcastGroupDelays, BroadcastRecord, CnavParameters, CnavSignal,
30        GlonassParse, GlonassRecord, IonoCorrections, KlobucharAlphaBeta, NavMessage,
31        NavMessagePreference, NavParse, NavParseError, SkippedGlonass, SkippedNavBlock,
32    };
33
34    /// Parse a RINEX NAV text into an evaluated broadcast ephemeris store.
35    pub type BroadcastEphemeris = crate::rinex_nav::BroadcastStore;
36}
37
38/// RINEX observation parsing and pseudorange extraction.
39pub mod observations {
40    pub use crate::rinex_obs::{
41        band_frequency_hz, carrier_phase_rows, observation_frequency_hz, observation_values,
42        pseudoranges, AntennaInfo, CarrierPhaseRow, ObsEpoch, ObsEpochTime, ObsHeader,
43        ObsLeapSeconds, ObsPhaseShift, ObsScaleFactor, ObsValue, ObservationFilter,
44        ObservationKind, ObservationValueRow, PgmRunByDate, ReceiverInfo, RinexObs, SignalPolicy,
45    };
46
47    /// Role-oriented alias for a parsed RINEX observation file.
48    pub type ObservationFile = RinexObs;
49}
50
51/// RINEX observation/navigation lint and mechanical repair.
52pub mod qc {
53    pub use crate::rinex_qc::{
54        lint_nav_text, lint_obs, lint_obs_text, repair_nav, repair_nav_text, repair_obs,
55        repair_obs_text, repair_obs_to_crinex_string, AppliedEdit, Finding, FindingRef,
56        HeaderEditError, LintReport, NavRepair, ObsHeaderEdit, ObsRepair, RepairAction,
57        RepairOptions, Severity,
58    };
59}
60
61pub use clock::RinexClock;
62pub use crinex::{decode as decode_crinex, decode_to as decode_crinex_to, encode_crinex};
63pub use nav::{parse_glonass, parse_iono_corrections, parse_leap_seconds, parse_nav};
64pub use observations::{pseudoranges, ObservationFile};