# Calculate Earth's distance travelled in a year

This is probably more of a math question than astronomy, but I'd like to know the distance the Earth travels in one revolution around the sun (i.e. a year).

According to the data in Wikipedia, I think there may be several ways for me to calculate this but I'm not sure whether they are correct or how to do them:

1. Calculate by velocity and time: the average velocity is given as $$107200\ \mathrm{km/h}$$ (a suspiciously round number; imprecise?) and one revolution takes $$365.256363004$$ days. That gives $$\text{distance} = 107\,200\ \mathrm{km/h} \times (365.256363004 \times 24\ \mathrm h) = 939\,731\,570.736691\ \mathrm{km} \approx 939.731\ \mathrm{Gm}$$
2. Calculate by semi-major axis and eccentricity: my math is too weak for that. I searched the web and didn't find a solution for that (calculating the circumference of an ellipse exactly seems to be a problem?)
3. Any other way using the orbital data given in the Wikipedia article?

In essence, this can be made into a pretty generic question: How do I calculate the distance an object travels in one revolution using the usual orbital parameters?

• Are you interested in only the distance traveled wrt. the Sun, or are you interested in the total distance traveled wrt. some other reference (e.g. wrt. the center of the Milky Way; or wrt. some other extra-galactic reference (i.e. including the motion of the Milky Way))? – Makyen Nov 10 '18 at 23:32
• @Makyen: The distance travelled with respect to the Sun is what I'm interested in, yes. We can also ignore the barycenter motion. – DarkDust Nov 11 '18 at 9:50

