# What is precision of planet periods data?

Wikipedia gives $$10759.22$$ days for sidereal period of Saturn. I have calculated a period from de441_part-1.bsp and obtained $$10736.247\bar{2}$$ days. Why such a big difference? Which is more accurate? What accuracy in percentage I can expect from periods of Jupiter, Saturn, Uranus and Neptune?

EDIT: Code in Python 2.7:

from datetime import datetime, timedelta
from skyfield.framelib import ecliptic_frame

def f(t):
sun_eph = eph['sun']
s_eph = eph['saturn barycenter']
_, s_lon, _ = sun_eph.at(t).observe(s_eph).frame_latlon(ecliptic_frame)
s_angle = s_lon._degrees
print("s_angle = ", s_angle)

t0 = ts.utc(-13188, 8, 11, 14, 4)
f(t0)
# ('s_angle = ', 1.7441721183417348e-05)
t1 = ts.utc(1878, 10, 8, 3, 55)
f(t1)
# ('s_angle = ', 1.4075963901504881e-05)
(t1-t0)/512.0
# 10747.657377115886


Indeed there was error somewhere, now I got another number, but it still is not equal to that of Wikipedia.

• Not only Wikipedia, Nasa's website also states the same number, check here nssdc.gsfc.nasa.gov/planetary/factsheet/saturnfact.html, Even tropical year of saturn is 10,746.94 earth days only Jan 20 at 14:29
• I think you are looking for accuracy, not precision . Jan 20 at 15:22
• It would be better if you had shown your calculation. You might well have made a mistake, and there's no way to tell. Jan 20 at 20:11
• This may be helpful: Nuances of the terms (mean / osculating / Keplerian / orbital) elements Jan 21 at 21:13

The planetary orbits can not strictly be described by the usual Kepler elements anymore as they are disturbed by the other planets (Saturn in particular will for instance be heavily affected by Jupiter). The Kepler elements can therefore not be accurately defined but are only used as 'osculating elements' that approximate the actual orbit but vary from point to point. If you go to NASA's Horizons website and get the ephemeris for the last Saturn year, you can see that the sidereal period (which is calculated for each point via Kepler's law from the semimajor axis A) varies from PR=1.072402392741634E+04 d to PR=1.083416198008542E+04 d over one Saturn orbit, whereas in the header data it gives 10755.698 d for the sidereal period (which is some average over recent data for a not further specified period).

So as the orbital period (and the other Kepler elements) fluctuate in this sense with time, they are not really suitable to use as fixed values for applications where high accuracy is needed. And for uncritical applications any value that falls within the range of the fluctuations should do.

• We should also remember that the Sun itself doesn't even "stay in one place" but dances around with Jupiter, Saturn, Uranus and Neptune; the last of which is surprising because of its low relative mass until one considers that it makes up for that with distance.
– uhoh
Jan 21 at 23:21
• @uhoh If you select 'osculating orbital elements' as the ephemeris type in the |Horizons app, these will refer to the center of the sun anyway (as they are essentially Kepler elements, albeit time dependent). It is only if you select 'Vector table' (i.e. x,y,z coordinates) that they are referred to the barycenter of the solar system. Jan 22 at 9:47
• @uhoh You can not refer the osculating orbital elements to any other than the center of the sun. It will result in an error message in the Horizons app if you try to do that. You can only do it for if you select ''Vector Table' (which gives you x,y,z coordinates) or 'Observer Table' (which gives you RA,DEC) Jan 22 at 12:27
• @uhoh I was referring to the osculating orbital elements of planets above. In general, they are only defined with regard to the primary body of the orbit. So you can not refer the orbital elements of a moon of Saturn to Jupiter for instance. You will get the error message "Cannot output osculating elements of satellite wrt non-primary center body". In this case you can select only Saturn or the Sun (in the latter case it gives some non-sensical elements though like a negative semi-major axis and and infinite orbital period) Jan 22 at 13:11
• @uhoh This error message when trying to use a reference point other than the primary body has been appearing at lest for the least 2 years or so (I have not used Horizons much before that, so I could not tell how it used to be). You can of course choose the solar system barycenter as reference point for the osculating orbital elements, but this is not how they are normally defined and used. There would be a high risk of misinterpreting your data if you define them this way. Anyway, this option has disappeared from the dropdown menu. You have to explicitly type 500@0 for this. Jan 23 at 19:07