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

Configure Feed

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

feat(ocaml-sgp4): full deep-space SDP4 support + Vallado verification suite

Rewrite SGP4 propagator ported from python-sgp4 with deep-space (SDP4)
satellite support including lunar/solar perturbations and resonance
handling. Add canonical Vallado verification vectors (33 satellites,
~700 test points from SGP4-VER.TLE + tcppver.out).

Also: ocamlformat reformatting across ocaml-respond, ocaml-odm,
ocaml-cdm, ocaml-requests, ocaml-spacedata; update root.opam deps.

+9 -8
+5 -5
lib/odm.ml
··· 244 244 ctx.state <- Meta; 245 245 ctx.cur_meta <- empty_metadata 246 246 end 247 - else if trimmed = "COVARIANCE_START" then 248 - ctx.state <- Covariance 247 + else if trimmed = "COVARIANCE_START" then ctx.state <- Covariance 249 248 else if is_data_line trimmed then 250 249 match parse_state_vector ctx.line_num trimmed with 251 250 | Ok sv -> ctx.cur_data <- sv :: ctx.cur_data ··· 254 253 255 254 let process_covariance ctx trimmed = 256 255 (* Skip covariance data until COVARIANCE_STOP *) 257 - if trimmed = "COVARIANCE_STOP" then ctx.state <- Data 258 - else () 256 + if trimmed = "COVARIANCE_STOP" then ctx.state <- Data else () 259 257 260 258 let parse_lines lines = 261 259 let ctx = ··· 295 293 if not ctx.has_header then Error Missing_header 296 294 else if not ctx.has_meta then Error Missing_metadata 297 295 else begin 298 - (match ctx.state with Data | Covariance -> finish_segment ctx | _ -> ()); 296 + (match ctx.state with 297 + | Data | Covariance -> finish_segment ctx 298 + | _ -> ()); 299 299 Ok 300 300 { 301 301 header =
+4 -3
test/test_vectors.ml
··· 87 87 else 88 88 let name = Fmt.str "sample%02d" idx in 89 89 let path = Fmt.str "%s/%s.oem" dir name in 90 - Some (Alcotest.test_case 91 - (Fmt.str "v2.0 valid %s" name) 92 - `Quick (check_valid name path))) 90 + Some 91 + (Alcotest.test_case 92 + (Fmt.str "v2.0 valid %s" name) 93 + `Quick (check_valid name path))) 93 94 |> List.filter_map Fun.id 94 95 95 96 let real_orbit_samples () =