I'm curious if there is a readily accessible tool available, or simply a reliable way to find out what the distance of the planets in the solar system were on a given date.

For example, if I am trying to determine how far:

  1. The Sun
  2. Mercury
  3. Venus
  4. Mars

were from Earth on May 3, 1954 ... how would I do that?


1 Answer 1



I see that you are quite active in Stack Overflow but have no posts tagged with python yet, so maybe it's time to give it a try!

  1. Run pip install skyfield
  2. read the simple documentation: https://rhodesmill.org/skyfield/
  3. calculate x, y, z positions in the solar system's coordinates with a single line of Python; e.g. `x, y, z = venus.at(time).position.km, or
  4. use Topos to define a viewing location on Earth and the .altaz() method to get the position of each in the sky.

NASA JPL Horizions

This is the same basic source of information that Skyfield uses.

  1. Go to the Horizons website at: https://ssd.jpl.nasa.gov/horizons.cgi

  2. Follow the instructions I've written up in this answer.

  3. You can also read the documentation there to specify topographic coordinates and get positions in the sky, and you can do that viewing from other planets and bodies as well!

Have fun!

  • $\begingroup$ Moved this answer to here instead. $\endgroup$
    – uhoh
    Feb 18, 2019 at 13:27
  • $\begingroup$ That was too hasty, now moved it back here again. $\endgroup$
    – uhoh
    Feb 19, 2019 at 0:23

Not the answer you're looking for? Browse other questions tagged .