Standards & interoperability

June 28, 2026 · View on GitHub

Kshana speaks the standard interchange formats of the GNSS, flight-dynamics, and timing communities so it can sit alongside RTKLIB, gLAB, Ginan, GMAT, Orekit, and the IGS analysis-centre tooling rather than on a private island. This page maps every standard the engine reads or writes to the module that implements it and to the authoritative specification.

Formats the engine speaks

StandardDirectionModuleSpec / authorityNotes
CCSDS OEM (Orbit Ephemeris Message)read and writesrc/oem.rsCCSDS 502.0-B Orbit Data Messages, KVN formTabulated state-vector ephemeris ingested by GMAT, Orekit, STK. 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)writesrc/omm.rsCCSDS 502.0-B-2, KVN formStandards-track publication of SGP4/TLE mean elements (mean motion, e, i, Ω, ω, M, BSTAR). CLI-reachable on an orbit scenario via --export-omm <out.omm> or export_omm = true (one OMM per TLE-defined satellite, with its real NORAD id, COSPAR designator, and epoch; tests/sp3_export_roundtrip.rs). XML form and a reader are follow-ons.
CCSDS TDM (Tracking Data Message)read and writesrc/ccsds_tdm.rsCCSDS 503.0-B Tracking Data Message, KVN formRange / Doppler / angle tracking records a DSN/ESTRACK pass delivers to an OD 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 writesrc/space_packet.rsCCSDS 133.0-B-2 Space Packet ProtocolThe 6-octet TM/TC 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-d (precise ephemeris)read and writesrc/sp3.rsIGS 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 3 (broadcast navigation)readsrc/rinex.rsRINEX 3.x NAV (IS-GPS-200, Galileo ICD, BeiDou ICD, GLONASS ICD)Multi-GNSS NAV ingestion (GPS LNAV, Galileo F/NAV, QZSS, BeiDou MEO/IGSO, GLONASS state vector); usable as a first-class Propagator source.
TLE / 3LE (two-/three-line elements)readsrc/tle.rsNORAD / Celestrak, AIAA 2006-6753Propagated by the validated SGP4/SDP4 core (4.12 mm vs the 666 official AIAA vectors).

Reference frames & time

The frame the engine emits is explicit, not implicit. The CIO-based IAU 2006/2000A reduction (src/cio.rs) and the equinox/GMST TEME reduction (src/frames.rs, src/nutation.rs) are validated bit-for-bit against the SOFA/ERFA reference vectors (see VALIDATION.md).

FrameRealizationNotes
TEMESGP4 nativeTrue equator, mean equinox — the SGP4/SDP4 output frame.
GCRS / J2000IAU 2006 precession + IAU 2000A/2000B nutationteme_to_gcrs (equinox chain).
CIRSIAU 2006/2000A CIO (X, Y, s)gcrs_to_cirs_matrix (eraC2ixys).
ITRS / ECEFERA + IERS polar motion (CIO) or GMST + polar motion (equinox)gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (equinox).
WGS-84 geodeticexact + iterative inverseecef_to_geodetic / geodetic_to_ecef.
Time scaleUse
TTPrecession/nutation/CIO argument evaluation (jd_tt).
UT1Earth rotation angle / GMST (jd_ut1).
Two-part JDsrc/jd2.rs Jd2 for sub-µs epoch resolution.

Output-field → standard mapping (CCSDS 502.0)

For an orbit scenario, the result JSON / OEM correspondence is:

Kshana fieldCCSDS ODM (502.0)Unit
epoch (UTC/TT)EPOCHISO-8601
coordinate_system (TEME/ECEF/ITRF/GCRS)REF_FRAME
time_scaleTIME_SYSTEM
position x,y,zX / Y / Zkm
velocity vx,vy,vzX_DOT / Y_DOT / Z_DOTkm/s
mean elements (OMM)MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALYrev/day, –, deg

Honest scope

  • OEM, TDM, and Space Packet are read and write; OMM is a writer (an OMM reader and the XML serialization are follow-ons).
  • The CCSDS/IGS field mapping above is documentation, not a certified conformance statement; formal conformance (and registration in the ESA ESSR / NASA open catalogue) is tracked separately and is founder-gated.
  • A live SPICE/ANISE numerical cross-check of the frame reduction to the < 10 m level is a planned follow-on (needs SPICE kernels).