The Consultative Committee for Space Data Systems (CCSDS) defines standard formats for exchanging orbital data between space agencies, satellite operators, and ground systems. Brahe parses and writes all three Orbit Data Message (ODM) types from the CCSDS 502.0-B-3 standard, with automatic format detection and SI unit conversion. The typical workflow is: parse a file, access the data, and feed it into a propagator or trajectory.
The most common pattern is to parse an OEM file — received from another system or generated by a propagator — and convert it into an OrbitTrajectory for interpolation and analysis:
Segment: ISS, 49 states, frame=GCRF
Trajectory: 49 states
Frame: OrbitFrame(Geocentric Celestial Reference Frame)
Start: 2017-04-11 22:31:43.122 UTC
End: 2017-04-12 22:31:43.122 UTC
Span: 86400 seconds
First state:
Epoch: 2017-04-11 22:31:43.122 UTC
Position: [2906.275, 4076.358, 4561.364] km
Velocity: [-6879.497, 1449.531, 3081.318] m/s
Multi-segment OEM: 3 trajectories
[0] 4 states, span=898080s
[1] 4 states, span=100735s
[2] 5 states, span=100735s
This three-step pattern — parse, convert, interpolate — applies across the library. OEM data becomes trajectories, OMM data feeds SGP4 propagators, and OPM data initializes numerical propagators.
OEM (Orbit Ephemeris Message) carries time-ordered state vectors and is the standard format for ephemeris exchange. Use it when you have or want to produce a full trajectory — conjunction screening, trajectory handoffs between teams, or archiving definitive ephemerides. See the OEM detail page.
OMM (Orbit Mean-elements Message) is the CCSDS-standardized representation of TLE/GP data. Data sources like CelesTrak and Space-Track distribute orbital elements as OMM, making it the modern successor to fixed-width TLE format. Use it when working with GP data and SGP4 propagation. See the OMM detail page.
OPM (Orbit Parameter Message) carries a single state snapshot at one epoch, optionally with Keplerian elements, spacecraft parameters, covariance, and maneuvers. Use it when handing off initial conditions for propagation or documenting a maneuver plan. See the OPM detail page.
CDM (Conjunction Data Message) describes a close approach between two space objects, providing state vectors, covariance matrices, and collision probability at the Time of Closest Approach (TCA). Use it when processing conjunction screening data from services like the 18th Space Defense Squadron. See the CDM detail page.
OCM Not Yet Supported
The Orbit Comprehensive Message (OCM) is not yet implemented. OCM combines features of OEM, OMM, and OPM into a single flexible format and will be added in a future release.
Each message type can be encoded as KVN (.oem, .omm, .opm, .txt), XML (.xml), or JSON (.json). Brahe auto-detects the format when parsing by examining the first non-whitespace character of the content:
CCSDS files use km and km/s for position and velocity. Brahe automatically converts these to SI base units (meters, m/s) on parse, and converts back when writing. This means:
All position values returned by brahe are in meters
All velocity values returned by brahe are in m/s
Covariance matrices are in m\(^2\), m\(^2\)/s, and m\(^2\)/s\(^2\)
Angles in OMM and OPM Keplerian elements remain in degrees (matching CCSDS/TLE convention)
GM values are converted from km\(^3\)/s\(^2\) to m\(^3\)/s\(^2\)
Unit Conversion
If you compare brahe output directly to values in a CCSDS file, remember the factor of 1000 for position/velocity and 10\(^9\) for GM. Covariance elements scale by 10\(^6\) (km\(^2\) → m\(^2\)).