Astronomy

Which planet is closest to Earth?

The BBC’s Sky at Night programme said our nearest neighbour is Mars but one viewer disagreed. Was he right? Let’s find the answer using Python and R

Photo: Calwaen Liew

Which planet would you say is closest to Earth? Is it Venus? Mars? If you’re anything like me, you would have answered Mars. After all, it’s where space agencies want to send the first manned mission to another planet — surely they would just choose the closest. Wouldn’t they?

In a recent episode of the BBC’s ever-interesting programme More or Less, they tackled this very question. Loyal listener Graham Sherman said that on the BBC Four TV programme The Sky at Night Chris Lintott, professor of astrophysics at Oxford University, said our nearest neighbour was Mars. But Sherman wasn’t so sure. And so the BBC’s Tim Harford put the question to David A. Rothery, professor of planetary geosciences at the Open University: which planet is closest to Earth?

It turns out that the answer depends on when you ask it.

Although the elliptical orbit of Venus is closest to Earth’s own, that doesn’t mean that Venus itself is always the closest planet to us. Sometimes it is, sometimes it isn’t. Each planet takes a different length of time to orbit the Sun1 and so sometimes Mars is quite close to us while Venus is far away, on the other side of the Sun.

Oliver Hawkins, formerly a More or Less researcher and now a data scientist at the House of Commons Library, wrote some code for the programme to calculate which planet was closest to Earth every day for the past fifty years. More or Less then asked Professor Rothery to use the calculations to find out, finally, which planet is closest to Earth. The answer? Mercury.

Yep, Mercury. Or at least, it’s the closest on average. Venus may come closer to Earth than any other planet, but according to Professor Rothery over the last fifty years Mercury has been our closest neighbour 46% of the time, Venus 36% of the time, and Mars 18% of the time.

Apparently, this calculation had never been done before. The data was all available, but no one had thought to check. Unfortunately, More or Less didn’t publish their code — or, more interestingly, their charts — but I really wanted to see what the data looked like. So I worked out how to reproduce it.

Chart showing blah

Thanks to the hard work of other people, it turned out to be relatively easy. The Jet Propulsion Laboratory, a NASA R&D centre, has published ephemerides — calculated positions of the planets (and other celestial objects) at regular intervals — and Brandon Rhodes has made those calculations easily available in Python via the jplephem and Skyfield packages. A little while after I’d discovered that, I had a Python script to calculate the planetary distances2 for every day between 1950 and 2050 and then dump them to a CSV. And shortly after that, I had an R script to make the charts you see on this page. I’ve published the code on GitHub.

So, I hear you ask, which planet will be our nearest neighbour over the coming months and years?

  1. Venus, until 24 February 2019
  2. Mercury, until 20th December 2019
  3. Venus, until 7th February 2020
  4. Mercury, until 16th of March 2020
  5. Venus, until 4th of August 2020
  6. Mars, until 20th January 2021

In January 2022 we’ll come as close as we ever do to another planet, when we’ll be about 40 million kilometres from Venus. A few years later, in January 2026, we’ll be far from anything else, 214 million kilometres from our then-nearest neighbour, Mercury. All while we travel at 100,000 kph. Yes, these numbers are staggering. I try not to think about it.

Chart showing blah

Near the end of the programme, Oxford University’s Professor Lintott told Harford that ‘calculating which planet is closest when is a fun problem’. Indeed it is.

Update, 11 February 2019

Oliver Hawkins, who made the charts mentioned in the programme, wrote about the process he used on his blog.


  1. Fun fact: Venus orbits the Sun every 224.7 days but takes 243 days to rotate on its axis, so its day is longer than its year. ↩︎
  2. Make yourself familiar with the astronomical unit, abbreviated as au, which is equivalent to just under 150 million kilometres. ↩︎