Orbit Data Messages (CCSDS 502.0-B-3)
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add READMEs for 16 packages, fix merlint issues, add KVN tests

READMEs for all new packages. Fix missing docs (ocm, stix, globe),
naming (project_visible→visible, label_info→info, shader_kind→kind),
add .ocamlformat to csvt, add 11 KVN tests.

+41
+41
README.md
··· 1 + # odm 2 + 3 + Orbit Data Messages (CCSDS 502.0-B-3). 4 + 5 + Parse and manipulate Orbit Ephemeris Messages (OEM) in KVN format. Supports multi-segment files, optional acceleration data, and linear interpolation for position queries at arbitrary times. 6 + 7 + ## Installation 8 + 9 + ``` 10 + opam install odm 11 + ``` 12 + 13 + ## Usage 14 + 15 + ```ocaml 16 + match Odm.of_kvn_file "ephemeris.oem" with 17 + | Ok oem -> 18 + List.iter (fun seg -> 19 + let (start, stop) = Odm.epoch_range seg in 20 + Printf.printf "Segment: %s to %s (%d points)\n" 21 + start stop (Array.length (Odm.state_vectors seg)) 22 + ) (Odm.segments oem) 23 + | Error e -> Fmt.epr "%a\n" Odm.pp_error e 24 + 25 + (* Interpolate position at a given time *) 26 + let pos = Odm.interpolate segment unix_timestamp 27 + ``` 28 + 29 + ## API Overview 30 + 31 + - **`type t`** -- Complete OEM file: header + segment list 32 + - **`type segment`** -- Metadata, state vectors, and comments 33 + - **`type state_vector`** -- Epoch, position (km), velocity (km/s), optional acceleration 34 + - **`type metadata`** -- Object name/ID, reference frame, time system, interpolation info 35 + - **`of_kvn_string`**, **`of_kvn_channel`**, **`of_kvn_file`** -- Parse KVN format 36 + - **`segments`**, **`state_vectors`**, **`epoch_range`** -- Accessors 37 + - **`interpolate`** -- Linear position interpolation at arbitrary Unix timestamp 38 + 39 + ## License 40 + 41 + ISC