-
-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Differences in ecliptic longitude between Skyfield and JPL's Horizons System for older dates #985
Comments
Take a look at the complete output from the HORIZONS system — or, if you like, cut and paste it here. My guess is that they are using UT1, based on the guessed historical orientation of the Earth during ancient times, whereas your Skyfield code is using UTC, which had no leap seconds in previous centuries and thus acted as a simple atomic clock. |
That appears to be entirely correct; the output does indeed say:
I'm not sure I entirely understand the implications of this though. The number of leap seconds in that time period doesn't seem to account for the differences, especially not the roughly That aside, does this mean that there is any benefit to using UT1 instead of UTC for dates before 1962 when it comes to precision in general? I suppose the question is more about which to use if I see some old date (like the one in question) and I want to know what the ecliptic longitude actually was on that date, does UT1 coincide better with it? As for this issue, I just tried running the above with
I also read that the MPC orbital elements being used should have precision to five digits, so I'm ultimately still confused not just about the smaller difference for Pluto (and for the main planets, like Mercury and Jupiter), but also the relatively large difference for Juno. Addendum: From looking more at the Horizons output, it occurred to me that they were inherently using apparent positions rather than astrometric ones for the ecliptic longitude; using
Here at least Pluto has been brought into agreement to 3 decimal places, which I can be happy with (although I'm curious why it's different beyond that, trying the same with UTC didn't really make a significant difference, the two are still roughly Juno on the other hand still appears to be more or less just as wrong (around Another thing I just found out is that Stellarium has the ecliptic longitude at around Looking further into it I checked for the other three largest small bodies, Ceres, Pallas, and Vesta, and they seem to be even further off. Here are the ecliptic longitudes given by Horizons:
And here are the ones found with Skyfield, for each combination of astrometric/apparent and with/without precession:
These are many degrees off even in the best cases (Vesta being ~10° off), and strangely it seems like the correct combination of accounting for precession and using the apparent position (which is what Horizons uses) is even wronger than other combinations in some cases. I also checked e.g. Vesta on a contemporary date, and in that case the Horizons value agrees almost perfectly with the Skyfield value for apparent position and accounting for precession; Horizons:
Skyfield:
So it seems to be a problem that creeps in over longer spans of time, but I can't really figure out what is causing these huge discrepancies. I'm of course assuming Horizons is correct and Skyfield is doing something inaccurate, but I guess I don't know, maybe Skyfield is correct and Horizons isn't, heh. |
From what I gather JPL uses something called a "small-body perturber" (SB441-N16); do you think that could that account for the large differences observed over time? On the Wikipedia page for the JPL Small-Body Database it also says:
|
If you are interested in older human experience and human records, you will want to use UT1, so that your "days" correspond to the sunrise/sunset days actually experienced by earlier peoples. They didn't know the Earth's rotation was slowing, or that someday we'd invent atomic clocks, so UTC times would be meaningless to them and not correspond to their own idea of a "day".
Yes, that could make an important difference. Try using HORIZONS with the first setting as "Ephemeris Type: Osculating Orbital Elements" — I think that will tell you what instantaneous orbital elements they're using for Juno at a distant date in the past? Then you could try giving those same elements to Skyfield. |
I use e.g. the following code to generate the ecliptic longitudes of Pluto and Juno seen from Earth on a given date and time in 1859:
Here the file
skytest.txt
contains just a single line for Juno:The output is:
However, when I use JPL's Horizons System to get the ecliptic longitudes at those exact moments, I get some differences; for Pluto:
For Juno:
As is evident, there's a difference of roughly
0.002
between the values for Pluto, and a whopping0.8
between the values for Juno.The Juno one I can only guess has to do with the lack of accuracy in the Kepler orbit method detailed in the documentation, and that JPL's Horizon System uses some other method that is more precise, but I'd be curious to know for sure.
The Pluto one is much stranger to me, because that's part of the ephemeris itself, and while the JPL value is using DE441, there shouldn't really be any difference between that and DE440. I also checked for a couple of the planets, and found a roughly
0.008
difference for Mercury and0.004
difference for Jupiter.Is there a clear answer for these inaccuracies? I guess what I'm wondering is if it's inherent to the precision of Skyfield itself, or whether there's something else strange going on. The
0.002
difference for Pluto above amounts to roughly7.2
arcseconds, which while ultimately not very big still seems significantly larger than I'd expect from any imprecisions in bodies supported by the ephemerides themselves.The text was updated successfully, but these errors were encountered: