In line with this question, ever since we started space exploration, what is the closest a living human being has come to Venus?

All I can find on this matter is that the closest distance Venus and Earth will get together is in December 2085, nothing on past approaches.


2 Answers 2


What makes this somewhat different form the case of Mars is that the orbit of Venus is pretty round. It has even less eccentricity than the orbit of the Earth.

Therefore, all "good" close approaches are going to happen close to the perihelion of the Earth.

As a first order approximation, that means "good" encounters are somewhere in the range between the difference between Earth perihelion and Venus perihelion and aphelion, 39.62 and 38.16 million kilometres.

There haven't been too many such "good" encounters since the beginning of the space age, so from tabular values, the closest one would be the one in January 2014, at 39.811 million kilometres (solex printout).

(The one in January 2022 is going to be 0.05 million kilometres closer, so you better start planning now if you want to grab the record for yourself)

Most of this range can be cut away by considering relative inclination and argument of perihelion.

What remains after that is the same wildcards as for Mars:

  • Up to 0.4 million kilometres reduction if any of the Apollo missions happened during a close encounter. (But the same solex printout shows there were not good encounters between 1946 and 1990)
  • Up to 0.0004 million kilometres reduction if the ISS has a good beta angle.
  • Up to 0.00001 million kilometres reduction if any plane was in a good spot.
  • Up to 0.000008 million kilometres reduction for mountain climbers. (Unlike Mars, this would happen at noon).
  • Up to 0.000000001 million kilometres by jumping into the air.

Subtracting the radius of the Earth and Venus, that's 31.797 million kilometres.

The greatest uncertainty left is only 400km.

  • $\begingroup$ As a bit of a frame challenge, this is only true if you're asking about entire humans. If you're willing to expand your criteria to parts of humans, there were probably some discarded skin cells and the like on landers sent to both Venus and Mars. There's probably some on the Voyager probes too. So human DNA has technically left the solar system. $\endgroup$ Commented Oct 23, 2020 at 16:12
  • $\begingroup$ "this would happen at noon" - noon where? $\endgroup$
    – Aaron F
    Commented Oct 23, 2020 at 20:54
  • $\begingroup$ @AaronF: Noon local time. (When the Earth and Venus are closest, Venus is directly between the Earth and the Sun, so you're closest at local noon.) $\endgroup$
    – ruakh
    Commented Oct 23, 2020 at 21:25
  • $\begingroup$ @ruakh ah yes, now I see, thank you $\endgroup$
    – Aaron F
    Commented Oct 23, 2020 at 21:41

Supplemental answer for parity's sake.

I can verify that it wasn't any Apollo-era astronauts

Similar to this answer for Mars:

distances to Venus during Apollo missions

from skyfield.api import Topos
from skyfield.api import Loader
import numpy as np
import matplotlib.pyplot as plt

from skyfield.api import load
loaddata = Loader('~/Documents/fishing/SkyData')  # avoids multiple copies of large files

ts = loaddata.timescale() # include builtin=True if you want to use older files (you may miss some leap-seconds)
eph = loaddata('de421.bsp')

earth, moon, venus = [eph[x] for x in ('earth', 'moon', 'venus')]

apollos = [(10, 1969, 5, 18, 26), (11, 1969, 7, 16, 18),
           (12, 1969, 11, 14, 24), (13, 1970, 4, 11, 17),
           (14, 1971, 1, 31, 40), (15, 1971, 7, 26, 38),
           (16, 1972, 4, 16, 27), (17, 1972, 12, 7, 19)]
# https://en.wikipedia.org/wiki/Apollo_program

timez_apollo = []
for n, year, month, d_start, d_stop in apollos:
    times = ts.utc(year, month, range(d_start, d_stop+1))

days = 1 + np.arange(5*365.2564+1)
times = ts.utc(1969, 1, days)
years = days/365.2564
t_1969 = times.tt[0]

epos, moonpos, vpos = [x.at(times).position.km for x in (earth, moon, venus)]
r_earth = np.sqrt(((epos - vpos)**2).sum(axis=0))
dr_moon = np.sqrt(((moonpos - vpos)**2).sum(axis=0)) - r_earth

fig = plt.figure()
ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 1, 2)
ax3 = fig.add_subplot(3, 1, 3)
ax1.plot(years, r_earth/1E+06, '-k', linewidth=0.5)
ax2.plot(years, dr_moon/1E+06, '-k', linewidth=0.5)
for timez in timez_apollo:
    yearz = (timez.tt - t_1969) / 365.2564
    epoz, moonpoz, vpoz = [x.at(timez).position.km for x in (earth, moon, venus)]
    r_earthz = np.sqrt(((epoz - vpoz)**2).sum(axis=0))
    dr_moonz = np.sqrt(((moonpoz - vpoz)**2).sum(axis=0)) - r_earthz
    ax1.plot(yearz, r_earthz/1E+06, linewidth=2.5)
    ax2.plot(yearz, dr_moonz/1E+06, linewidth=2.5)
ax2.set_ylim(-0.5, 0.5)
ax1.set_xlim(0.2, 4.0)
ax2.set_xlim(0.2, 4.0)
ax1.set_ylim(0, None)

timesbig = ts.J(np.arange(1961, 2021, 0.001))

eposbig, vposbig = [x.at(timesbig).position.km for x in (earth, venus)]
r_earthbig = np.sqrt(((eposbig - vposbig)**2).sum(axis=0))
yearsbig = (timesbig.tt - t_1969) / 365.2564
ax3.plot(yearsbig, r_earthbig/1E+06)
closest = np.argmax(-r_earthbig)
ax3.plot(yearsbig[closest:closest+1], r_earthbig[closest:closest+1]/1E+06, 'or')


message_left = str(round(float(r_earthbig[closest:closest+1])/1E+06, 3))
message_right = timesbig.utc_iso()[closest]
message = message_left + '  ' + message_right + ' '
ax3.text(yearsbig[closest], 10, message, ha='right')
# ax3.text(yearsbig[closest], 10, message_right, ha='left')

ax3.set_xlabel('years since 1969-01-01')
ax3.set_xlim(yearsbig[0], yearsbig[-1])
ax3.set_ylim(0, None)

ax1.set_ylabel('E to V (Gm)')
ax2.set_ylabel('(Moon to V) - (E to V) (Gm)')
ax3.set_ylabel('E to V (Gm)')

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.