Skip to content

Ephemerides

Low-precision analytical ephemerides for the Sun and Moon.

Provides position vectors in the EME2000 (ECI) inertial frame using the analytical models from Montenbruck & Gill. These are suitable for perturbation force modelling where ~0.1 deg accuracy is acceptable.

All positions are in SI base units (metres).

Note

Time system: UTC is assumed to approximate TT for computing Julian centuries from J2000. The error (~69 s as of 2024) introduces a negligible position offset for low-precision ephemeris work.

References
  1. O. Montenbruck and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012.

moon_position(epc)

Position of the Moon in the ECI (EME2000) frame.

Uses the low-precision analytical model from Montenbruck & Gill.

Parameters:

Name Type Description Default
epc Epoch

Epoch at which to compute the Moon's position.

required

Returns:

Type Description
Array

3-element Moon position vector in metres.

Examples:

from astrojax import Epoch
from astrojax.orbit_dynamics import moon_position
epc = Epoch(2024, 2, 25)
r_moon = moon_position(epc)
float(jnp.linalg.norm(r_moon))  # ~384,000 km

sun_position(epc)

Position of the Sun in the ECI (EME2000) frame.

Uses the low-precision analytical model from Montenbruck & Gill.

Parameters:

Name Type Description Default
epc Epoch

Epoch at which to compute the Sun's position.

required

Returns:

Type Description
Array

3-element Sun position vector in metres.

Examples:

from astrojax import Epoch
from astrojax.orbit_dynamics import sun_position
epc = Epoch(2024, 2, 25)
r_sun = sun_position(epc)
float(jnp.linalg.norm(r_sun))  # ~1 AU