Skip to content

moon_position_eci

Defined in: ephemeris.rs:40

fn moon_position_eci(epoch: &[Epoch<Tdb>](../../structs/epoch/)) -> [Vec3<frame::Gcrs>](../../structs/vec3/)

Moon position vector in ECI (J2000) frame [km].

Uses the analytical model from Meeus “Astronomical Algorithms” Chapter 47 with full periodic term tables (60 terms for longitude/distance, 60 for latitude), E correction factor, and planetary perturbation corrections.

Accuracy: ~10” in ecliptic longitude, ~1% in distance (~4,000 km).

The Meeus series is referred to the mean equinox and equator of date (its mean longitude L' = 218.3164477 + 481267.88123421·T advances at the tropical rate, and the ecliptic → equatorial rotation uses the mean obliquity of date), so the result is rotated back to J2000 with the IAU 1976 precession (crate::earth::fk5) before being typed Vec3<Gcrs>. Skipping that rotation would be a secular 0.335° direction error in 2024 — ~2,250 km transverse on the Moon vector, well above the model’s own ~10″ longitude accuracy. Nutation (≤ 17″) and the J2000→GCRS frame bias (~20 mas) are neglected.

Meeus ephemerides take a dynamical time argument (TDB), so this signature requires &Epoch<Tdb> — the caller converts at the boundary (utc.to_tdb()). (The MoonEphemeris trait, which also abstracts a UTC-indexed Horizons table, deliberately keeps a &Epoch<Utc> interface; see MeeusMoonEphemeris.)