Skip to main content

Crate sidereon_core

Crate sidereon_core 

Source
Expand description

§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,
  • observation_qc - RINEX observation completeness and signal rollups,
  • 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.

Re-exports§

pub use frame::geodetic_to_itrf;
pub use frame::itrf_to_geodetic;
pub use frame::FrameValueError;
pub use frame::ItrfPositionM;
pub use frame::ItrfVelocityMS;
pub use frame::Wgs84Geodetic;
pub use geoid::egm96_undulations_deg;
pub use geoid::egm96_undulations_rad;
pub use geoid::ellipsoidal_height_m;
pub use geoid::geoid_undulation;
pub use geoid::geoid_undulations_deg;
pub use geoid::geoid_undulations_rad;
pub use geoid::orthometric_height_m;
pub use geoid::GeoidError;
pub use geoid::GeoidGrid;

Modules§

antex
ANTEX 1.4 receiver and satellite antenna parser.
astro
Numerical astrodynamics engine for orbit propagation, force models, and future flight-dynamics primitives.
atmosphere
GNSS atmospheric correction models.
bias
Offline GNSS code and phase bias products.
broadcast_comparison
Broadcast-ephemeris accuracy: compare a broadcast navigation product against a precise SP3 product over a window (the orbit/clock pieces of the signal-in-space range error, SISRE).
carrier_phase
Carrier-phase combinations, cycle-slip detection, and Hatch smoothing.
combinations
GNSS observable linear combinations.
constants
Shared GNSS constants.
constellation
GNSS constellation identity catalog and validation helpers.
data
Data product filename, cache path, and archive URL catalog.
dgnss
Code-differential GNSS (DGPS) pseudorange corrections.
ephemeris
Ephemeris products and satellite orbit/clock evaluation.
estimation
GNSS estimation substrate (Phase-2).
frame
Frame-tagged position types.
frequencies
Canonical GNSS carrier-frequency table.
geoid
Geoid undulation (geoid height) lookup with bilinear interpolation.
geometry
GNSS geometry primitives.
ils
Integer least squares - ambiguity-resolution kernels for precise / RTK positioning.
navigation
GNSS navigation-message synthesis and decoding.
nmea
Sans-I/O NMEA 0183 sentence parsing and GGA writing.
ntrip
NTRIP client request, response, and stream handling.
observables
Forward GNSS observable prediction.
observation_qc
RINEX observation-file quality-control rollups.
orbit
Compact orbit approximations.
positioning
Single-point positioning and GNSS geometry diagnostics.
ppp_corrections
Static-arc PPP correction precomputation.
precise_positioning
Static multi-epoch PPP float/fixed positioning.
prelude
Convenient imports for common GNSS workflows.
qc_obs
RINEX observation quality-control rollups.
quality
Measurement-quality control for GNSS positioning.
rinex
RINEX and CRINEX parsing.
rtcm
RTCM 3 differential-GNSS stream decoding and encoding.
rtk
RTK double-difference primitives.
rtk_filter
Sequential and static RTK baseline filtering, split into focused submodules.
sbas
signal
GPS L1 C/A code generation, coherent correlation, and acquisition.
ssr
Engineering-unit State Space Representation corrections.
staleness
Product-staleness graceful degradation for time-varying GNSS products.
terrain
DTED tile reader and bilinear terrain lookup.
tides
Solid-earth tide station displacement (IERS Conventions, Chapter 7).
tolerances
Shared named numerical tolerances for GNSS modeling kernels.
velocity
Receiver velocity and clock-drift solve from GNSS range-rate observations.

Structs§

GnssSatelliteId
A satellite identifier: a constellation plus its within-system PRN/slot.

Enums§

Error
Errors produced by the sidereon-core crate.
GnssSystem
A GNSS constellation (satellite system).
SatelliteIdError
Error returned when constructing a GNSS satellite identifier from invalid input.

Type Aliases§

Result
Result alias for fallible sidereon-core operations.