Add ocaml-contact: satellite pass prediction
Predict when a satellite is visible from a ground station. Computes
AOS/LOS times, maximum elevation, and pass duration from TLE/SGP4
propagation. Uses ocaml-coordinate for TEME->ECEF frame transform
and geodetic->ECEF ground station positioning.
Simple API:
let passes = Contact.predict tle (Contact.ground_station ~lat ~lon ~alt) ~duration_days:3 in
4 tests validated against GMAT R2026a station contacts (14 passes from
LA over 3 days for ISS-like orbit):
- Pass count in expected range
- Physical properties (duration < 15min, elevation 5-90 deg)
- Elevation computation
- Equatorial satellite has few/no passes over mid-latitude station