MOID Analysis

MOID (Minimum Orbit Intersection Distance) is a fast geometric risk-screening metric between two orbits.

Single-Pair MOID

from adam_core.dynamics.moid import calculate_moid
from adam_core.orbits import Orbits
from adam_core.coordinates.origin import OriginCodes
from adam_core.time import Timestamp
from adam_core.utils.spice import get_perturber_state

# Example: object orbit and Earth state at a common epoch.
epoch = Timestamp.from_mjd([60200.0], scale="tdb")
earth_state = get_perturber_state(OriginCodes.EARTH, epoch)
earth_orbit = Orbits.from_kwargs(orbit_id=["EARTH"], coordinates=earth_state)

moid_au, moid_time = calculate_moid(object_orbit, earth_orbit)
print(moid_au, moid_time.to_iso8601()[0].as_py())

Batch MOIDs Against Perturbers

from adam_core.coordinates.origin import OriginCodes
from adam_core.dynamics.moid import calculate_perturber_moids

moids = calculate_perturber_moids(
    orbits=candidate_orbits,
    perturber=[OriginCodes.EARTH, OriginCodes.MARS_BARYCENTER, OriginCodes.VENUS],
    chunk_size=100,
    max_processes=8,
)

print(moids.to_dataframe().head())

Interpretation Guidance

  • MOID is geometric, not a probability.

  • Use MOID for rapid triage and candidate ranking.

  • Follow with full variant propagation + impact probability for decision-quality risk.

When to Use

  • First-pass impact-risk filtering.

  • Dynamical neighborhood analysis.

  • Ranking follow-up targets before expensive Monte Carlo impact runs.