Skip to content
LightCurve
WebsiteApp

File formats

CCSDS messages

TDM, OEM and AEM in their KVN text form: what LightCurve reads and writes.

Message Standard Read Written
TDM — Tracking Data Message CCSDS 503.0-B-2 Measured mode: angles, range, magnitude Simulated observations (24-hour curve or measured instants)
OEM — Orbit Ephemeris Message CCSDS 502.0-B-3 Orbit mode: positions and velocities The current orbit over ±12 h, 60 s step
AEM — Attitude Ephemeris Message CCSDS 504.0-B-2 Attitude law: quaternions The current attitude over ±1 h, 10 s step

Example files are in scripts/examples/: geo-ohp.tdm, iss.oem, rotation.aem.

Read keywords: PARTICIPANT_1 (station), PARTICIPANT_2 (object), ANGLE_TYPE (RADEC or AZEL), REFERENCE_FRAME, RANGE_UNITS (km), and the data records ANGLE_1, ANGLE_2, RANGE, MAG. Each segment becomes a measurement series, split where the records are more than 3 hours apart (another night). The Analysis workspace reads TDM files too; their phase angle is computed from the station position and the range.

CCSDS_TDM_VERS = 2.0
META_START
TIME_SYSTEM = UTC
PARTICIPANT_1 = OHP
PARTICIPANT_2 = 29055
MODE = SEQUENTIAL
PATH = 2,1
ANGLE_TYPE = RADEC
REFERENCE_FRAME = EME2000
RANGE_UNITS = km
META_STOP
DATA_START
ANGLE_1 = 2026-10-07T21:00:00.000 336.879845
ANGLE_2 = 2026-10-07T21:00:00.000 -8.205524
RANGE = 2026-10-07T21:00:00.000 37500.000
MAG = 2026-10-07T21:00:00.000 11.200
DATA_STOP

Written TDM files use RA/Dec EME2000 angles, range in km and the simulated V magnitude.

Data lines epoch x y z vx vy vz (km, km/s); velocities are optional (finite differences otherwise). Segments centred on the Earth are concatenated. The position is interpolated by cubic Hermite polynomials between states; outside the ephemeris it is undefined. While an OEM is loaded it replaces the TLE.

ATTITUDE_TYPE = QUATERNION, QUATERNION_TYPE FIRST or LAST, ATTITUDE_DIR A2B or B2A; one of the two frames must be inertial (EME2000, ICRF, GCRF, TOD…). Quaternions are interpolated spherically and held at the ends.

EME2000, ICRF and GCRF are precessed to the equator of date (IAU 1976); TEME, TOD and MOD are used as they are; ITRF and EFG are rotated by the sidereal time. Time is UTC; day-of-year dates (2026-280T21:00:00) are accepted.

Loaded OEM, AEM and TDM files are not kept in the shared link.