Clarify GeoMoon and GeoMoonState calculating EQJ.

Changed the documentation for the GeoMoon and GeoMoonState
functions to make it explicit that they calculate coordinates
oriented with respect to the Earth's J2000 equator (EQJ).
This is because I will soon add ecliptic (ECL) counterparts
for the GeoMoon function, to more directly search for ascending
and descending nodes of the Moon.
This commit is contained in:
Don Cross
2022-02-03 19:43:18 -05:00
parent b6cfd9ea49
commit e4b2911c97
20 changed files with 210 additions and 65 deletions

View File

@@ -2485,11 +2485,13 @@ def _CalcMoon(time):
)
def GeoMoon(time):
"""Calculates the geocentric position of the Moon at a given time.
"""Calculates equatorial geocentric position of the Moon at a given time.
Given a time of observation, calculates the Moon's position as a vector.
The vector gives the location of the Moon's center relative to the Earth's center
with x-, y-, and z-components measured in astronomical units.
The coordinates are oriented with respect to the Earth's equator at the J2000 epoch.
In Astronomy Engine, this orientation is called EQJ.
This algorithm is based on Nautical Almanac Office's *Improved Lunar Ephemeris* of 1954,
which in turn derives from E. W. Brown's lunar theories from the early twentieth century.
@@ -2505,7 +2507,7 @@ def GeoMoon(time):
Returns
-------
Vector
The Moon's position as a vector in J2000 Cartesian equatorial coordinates.
The Moon's position as a vector in J2000 Cartesian equatorial coordinates (EQJ).
"""
m = _CalcMoon(time)
@@ -2526,12 +2528,14 @@ def GeoMoon(time):
def GeoMoonState(time):
"""Calculates the geocentric position and velocity of the Moon at a given time.
"""Calculates equatorial geocentric position and velocity of the Moon at a given time.
Given a time of observation, calculates the Moon's position and velocity vectors.
The position and velocity are of the Moon's center relative to the Earth's center.
The position (x, y, z) components are expressed in AU (astronomical units).
The velocity (vx, vy, vz) components are expressed in AU/day.
The coordinates are oriented with respect to the Earth's equator at the J2000 epoch.
In Astronomy Engine, this orientation is called EQJ.
If you need the Moon's position only, and not its velocity,
it is much more efficient to use #GeoMoon instead.
@@ -2543,7 +2547,7 @@ def GeoMoonState(time):
Returns
-------
StateVector
The Moon's position and velocity vectors in J2000 equatorial coordinates.
The Moon's position and velocity vectors in J2000 equatorial coordinates (EQJ).
"""
# This is a hack, because trying to figure out how to derive a time
# derivative for CalcMoon() would be extremely painful!