MoonEphemeris
Defined in: ephemeris.rs:256
pub trait MoonEphemeris: [Send](https://doc.rust-lang.org/std/marker/trait.Send.html) + [Sync](https://doc.rust-lang.org/std/marker/trait.Sync.html)Moon ephemeris source abstraction.
Implementations provide Moon position (and optionally velocity) in the ECI (J2000-ish) frame for a given epoch. This trait decouples consumers from the specific ephemeris model (Meeus analytical, tabulated JPL Horizons data, SPICE kernel, …), allowing the integrator and targeters to share a single source of truth.
The default velocity_eci implementation uses a central finite difference
(±1 second) over position_eci. Tabulated sources (e.g. Hermite-interpolated
Horizons data) that can provide velocity more accurately should override it.
Required Methods
Section titled “Required Methods”position_eci()
Section titled “position_eci()”fn position_eci(&self, epoch: &Epoch) -> [Vec3<frame::Gcrs>](../../structs/vec3/)
Moon position in ECI [km] at the given epoch.
name()
Section titled “name()”fn name(&self) -> &str
Short human-readable name of the ephemeris source (e.g. “meeus”, “horizons”).
Provided Methods
Section titled “Provided Methods”velocity_eci()
Section titled “velocity_eci()”fn velocity_eci(&self, epoch: &Epoch) -> [Vec3<frame::Gcrs>](../../structs/vec3/)
Moon velocity in ECI [km/s] at the given epoch.
Default: central finite difference over position_eci with a 1-second
step. Override for sources that can supply analytic velocity.