# orbit viewer for any date for moon

I'm aware of the NASA orbit viewer but it limits you to years > 1600 AD.

Is there an orbit viewer for any date?

• Not for "any" date. In the very long term the solar system is chaotic and the exact positions of objects aren't known. Sep 30, 2022 at 19:40
• @JamesK I was only looking for the moon.
– Bob
Sep 30, 2022 at 20:45
• Okay, so please edit the question. It is possible that something like NASA Horizons will actually tell you want you want to know. It's not an orbit viewer, but it does use multi-body methods to make accurate longer term predictions. Sep 30, 2022 at 21:04
• The answer to your question is no, at least not one that has correct positions. This is like asking "Is there an abacus that can add any two numbers?" In order for your question to have a reasonable answer, I'd recommend you ask something like "How far into the past and future has the Moon's motion been calculated with some degree of accuracy?" Once you have an answer to that question, you can ask a follow-up question about how to put those calculations into some orbit viewer.
– uhoh
Sep 30, 2022 at 21:59
• That NASA orbit viewer page warns you that it's quite crude. "For accurate ephemerides, please instead use our Horizons system. This orbit viewer was implemented using two-body methods, and hence should not be used for determining accurate long-term trajectories (over several years or decades) or planetary encounter circumstances". The Horizons time span for the Sun, Earth, and Moon covers 9999 BC to 9999 AD. Oct 1, 2022 at 3:12

From inspecting the JPL ephemeris website, the ephemeris with the longest time span as of this writing is DE441, which spans from August 15th, -13200 to March 15th, 17191. It is less accurate than DE440 (which covers the time span 1550-2650 AD), but is more stable over long time periods. For reference, between the years 1970-2020 the difference between DE441 and DE440 is less than 2 meters.

You can access this ephemeris using astropy. For example, I prepared the following script from astropy's tutorial, evaluating the Moon's position for Julian year -3000. The script will take a while to run the first time (since it needs to download the ephemeris), but subsequent runs will be much faster.

import numpy as np
import matplotlib.pyplot as plt
import astropy.units as u
import astropy.time
import astropy.coordinates
import astropy.visualization

astropy.visualization.quantity_support()
astropy.coordinates.solar_system_ephemeris.set('de441_part-1')

time_stop = astropy.time.Time('-3000', format='jyear')
time_start = time_stop - 27 * u.day
time = np.linspace(time_start, time_stop, num=1000)

location = astropy.coordinates.EarthLocation.from_geocentric(0 * u.m, 0 * u.m, 0 * u.m)

coords = astropy.coordinates.get_moon(time, location).cartesian

plt.figure(figsize=(9, 9))
plt.gca().set_aspect('equal')
plt.plot(coords.x, coords.y)
plt.scatter(coords[~0].x, coords[~0].y)
plt.savefig('moon.png')