Validation and evidenceEdit on GitHubSource: docs/STANDARDS.md

Standards & interoperability

Kshana speaks the standard interchange formats of the GNSS (global navigation satellite system), flight-dynamics, and timing communities so it can sit alongside RTKLIB (an open-source real-time kinematic positioning library), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit, and the IGS (International GNSS Service) analysis-centre tooling rather than on a private island. This page maps the interchange formats the engine parses or emits to the module that implements each one and to the authoritative specification.

It is scoped to formats — things with a read/write direction. The signal and algorithm standards the engine implements rather than parses (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (formerly the Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), the ARAIM (advanced receiver autonomous integrity monitoring) WG-C (WG: Working Group) reference, CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) are evidenced row by row in VERIFICATION-MATRIX.md instead.

Formats the engine speaks#

Standard Direction Module Spec / authority Notes
CCSDS OEM (Orbit Ephemeris Message) read and write src/oem.rs CCSDS 502.0-B Orbit Data Messages, KVN (keyword-value notation) form Tabulated state-vector ephemeris ingested by GMAT, Orekit, STK (Systems Tool Kit). parse_oem reads it back; validated by recovering the verbatim CCSDS 502.0-B-3 Figure G-11 Blue Book example (tests/ccsds_reference.rs). The optional 6×6 position/velocity covariance block (COVARIANCE_START … COVARIANCE_STOP, the 21-element lower-triangle KVN serialization with an optional COV_REF_FRAME) is both written (covariance_block_kvn) and read (parse_covariance_block), round-trip-symmetric (src/oem.rs tests).
CCSDS OMM (Orbit Mean-Elements Message) write src/omm.rs CCSDS 502.0-B-2, KVN form Standards-track publication of SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: two-line element set) mean elements (mean motion, e, i, Ω, ω, M, BSTAR (the drag term of the orbit propagator)). CLI-reachable (CLI: command-line interface) on an orbit scenario via --export-omm <out.omm> or export_omm = true (one OMM per TLE-defined satellite, with its real NORAD (North American Aerospace Defense Command) id, COSPAR (Committee on Space Research) designator, and epoch; tests/sp3_export_roundtrip.rs). XML (Extensible Markup Language) form and a reader are follow-ons.
CCSDS TDM (Tracking Data Message) read and write src/ccsds_tdm.rs CCSDS 503.0-B Tracking Data Message, KVN form Range / Doppler / angle tracking records a DSN/ESTRACK (ESTRACK: European Space Tracking network) pass delivers to an OD (orbit determination) system. Validated by recovering the verbatim CCSDS 503.0-B-2 Figure E-9 Blue Book example (tests/ccsds_reference.rs).
CCSDS Space Packet (133.0) read and write src/space_packet.rs CCSDS 133.0-B-2 Space Packet Protocol The 6-octet TM/TC (TM: telemetry; TC: telecommand) primary-header framing ground systems exchange. Encoder reproduces the independent spacepackets-py library's published byte-level test vectors (src/space_packet.rs tests).
SP3-c (SP3: Standard Product 3, the precise-orbit format) / SP3-d (precise ephemeris) read and write src/sp3.rs IGS Standard Product 3 (c/d) Earth-fixed (ECEF) position + clock time series. Round-trip validated to < 0.5 m on a real gps-ops snapshot (tests/sp3_export_roundtrip.rs).
RINEX (Receiver Independent Exchange Format) 3 (broadcast navigation) read src/rinex.rs RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS (Russia's Global Navigation Satellite System) ICD) Multi-GNSS NAV ingestion (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (Japan's Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: medium Earth orbit; IGSO: inclined geosynchronous orbit), GLONASS state vector); usable as a first-class Propagator source.
TLE / 3LE (two-/three-line elements) read src/tle.rs NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 Propagated by the validated SGP4/SDP4 (SDP4: Simplified Deep-space Perturbations 4) core (4.12 mm vs the 666 official AIAA vectors).
RINEX 3.0x (observation) read src/rinex_obs.rs RINEX 3.0x OBS (4.00 expected to parse, never exercised on a 4.00 file) The other half of RINEX: the receiver's own code/carrier/Doppler/SNR (SNR: signal-to-noise ratio) records (parse_obs). This is the input the pvt single-point-positioning solver consumes alongside the broadcast navigation file (tests/pvt_abmf.rs, real IGS station ABMF).
IONEX (IONosphere map EXchange format; global TEC (total electron content) maps) read src/ionex.rs IONEX 1.x (IGS ionosphere product) parse_ionex reads the IGS global total-electron-content grids — the measured alternative to the broadcast Klobuchar correction — with bilinear spatial and temporal interpolation and the obliquity mapping to slant delay.
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (Earth orientation) read src/eop.rs, src/frame_eop.rs IERS Conventions; IERS EOP (Earth orientation parameters) 14 C04 / finals2000A.all UT1 (Universal Time 1, Earth-rotation time)−UTC (Coordinated Universal Time) and polar motion from the official product, including the predicted rows, so the frame reduction can be run in real time and its prediction-error growth budgeted (tests/operational_eop_predictor_reference.rs).
KIF (Kshana Interchange Format) read and write src/interchange.rs this repository — see SCHEMA.md The neutral, versioned envelope every artifact can be wrapped in: format / schema_version / kind / engine_version / payload, with an explicit major-minor compatibility verdict for a consumer. Not an external standard; documented here because a foreign tool has to recognise it.
LunaNet / IOAG (Interagency Operations Advisory Group) lunar interchange write (time metadata also read) src/lunar_interop.rs LunaNet interoperability specification / IOAG lunar communications architecture, over CCSDS 502.0 The lunar frame, lunar time scale and lunar ephemeris emitted in LunaNet/IOAG-aligned CCSDS forms (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), with a field-conformance check on the emitted OEM (tests/lunar_interoperability_export_reference.rs).
CZML (Cesium Language) write src/interop/czml.rs CesiumJS CZML packet format A JSON (JavaScript Object Notation) stream of time-tagged packets for the CesiumJS globe; moving objects written in GCRS (INERTIAL). --export czml on any kind that places objects on the Earth.
KML (Keyhole Markup Language) write src/interop/kml.rs OGC (Open Geospatial Consortium) KML 2.2 Earth-fixed longitude, latitude and height for Google Earth and GIS (geographic information system) tools. --export kml.
GeoJSON write and read (route) src/interop/geojson.rs IETF (Internet Engineering Task Force) RFC 7946 Earth-fixed geometry for web maps and GIS tools (--export geojson); a LineString is read back as the straight-track input of the kinds that fly one (--import-route <route.geojson>).
STK ephemeris (.e, EphemerisTimePosVel) write src/interop/stk.rs Ansys STK ephemeris file format Inertial (ICRF) position and velocity for STK and tools that read its ephemeris format. --export stk.
SigMF (Signal Metadata Format) read and write src/sigmf.rs SigMF specification Complex baseband recordings plus JSON metadata: the spectrum kind writes its synthesised in-phase/quadrature (IQ) samples (--export sigmf) and reads a recording through its [recording] block.
LEO navigation message text (RINEX-4-style and CSV (comma-separated values)) read and write src/leo_navmsg/text.rs RINEX 4 navigation layout, adapted The leo-navmsg kind's broadcast ephemeris and clock for a low Earth orbit (LEO) satellite, exported and re-imported; a documented adaptation, not a registered RINEX message type (MODELLED in the verification matrix).