You need to find the perimeter of an ellipse. This might be accurate enough for you (recalling that an ellipse is only an accurate description of an orbit for a two-body system.

An ellipse has no simple formula to find the perimeter. There appear to be several commonly used approximations based on infinite series (see for example "Maths is Fun").

e.g. Define $$h = \frac{(a-b)^2}{(a+b)^2},$$ where $$a$$ and $$b$$ are the semi-major and semi-minor axes and $$b = a\sqrt{1-e^2}$$, where $$e$$ is the eccentricity.

Then the result you want is $$p = \pi(a+b)\left[1 + \frac{h}{4} + \frac{h^2}{64} + \frac{h^3}{256} ...\right]$$

All this is general, but might be overkill for your problem involving the Earth. If my calculator skills are working, then for the Earth's orbit around the Sun, $$a = 1.00000011$$ au, $$e = 0.01671022$$, $$b = 0.99986048$$ au and $$h = 7\times 10^{-5}$$.

Using this and just the first 2 terms in the series, I get a perimeter of $$1.999895\pi$$ au. So hardly a correction from $$2\pi a$$.

However, if you were serious about accuracy then you would have to add to this about 12.5 orbits around the barycentre of the Earth-Moon system and a further correction for the motion of the Sun around the solar system barycentre.

• (I guess you mean $b$ to be the semi-minor axis.) Deriving the semi-minor axis via the the semi-major axis and eccentricity seems to be the missing piece, thanks. Will try this later and post my results. – DarkDust Nov 10 '18 at 18:31
• Plugging in this gives about $939,902 Gm$, which matches the time-based solution at least in the integer part. You're right, this ignores the barycenter but is good enough for me since it seems the available base values are not 100% precise to begin with. – DarkDust Nov 11 '18 at 8:58
• Nice! Considering that a Kelplerian orbit isn't just any ellipse, but governed by some constraints of motion, it doesn't necessarily follow that "An ellipse has no simple formula to find the perimeter." means the integral of $ds/dt$ has no simple formula. Maybe it doesn't, but that would have to be demonstrated separately. Since $t(\theta)$ can be addressed analytically, as can the relationship between $r$ and $\theta$, is there really no exact analytical solution for the integral of $ds/dt$ over one orbit? – uhoh Nov 11 '18 at 10:02
• @uhoh The orbit is in fact any ellipse with the barycenter in one of its focal points and we still want to find its perimeter. There is no simple formula in terms of the axes etc. if you integrate at constant speed or at orbital mechanic speed. We are just lucky that the excentrity is very small and that the influx by other planets is very small and that the Sun essentially is the barycenter and that relativistic effects can be ignored. Then again, if either of these lucky coincidences were not true, we'd hardly be here to discuss this – Hagen von Eitzen Nov 11 '18 at 14:12
• @StephenG I've posted where I got it, but no original source is given mathsisfun.com/geometry/ellipse-perimeter.html – ProfRob Nov 11 '18 at 18:04

The distance travelled by Earth in one revolution around the Sun as calculated by the data from Wikipedia's entry about Earth is about $$939.886Gm$$, or $$939.801Gm$$, depending on the approach used for calculation. Since my math-fu is not very strong please point out any mistakes I've made.

Wolfram Alpha's answer to "circumference of earth orbit around the sun" is $$9.399 \times 10^8km$$ which is the rounded solution of the first four approaches I've arrived at and I'm thus assuming that $$939.886Gm$$ is the most accurate solution.

## Integral approach

It seems the exact way to calculate the perimeter/circumference is via the formula $$C = 4aE(e^2)$$ where $$E$$ is the complete elliptic integral of the second kind.

I've found a solution using Python. I tried using the numbers from Wikipedia here for consistency:

import numpy as np
from scipy.special import ellipe
a = 149598023000 # semi-major in meter
e = 0.0167086 # eccentricity
pe = 4 * a * ellipe(e * e)
print(pe) # 939886493337.0


So about $$939.886 Gm$$.

# Ramanujan's first approximation

Ramanujan has given two approximations. The first is $$C \approx \pi[3(a+b) - \sqrt{10ab + 3(a^2+b^2)} ]$$. In Python:

import math
a = 149598023000
e = 0.0167086
b = a * math.sqrt(1 - e**2) # derive semi-minor
pe = math.pi * ( 3*(a+b) - math.sqrt( (3*a + b) * (a + 3*b) ) )
print(pe) # 9.39886493337e+11


This gives $$939.886Gm$$ again.

# Ramanujan's second approximation

The formula used by @BillDOe is Ramanujan's second approximation: $$C = \pi(a+b)(1 + \frac{3h}{10 + \sqrt{4-3h}})$$ with $$h = \frac{(a-b)^2}{(a+b)^2}$$. In Python:

a = 149598023000
e = 0.0167086
b = a * math.sqrt(1 - e**2) # derive semi-minor
h = (a-b)**2 / (a+b)**2
pe = math.pi * (a+b) * (1 + ((3*h) / (10 + math.sqrt(4 - 3*h))))
print(pe) # 9.39886493337e+11


That's the same result as the first approximation. The error for Ramanujan's approximations is stated as $$h^3$$ and $$h^5$$ respectively. That's about $$1.157^{-25}$$ and $$2.747^{-42}$$. I'm not a math geek, so these sound pretty low for me and I wonder why the solution is so different than the integral approach.

# @RobJeffries's approach

I don't know how this is called. The formula is:

$$C = \pi(a+b)\left[1 + \frac{h}{4} + \frac{h^2}{64} + \frac{h^3}{256} ...\right]$$

In Python:

a = 149598023000
e = 0.0167086
b = a * math.sqrt(1 - e**2) # derive semi-minor
h = (a-b)**2 / (a+b)**2
pe = math.pi * (a+b) * (1 + (h/4) + (h**2/64) + (h**3/256))
print(pe) # 9.39886493337e+11


Again, $$939.886Gm$$

## Calculate from average speed

The average speed is given as $$29.78km$$ and a sidereal day is 365.256. Plugging in the numbers:

s = 29780
y = 365.256
pe = y * 24 * 60 * 60 * s
print(pe) # 9.39800765952e+11


That gives $$939.801Gm$$.

• The reason the SciPy version is giving a different value is because the formula used is E(m) rather than the E(k) described on Wikipedia, where m = k ^2 (you can see this in the definitions of the integrals). The formula you want to use with SciPy is therefore 4*a*ellipe(e*e). – user24157 Feb 5 '19 at 20:19
• @mistertribs: Thank you very much! I've updated my answer, with your correct I get the exact same value as the other approaches. – DarkDust Feb 6 '19 at 7:51

I pondered this myself a couple of weeks ago. For Earth's orbital circumference Ramanujan's (q.v.) formula for the perimeter of an ellipse is good enough. (Actually, Jean Meeus says so in his book, but I can't find the reference. Sorry.) The Excel formula I used is:

=PI() * (F4 + F6) * (1 + 3 * ((F4 - F6)^2/(F4 + F6)^2)/(10 + (4 - 3 * ((F4 - F6)^2/(F4 + F6)^2))^1/2))


Where F4 and F6 are the semi-major and semi-minor axes, respectively.

Using this formula I get a circumference of 939.8855 X 106 km.