Here on earth, we have four directions(East, West, North, South). We have earth maps which shows our exact location from any other location in 2D plane. But in space, planets and stars are in three dimensions, so how can we say that a certain planet is at "this" location in space. If we are using 3D geometry consisting of X,Y,Z axes, then where is the assumed center of that model? Here on earth we can say that Canada is at "NORTH" of USA, how do we say that Earth is at "****" of Mars?

  • 4
    $\begingroup$ There are many, extremely many, direction systems in 3D. $\endgroup$ Commented Apr 7, 2016 at 12:18
  • $\begingroup$ Related, but not a duplicate: How are rockets guided to follow specific trajectory? $\endgroup$ Commented Apr 7, 2016 at 13:34
  • 1
    $\begingroup$ To be fair, even earth mapping is non-trivial, due to curvature and poles. The three-dimensional surface of the earth has to be 'unwrapped' and projected to a plane to make those 2d maps and there are a wide range of projections used for various purposes. $\endgroup$
    – Dan Bryant
    Commented Apr 7, 2016 at 17:51
  • 1
    $\begingroup$ It might be worth noting in this question that Canada's position relative to earth constant, where as earth's position relative to mars will change. Without any experience in this field, I might imagine a top-down model of the solar system with earth at 0 degrees, and say that mar's current position forms a 120 degree angle, with the sun being the vertex. This gets infinitely more complicated when you start saying things like the Milky way is at a 15 degree angle to andromeda, with the SMBH at the center of the galaxy forming the angle. $\endgroup$
    – Sidney
    Commented Apr 7, 2016 at 18:40
  • $\begingroup$ There are infinite directions in a 3D system. $\endgroup$ Commented Apr 7, 2016 at 19:35

2 Answers 2


There are many different coordinate systems (X, Y, Z axes as you refer to them). The center of the Earth is often used as the origin "center" of the coordinate system, at least for calculations concerning the space in the vicinity of Earth. There are many such Earth-centered coordinate systems as well. In the Space Shuttle Program we used the "Mean of 50" and the "J2000" inertial systems often. They are well described in this article.

Although I have no personal experience with it, I imagine for planetary calculations, there are Sun-centered coordinate systems, and ones for each planet that people care to calculate such things for.

To answer the last part of your question, such terminology as "Earth being North of Mars" is used only informally and would require some up-front definitions to be meaningful.

  • 1
    $\begingroup$ Geocentricity lives to see another day! $\endgroup$ Commented Apr 7, 2016 at 18:03
  • 1
    $\begingroup$ @Panzercrisis I was much amused to find that on the simulator I worked on the positions of the sun and planets were indeed calculated that way. $\endgroup$ Commented Apr 7, 2016 at 18:05

The answer by @OrganicMarble really sums up the situation well! I'm going to add this supplemental information here only because it won't fit into a comment.

The documentation of Skyfield discusses Barycentric position - i.e. position of things with respect to the center of mass of the solar system, which is approximately at the sun, although because Jupiter and to a lesser extent Saturn are so heavy, the sun moves around a bit as well.

I like this software very much, because it gives you a very simple Python interface to access some very complicated things. In a few lines we can get the (X, Y, Z) position of Earth and Mars, at the exact moment @OrganicMarble posted the answer, and then some other useful things as well.

Answer Timestamp

But first (before the actual X, Y, Z positions) here is a cartoon of the Barycentric coordinates. The origin is at the center of mass of the solar system, and the Z axis points where the axis of the earth pointed at one moment (it slowly drifts, so they froze it).

cartoon of Barycentric coordinates

from skyfield.api import load, JulianDate

data = load('de421.bsp')

earth = data['earth']
mars  = data['mars']

jd = JulianDate(utc=(2016, 4, 7, 12, 19, 52))  # Timestamp of Organic Marble's answer

ep = earth.at(jd).position.km
mp = mars.at(jd).position.km

print "Earth: ", ep   # (X, Y, Z) of Earth at the moment Organic Marble posted the answer!
print "Mars:  ", mp   # ditto for Mars

    Earth:  array([ -1.41969644e+08,  -4.19228367e+07,  -1.81995394e+07])
    Mars:   array([ -1.83099445e+08,  -1.36301780e+08,  -5.75942828e+07])

print earth.at(jd).observe(mars).radec()  # corrected for 6 minute delay of the light from Mars
    (<Angle 16h 25m 47.63s>, <Angle -20deg 56' 19.3">, <Distance 0.736829 au>)

print earth.at(jd).observe(mars).apparent().radec()  # corrected abberation and gravitational delfection of light
    (<Angle 16h 25m 48.53s>, <Angle -20deg 56' 21.5">, <Distance 0.736829 au>)

Houston = earth.topos(29.76, -95.38, elevation_m = 13)

print Houston.at(jd).observe(mars).apparent().radec() # now R.A. and Dec from Houston, not center of Earth
    (<Angle 16h 25m 48.08s>, <Angle -20deg 56' 29.9">, <Distance 0.73681 au>)

print Houston.at(jd).observe(mars).apparent().altaz() # almost 27 degrees above the horizon
    (<Angle 26deg 49' 51.8">, <Angle 221deg 17' 44.6">, <Distance 0.73681 au>)

print Houston.at(jd).observe(mars).apparent().altaz('standard') # corrected for refraction - standard atmosphere
    (<Angle 26deg 51' 48.9">, <Angle 221deg 17' 44.6">, <Distance 0.73681 au>)

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.