Results of my analyses of the length of the year
(All my data on this page is from JPL's "DE431.bsp"
and return to as close as possible to where it had been
which contains the best (as of 2013) estimates of the positions
of the planets from -13199 to 17190 AD)
(On this page, by "position of the Earth versus the Sun"
I actually mean
"the position of the barycenter
of the Earth and Moon, versus the Sun",
thus treating them as a single object orbiting the Sun).
(Most of this page is about the orbital period of Earth
measured from an inertial reference frame (the "ICRS"),
which is called the "Sidereal Year" length,
but at the end I convert some of the values obtained
to their "Tropical Year" equivalents,
(the "Tropical Year" is the time for the seasons on earth to reoccur))
The literal time for the Earth to go once around the Sun
(called the "Sidereal Year" length),
varies over the wide range of 365.251 to 365.261 days,
(I call this the "return to position" method)
I calculated that time by successive approximations:
the distance in Earth's position from its position at
a common starting point in time, was calculated
for three time skips: 365.25 - 8, 365.25 and 365.25 + 8 days,
then a parabola was fit to those three points,
the minimum of that parabola was taken as the
midpoint of the next interval of three points, with the
time interval spanned by the three points halved
on each iteration. The iterations were repeated
until the parabolic fit to the three points
degenerated to a strait line. Then I moved the
start time forward 5.29... days (11100032 days/2^21)
and repeated that whole fit process.
"DE431.bsp" has the position of all the planets
over 11100032 days, and my computer's memory
is limited to 2^21 data points,
which is why I spaced the data by 5.29... days.)
as shown in the following graph covering the years 2000 to 2002:
term interactions of Earth with Venus and Jupiter.
Most of the bumps in that graph are due to short
The frequencies that are causing that unevenness are
are shown in the following two versions of spectral graphing,
the first with the height of the bumps representing
the degree of deviation caused in the year length,
and in the second one the intensity of
line brightness doing the representation,
(the data used for the second spectral graph below
is actually slightly different,
I had already done some preliminary smoothing by measuring
year length across a time skip of 24 years,
but the only effect on the graph from that is a lessening
of the intensity of the lines caused by Venus and Jupiter
compared to the other lines, and a gradual dimming toward high frequency)
(in this screen shot "Audacity" produced the spectrum display,
"Audacity" is a free internet program for signal analysis,
the numbers I wrote on it in the green boxes
are periods in units of days):
The following link plays the sound file which produced
the spectrum in the picture above.
It sounds to me like the engineering room of the Enterprise.
Every component of the sound is some planet bouncing against Earth.
If you would like to explore the spectrum above in more
detail you can right click this link and save the file.
(However the data in this wav file was produced by
reducing the 64 bit floating point numeric data to 16bit integers.
To download the full precision data used on this page
see the data file links at the bottom of the page.)
In those last two graphs the frequency analysis was
only applied to a small portion of the data to limit
the time interval length (to 134 years in the first).
Without doing that the graph becomes overwhelmingly
intricate as shown in this graph below of almost the same
data as in the first spectral graph except over the
full 11100032 days of "DE431.bsp".
(This graph is actually a spectragram of the
"meanlongitude method" data described below
(before I filtered and differentiated it),
rather than the "return to position" method data
that was used for the first two spectragrams,
but the spectra all look qualitatively almost the same)
(also in this graph I applied a logarithm to
the amplitudes to increase the displayable range).
then a much more stable value for the
can be evened out by extending the time over which
The bumpiness in length of year calculations
a return of Earth to its position is measured across.
If one waits a number of years which is a
multiple of the orbital periods of all three of
(such as the value of 48 years that I used in my final graph below,
which is 4.06 orbits of Jupiter,
and 78.02 orbits of Venus),
length of the year is obtained.
To further reduce the high frequency noise,
I applied a low pass filter to the data.
(Details of the steps I used for low pass filtering:
A graph of the resulting data is shown in the following picture.
- I subtract a least squares fit fifth degree polynomial
from the data set, to minimize ringing effects from the FFT
- I multiply the data set by a 4T1 FFT window shape,
to minimize ringing effects from the FFT
- I apply a 2^21 point "Fast Fouier Transform"("FFT") to the data
- I apply a 4T1 shaped notch filter at the cut off frequency
- I apply a vertical cutoff for frequencies above the notch's zero point
(the two steps above create a gradually
curving cutoff occuring near the cutoff frequency.
(The cutoff used was
at between 47 to 59 year period oscillations)
(A gradual cut off is required to prevent
ringing effects from the inverse FFT))
- I apply an inverse of the FFT to the data
- I apply an inverse of the 4T1 FFT window to the data
- I add back the fifth degree polynomial to the data,
that had been subtracted from it on the first step.)
(The horizontal graph range is -13199 to 17190 AD,
By looking at the graph it is noticeable that only
and the vertical range is 365.256333 to 365.256393 days.
The horizontal red line marks a period of exactly 365.256363 days,
The vertical blue and red lines mark -128 and 2000AD)
two major oscillations remain.
One is the 239 year period that is the difference of
the ratio of angular rates of Earth and Venus from
a perfect 8:13 ratio,
(that oscillation is also the main source of the shape
of the curve in my 200 year plot at the bottom of this page.)
and the other has a period of about 1783 years.
However it seems the precision stated in those internet
for the length of the year is now possible.
After that smoothing a very much more precise value
However, to check the reliability of that precision,
I also calculated the length of the year by a second,
very different method:
I made a data file of
2^21 calculations of the "mean longitude of the Earth"
(constantly versus the "Equinox of J2000" rather than the "Equinox of Date")
by keplerian orbital fits at each point,
evenly spaced over the 11100032 day span of "DE431.bsp"
(thus every 5.29... days).
Then I used the same low pass filter
on the data file as I had with the previous method,
and then differentiated the points by subtracting each
point from the one after it
(there was just barily enough significant figures
left after the subtractions)
That method (I will call it the "meanlongitude method")
gives a value for the length of year which
stays within 0.2 seconds of
the value calculated by the "return to position" method.
I note that:
Deviations due to slightly varying the low pass filter
the "meanlongitude method" assumes the plane of the
Earth's orbit keeps the same tilt and tilt direction,
which is not exactly true,
where as the "return to position" method does not have
any such problem.
point also were around 0.2 seconds.
Thus it seems there is no way to state
the length of a year to a precision of more than
0.2 seconds without stating a lot of overly limiting
requirements for getting that value,
or without stating an averaging period of over many human lifetimes.
An extremely long term average
(thus one which removes even the 239 year and 1783 year periods)
for the length of year might be useful for
(for example) calculations of leap years in calendars
that need to be used unadjusted for many thousands of years.
When I did a least squares fit of a
one to five degree polynomial
to the whole 11100032 day span of "DE431.bsp",
(thus cutting out even the 239 and 1783 year oscillations)
before processing with any of the methods above,
or after processing it with those methods,
I got values between 365.25636151 and 365.25636297 days
for the length of the year at the center of the data (1995.77AD).
Values on the internet for the length of year
are close to that value:
values and their degree of agreement
must rely on similar choices of data span and
which long term period oscillations were
Even my long 30000 year averages still had differences
in the length of year on the order of 0.2 seconds
depending on the different ways of getting the measurement.
So I will only state results in the following
table to 0.1 second precision. The table also contains
the corresponding length of the Tropical Year,
which I calculated by simply subtracting the motion
of the equinox (as given by equations for it
in current SOFA online files).
(At this time I do not want to investigate the motion
of the equinox myself. I only need four digits accuracy
in the angular speed of the equinox to use it for
converting Sidereal Year periods to Tropical Year Periods.
I assume the equations from SOFA will suffice,
but do not know how badly their polynomial diverges at distant times.)
Table of the Length of the Year at some key dates
calculated by two independent methods
(Data had oscillations with periods less than 47 years removed and less than 59 years diminished.)
Year.....Sidereal year length............................. Method
.........Days...........Seconds.......Day h m s...........
2016.5...365.256374.....31558150.7....365 6 9 10.7........ by "meanlongitude method"
2016.5...365.256372.....31558150.6....365 6 9 10.6........ by "return to position" method
2000.0...365.256378.....31558151.1....365 6 9 11.1........ by "meanlongitude method"
2000.0...365.256376.....31558150.9....365 6 9 10.9........ by "return to position" method
1950.0...365.256376.....31558150.9....365 6 9 10.9........ by "meanlongitude method"
1950.0...365.256374.....31558150.7....365 6 9 10.7........ by "return to position" method
1947.0...365.256375.....31558150.8....365 6 9 10.8........ by "meanlongitude method"
1947.0...365.256373.....31558150.6....365 6 9 10.6........ by "return to position" method
1900.0...365.256358.....31558149.4....365 6 9 09.4........ by "meanlongitude method"
1900.0...365.256357.....31558149.3....365 6 9 09.3........ by "return to position" method
...0.0...365.256362.....31558149.7....365 6 9 09.7........ by "meanlongitude method"
...0.0...365.256361.....31558149.6....365 6 9 09.6........ by "return to position" method
-128.0...365.256374.....31558150.7....365 6 9 10.7........ by "meanlongitude method"
-128.0...365.256372.....31558150.5....365 6 9 10.5........ by "return to position" method
Year.....Tropical year length............................. Method
.........Days...........Seconds.......Day h m s...........
2016.5...365.242201.....31556926.2... 365 5 48 46.2....... by "meanlongitude method"
2016.5...365.242199.....31556926.0....365 5 48 46.0....... by "return to position" method
2000.0...365.242205.....31556926.5....365 5 48 46.5....... by "meanlongitude method"
2000.0...365.242203.....31556926.4....365 5 48 46.4....... by "return to position" method
1950.0...365.242207.....31556926.7....365 5 48 46.7....... by "meanlongitude method"
1950.0...365.242204.....31556926.4....365 5 48 46.4....... by "return to position" method
1947.0...365.242206.....31556926.6....365 5 48 46.6....... by "meanlongitude method"
1947.0...365.242204.....31556926.4....365 5 48 46.4....... by "return to position" method
1900.0...365.242192.....31556925.4....365 5 48 45.4....... by "meanlongitude method"
1900.0...365.242191.....31556925.3....365 5 48 45.3....... by "return to position" method
...0.0...365.242312.....31556935.8....365 5 48 55.8....... by "meanlongitude method"
...0.0...365.242310.....31556935.6....365 5 48 55.6....... by "return to position" method
-128.0...365.242331.....31556937.4....365 5 48 57.4....... by "meanlongitude method"
-128.0...365.242329.....31556937.2....365 5 48 57.2....... by "return to position" method
I note that a 0.2 second difference in a statement of length of year
(which is a precision of 6 parts per billion)
only adds up to (over a span of civilization of say 5000 years):
0.2 seconds per year * 5000 years
And a 17 minute difference won't effect
= 1000 seconds
the usefulness of a calendar system.
So it seems there is also no practical use for stating
a year length to a precision of greater than around 0.2 second.
(except maybe for things like telescope pointing and space trajectory
planning which could use instead raw data straight from an ephemeris.)
The following graph shows the main results of this page
which is a plot of the average time it takes the Earth to orbit the Sun,
(called "the Sidereal year"),
over the time span of 1850 to 2050AD,
calculated in the two different ways that were described above:
- The line plotted in blue-green are values by the "meanlongitude method".
- The line plotted in yellow-green are values by the "return to position" method.
Here are the main data files I used for this page.
They are all about 16 megabytes in size, containing 2^21, sixty four bit floating point, LSB first, numbers.
The first data point in each file is for "Julian day number" -3100015.5 = May 06 13201 BC,
or 24 years after that (as explained below).
Each successive data point is 5.29... days after the one preceeding it.
In the two filtered files a small number of the data points near
the start and end of the file jump to near infinite values,
so they should be excluded from statistical analyses of the file's data.
An example equation to locate the file position of the length of year,
smoothlg.dat is the data for the "meanlongitude method"
longis.dat is the data above before it was
lowpass filtered and differentiated
(in other words it is just a list
of Mean Longitudes of Earth every 5.29... days over a 30390 year period.
smooth48.dat is the data for the "return to position" method.
(An offset of exactly 365.256363 was subtracted from all its points)
draw48.dat is the data above before it was
(thus it is a list of the time required for Earth
to return in position as close as it can
to where it was 48 years before.)
(Thus when plotting the data
for these last two files the midpoint of the interval
(48/2 years ahead of the start) should serve as the x-coordinate
rather than the start point.
The data was stored at the file position that the starting point had,
so the data is effectively shifted in file position by 24 years
relative to the corresponding values in the two files before these two.)
Several years ago I calculated it would take my computer using BASIC 10 days
to create this file so I avoided doing it, over the following year I converted all the programming to
machine language and had the data processing done on a solid state drive, now it takes only 4 hours to create the file.
at for example 2016.5 AD,
for the first two files above is:
(2016.5-1995.77138946-0/2)*365.25/x*8 + 0080,0000
where "0080,0000" is the mid point of the file in hexadecimal notation
(in decimal notation it would be "8,388,608");
and x= 11100032/2^21 is the time step in the files.
for the second two files the corresponding equation is:
(2016.5-1995.77138946-48/2)*365.25/x*8 + 0080,0000
This page was written and first posted on 2016/04/11.