1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//! # sidereon-core
//!
//! The complete Sidereon engine in one crate. It folds the numerical
//! astrodynamics core (orbit propagation, force models, frames, time, SGP4)
//! together with the GNSS domain layer (SP3, broadcast ephemeris, multi-GNSS
//! positioning, RTK/PPP, ionosphere/troposphere, DOP).
//!
//! - The propagation/astro layer is always present under the [`astro`] module.
//! - The GNSS layer lives behind the default-on `gnss` cargo feature, so a
//! propagation-only consumer can build with `--no-default-features` (plus
//! any astro features it wants) and never compile the IONEX/SP3 parsers.
//!
//! The GNSS façade is organized by user-facing tasks:
//!
//! - [`ephemeris`] - precise SP3 and broadcast ephemeris products,
//! - [`rinex`] - RINEX navigation/observation parsing and CRINEX decoding,
//! - [`antex`] - ANTEX receiver and satellite antenna calibration parsing,
//! - [`combinations`] - observable linear combinations such as ionosphere-free,
//! - [`observables`] - forward range, Doppler, and azimuth/elevation prediction,
//! - [`velocity`] - receiver velocity and clock-drift solve from range-rate data,
//! - [`positioning`] - single-point positioning and DOP diagnostics,
//! - [`dgnss`] - code-differential pseudorange correction and rover pairing,
//! - [`quality`] - pseudorange weighting, RAIM, and FDE integrity checks,
//! - [`signal`] - GPS C/A code generation, correlation, and acquisition,
//! - [`ppp_corrections`] - static-arc PPP correction precomputation,
//! - [`atmosphere`] - ionosphere and troposphere corrections,
//! - [`orbit`] - compact reduced-orbit fitting/evaluation.
//!
//! Implementation modules (`sp3`, `rinex_nav`, `spp`, etc.) are crate-private.
//! This is a clean public surface rather than a compatibility shim around the
//! original implementation-shaped module layout.
//!
//! ## Units policy (internal representation)
//!
//! All quantities are stored and computed in **SI base units**, with the frame
//! and datum encoded in the type name (per the spec's frames-in-the-type-system
//! rule), never hidden behind a bare `position_m`:
//!
//! - **Length / position:** meters (`_m`). SP3 positions are ITRF/IGS-frame
//! ECEF meters; SPP receiver positions are WGS84/ITRF-compatible ECEF meters.
//! (The [`astro`] state layer works in kilometers; conversions happen
//! explicitly at the boundary, never implicitly.)
//! - **Time / clock:** seconds (`_s`). Epochs are represented by the [`astro`]
//! time family (`Instant`/`TimeScale`), always scale-tagged; there is no bare
//! ambiguous epoch.
//! - **Velocity:** meters per second (`_m_s`).
//! - **Angles:** radians (`_rad`) internally. Degrees appear only at I/O edges
//! and are named `_deg`.
//! - **Frequency:** hertz (`_hz`).
//!
//! Field and parameter names carry the unit suffix so the unit is visible at
//! every call site. Matrix/vector linear algebra uses `nalgebra`
//! (`DMatrix`/`DVector`) per the spec.
extern crate self as sidereon_core;
// ---------------------------------------------------------------------------
// Astro / propagation layer. Always present. The GNSS layer below depends on
// it via `crate::astro::*`.
// ---------------------------------------------------------------------------
pub
// ---------------------------------------------------------------------------
// GNSS domain layer. Behind the default-on `gnss` feature so a propagation-only
// consumer can opt out. Additional product modules are added as each lands.
// ---------------------------------------------------------------------------
// shared RTK/PPP cycle-slip policy + wide-lane/narrow-lane prep
// shared ANTEX PCV/PCO zenith/azimuth interpolation kernels
// ANTEX receiver/satellite antenna parser + PCO/PCV lookup
// Bias-SINEX and DCB bias products
// broadcast-ephemeris (GPS LNAV / Galileo I/NAV) orbit + clock
// broadcast-vs-precise (SISRE orbit/clock) accuracy
// carrier-phase combinations, cycle-slip detection, Hatch smoothing
// shared physical/time constants (used by astro + gnss)
// GNSS constellation identity catalog (CelesTrak/NAVCEN)
// Hatanaka (CRINEX) observation-file decoder
// sans-IO GNSS product filename and archive URL catalog
// dilution-of-precision geometry (GDOP/PDOP/HDOP/VDOP/TDOP)
// canonical GNSS carrier-frequency table
// GLONASS PZ-90.11 state-vector RK4 propagation
// Klobuchar broadcast model + IONEX ionospheric maps
// navigation-message bit-level codecs (GPS LNAV)
// forward GNSS observable prediction
// static-arc PPP correction tables
// static multi-epoch PPP float solve
// compact mean-element orbit approximation (fitted)
// RINEX clock satellite-bias parsing and interpolation
// shared RINEX header concepts (time-system label mapping)
// RINEX 3 navigation-message parsing (GPS/Galileo broadcast)
// RINEX 3 observation parsing + single-frequency pseudoranges
// RTCM 3 differential-GNSS stream decode/encode (MSM, station, ephemeris)
// RTK double-difference construction
// GPS C/A code, coherent correlation, and acquisition
// SP3-c / SP3-d parser + arbitrary-epoch interpolation
// single-point positioning (least-squares PVT)
// SSR correction store and corrected broadcast ephemeris source
// product-staleness graceful degradation for time-varying products
// Saastamoinen zenith + Niell (NMF) mapping troposphere
// receiver velocity / clock-drift least-squares solve
// Phase-2 estimation substrate: named operation-order recipes
// geoid undulation grid + bilinear interpolation (orthometric heights)
// integer least squares ambiguity-resolution kernels
// measurement weighting, RAIM, and FDE integrity checks
// sequential RTK baseline filter - serializable state ABI (kernel migration)
pub use ;
pub use ;
pub use ;
pub use ;