CCSDS Astrodynamics & Space Telemetry (.oem, .opm, .omm, .xtce)
@modelscript/ccsds (languages/ccsds) provides comprehensive compiler, trajectory propagation, and verification support for the Consultative Committee for Space Data Systems (CCSDS) and OMG XML Telemetric & Command Exchange (XTCE) standards.
Supported Extensions & Standards
| Extension | Standard / Specification | Engineering Domain |
|---|---|---|
.oem | CCSDS 502.0-B-2 Orbit Ephemeris Message | Time-tagged position and velocity state vector ephemerides |
.opm | CCSDS 502.0-B-2 Orbit Parameter Message | Osculating Keplerian orbital elements and maneuvers |
.omm | CCSDS 502.0-B-2 Orbit Mean-Elements Message | Mean orbital elements (SGP4/SDP4 TLE compatible) |
.xtce, .xml | OMG XTCE v1.2 Telemetric & Command Exchange | Bit-level satellite telemetry decommutation and commanding |
Key Capabilities
1. Perturbed 6-DOF Cowell Orbit Propagator
- Integrates high-fidelity gravitational and environmental perturbations in Cartesian J2000 / GCRF coordinates:
Earth Oblateness: Evaluates central body oblateness forces from zonal harmonic coefficients. - Atmospheric Drag: Exponential barometric and Jacchia-Roberts atmospheric density models coupled with satellite cross-sectional area and drag coefficient
. - Solar Radiation Pressure (SRP): Cannonball radiation pressure models with cylindrical and dual-cone solar eclipse shadowing.
- Third-Body Gravitation: Lunar and solar ephemeris gravitational perturbations.
2. OMG XTCE Bit-Packing & Decommutation Engine
- Parses hierarchical
<TelemetryMetaData>,<ParameterSet>,<ContainerSet>, and<SequenceContainer>schemas. - Validates bit-level alignments, integer sign encodings (twos-complement, sign-magnitude), IEEE 754 float packaging, and calibrated polynomial transfer functions.
3. Direct DAE Lowering
- Compiles orbital states and spacecraft attitudes directly into
@modelscript/runtime'sDAEBuilderSoA linear memory arena for joint trajectory and attitude determination simulations.
4. Polyglot Projections & TGG Mappings
- Modelica Export (
ccsdsToModelica): Generates continuous Modelica 3.x space flight models compatible with orbital physics libraries. - SysML v2 Mission Architecture (
ccsdsToSysml): Projects ground station contacts, communication downlink schedules, and orbit maintenance requirements into SysML v2part defandrequirement defhierarchies.
Static Analysis & Pre-Flight Linter Rules
The CCSDS analyzer enforces space mission integrity and flight safety constraints (M8201–M8208):
8 rules7 error1 warning Run with msx ccsds lint
| Code | Rule | Severity | Message |
|---|---|---|---|
M8201 | sub-orbital-impact-trajectory | error | Sub-orbital pericenter radius <rp> km is below Earth radius <earthRadius> km, resulting in atmospheric re-entry or impact. |
M8202 | telemetry-bit-packing-overlap | error | Telemetry bit packing overlap in container '<containerName>': entry '<entryName>' starts at bit <bitOffset> before previous entry '<prevEntry>' ends at bit <endBit>. |
M8203 | hyperbolic-unbounded-orbit | warning | Orbit eccentricity <eccentricity> indicates a hyperbolic or parabolic trajectory. |
M8204 | unrecognized-reference-frame | error | Unrecognized or non-inertial reference frame '<refFrame>'. |
M8205 | missing-epoch-timestamp | error | Ephemeris point missing valid timestamp at index <index>. |
M8206 | non-monotonic-ephemeris-epochs | error | Ephemeris timestamp '<epoch>' is not strictly greater than previous timestamp '<prevEpoch>'. |
M8207 | duplicate-parameter-name | error | Duplicate telemetry parameter declaration for '<paramName>'. |
M8208 | negative-spacecraft-mass | error | Spacecraft mass <massKg> kg must be strictly positive. |
Generated from languages/ccsds/src/lints/rules.ts. All languages →
CLI Usage
bash
# Lint an Orbit Ephemeris Message or XTCE container definition
msx ccsds lint mission_orbit.oem
msx ccsds lint satellite_telemetry.xtce
# Propagate trajectory and lower to DAE linear memory
msx ccsds to-dae orbit.opm --duration 86400 --step 60
# Project orbital state vectors into Modelica simulation code
msx ccsds to-modelica orbit.opm -o OrbitDynamics.mo
# Export orbital mission constraints to SysML v2 requirements
msx ccsds to-sysml orbit.omm -o OrbitRequirements.sysml
