Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/oem-interop.md

oem-interop (scenario kind)

Scenario kind of the engine v0.38.0, family Mission analysis, links and space operations. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).

What it does#

CCSDS OEM interoperability bridge: import an Orbit Ephemeris Message produced by an external flight-dynamics tool (GMAT/Orekit/STK all emit OEM) and report its segments/objects/frames/epoch-span plus a velocity-consistency check; with no input it round-trips a generated reference orbit and reports the import↔export fidelity. MODELLED structural/physical ingest check, NOT an orbit-accuracy validation of the source.

One run of scenarios/oem-interop.toml summarises as: oem-interop: round-tripped 2 segment(s), 12 states; max round-trip error 4.88e-7 km / 4.61e-10 km/s (MODELLED interop)

Inputs#

From the schema (kshana kinds --json):

  • Required fields: none
  • Optional fields: oem_text

The example scenarios/oem-interop.toml sets, among others:

Field Value Unit
kind oem-interop text

Run it#

kshana scenarios/oem-interop.toml

What it gives#

The scalar results of that run, with the units the engine states:

Result Value Unit
n_segments 2 count
n_states_total 12 count
originator KSHANA text
round_trip_max_pos_error_km 4.8822e-7 km
round_trip_max_vel_error_km_s 4.6115e-10 km/s
source round-trip text

Result label (the engine's): MODELLED — CCSDS OEM import/round-trip interop bridge (GMAT/Orekit/STK emit OEM); a structural + physical ingest check, NOT an orbit-accuracy validation of the source

The chart the engine writes for scenarios/oem-interop.toml, kind oem-interop

Evidence#

VALIDATED: the verification matrix rows that name this kind.

  • VALIDATED CCSDS 502.0 OEM importer (parse_oem), tolerant of COMMENT lines / extra metadata keywords / covariance blocks and the exact inverse of the writer; round-trip + external-file ingest with a velocity-consistency check. Tests: ccsds_oem_interop_reference.rs.

The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):

  • MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED
  • VALIDATED CCSDS 502.0 OEM importer (parse_oem), tolerant of COMMENT lines / extra metadata keywords / covariance blocks and the exact inverse of the writer; round-trip + . Oracle (ExternalDataset): Independent third-party CCSDS-502 parser oem 0.4.5 (MIT, https://pypi.org/project/oem/) — a separate codebase that decodes kshana's emitted EME2000/UTC OEM byte-identically (24 states across 2 fixtures, pos/vel Δ = 0) and whose strict reader confirms the metadata tokens; kshana's parser likewise agrees with it on a vendored external OEM. Two honest interop findings (the oem library rejects kshana's per-satellite mu

Limitations#

What the run's own report says is not modelled or not validated:

  • MODELLED — CCSDS OEM import/round-trip interop bridge (GMAT/Orekit/STK emit OEM); a structural + physical ingest check, NOT an orbit-accuracy validation of the source (result label)
  • MODELLED structural/physical ingest check, NOT an orbit-accuracy validation of the source. (kind catalogue (kshana kinds --json))
  • HONEST SCOPE: MODELLED structural + physical ingest check, NOT an orbit-accuracy validation of the source ephemeris. Run: kshana scenarios/oem-interop.toml (scenario file comment, lines 11 to 13)
  • Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))

See also#