Reference frames & time#

The frame the engine emits is explicit, not implicit. The CIO-based (CIO: Celestial Intermediate Origin) IAU (International Astronomical Union) 2006/2000A reduction (src/cio.rs) and the equinox/GMST (GMST: Greenwich mean sidereal time) TEME (true equator, mean equinox) reduction (src/frames.rs, src/nutation.rs) are validated bit-for-bit against the SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) reference vectors (see VALIDATION.md).

Frame Realization Notes
TEME SGP4 native True equator, mean equinox — the SGP4/SDP4 output frame.
GCRS (Geocentric Celestial Reference System) / J2000 IAU 2006 precession + IAU 2000A/2000B nutation teme_to_gcrs (equinox chain).
CIRS (Celestial Intermediate Reference System) IAU 2006/2000A CIO (X, Y, s) gcrs_to_cirs_matrix (eraC2ixys).
ITRS (International Terrestrial Reference System) / ECEF ERA (Earth rotation angle) + IERS polar motion (CIO) or GMST + polar motion (equinox) gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (equinox).
WGS-84 (WGS: World Geodetic System) geodetic exact + iterative inverse ecef_to_geodetic / geodetic_to_ecef.
Time scale Use
TT (Terrestrial Time) Precession/nutation/CIO argument evaluation (jd_tt).
UT1 Earth rotation angle / GMST (jd_ut1).
Two-part JD (Julian date) src/jd2.rs Jd2 for sub-µs epoch resolution.

Output-field → standard mapping (CCSDS 502.0)#

What the two orbit-message writers put in each CCSDS ODM (Orbit Data Messages, 502.0) field, read from a run of scenarios/orbit-sgp4-gps.toml with --export-oem and --export-omm:

Kshana output CCSDS ODM field Value / unit
OEM segment metadata CENTER_NAME / REF_FRAME / TIME_SYSTEM EARTH / TEME / GPS — the frame the propagators integrate in and the time scale of the epoch grid, not relabelled
OEM state epoch first column of each data line ISO-8601 (ISO: International Organization for Standardization) calendar time, GPS time scale
OEM position, velocity X Y Z X_DOT Y_DOT Z_DOT data columns km, km/s
OMM metadata REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY TEME / UTC / SGP4
OMM epoch EPOCH ISO-8601 day-of-year form (the TLE epoch)
OMM mean elements MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR rev/day, –, deg, 1/Earth radii

The ephemeris kind's result JSON (JavaScript Object Notation) carries the same state in SI (International System of Units) units per sample: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), plus lat_deg, lon_deg, alt_km.

Honest scope#

  • OEM, TDM, Space Packet, KIF, SigMF and the LEO navigation-message text are read and write; OMM, CZML, KML and STK ephemeris are writers (an OMM reader and the XML serialization are follow-ons); GeoJSON is written and read back as a route; RINEX NAV, RINEX OBS, IONEX, the IERS EOP products and TLE are readers; the LunaNet/IOAG lunar export is a writer whose time metadata round-trips. INTEROP.md lists which export applies to every bundled scenario.
  • The CCSDS/IGS field mapping above is documentation, not a certified conformance statement; formal conformance (and registration in the ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration) open catalogue) is tracked separately and is pending review.
  • The independent SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — a pure-Rust planetary-geometry toolkit) numerical cross-check of the frame reduction is delivered in the standalone, workspace-excluded crate xval/anise-frames/: gcrs_to_itrs_matrix against ANISE's GCRF (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) rotation over eight epochs 2020–2023 agrees to ≤ 0.86 m on the ground and ≤ 3.6 m at GNSS orbit (see VALIDATION.md). It needs SPICE kernels, so it is not a default continuous-integration (CI) gate.