Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am building a 3d model of the solar system and need to figure out the position of the pole stars of each planet in order to tilt the planets in the correct direction the correct amount. I've already found the information of the pole star locations, the problem is that these are in earth relative coordinates. For instance the pole star of Mars is Gamma Cygni at RA 20h 22m 13.70184s, Dec +40° 15' 24.0450".

Right Ascension (RA) is hours east from the prime meridian. Declination (Dec) is degrees north (+) or south (-) from the equator. These together define a position on an imaginary celestial sphere on the surface of which one can imagine all the stars.

So how do I go from those coordinates to a vector that defines the position of the star somewhere far far away on the celestial sphere?

I am using ThreeJS. This question points to a partial solution in terms of defining an origin for a sphere, or at least its texture.

I've posted the same question to Stack Overflow here in case some programmer wizard has the answer.

share|cite|improve this question
Just to be clear, you're not worried about where the origin of your sphere is, right? It's just a matter of what you want to consider the "north pole" and zero-point of longitude of the coordinates used for your model. Also, depending on the precision you want, identifying inclinations via pole stars might be problematic if there's no bright star near to that planet's pole (as is the case with Earth's south pole). – Chris White Aug 25 '12 at 22:20
Well the origin of the celestial sphere is the barycenter of the solar system, and the center of the sphere representing earth is where ever earth happens to be on its orbit. It is not just a matter of considering one point as the zero point as I would want to get the inclinations correct so that during summer solstice the north pole is actually tilted towards the sun and Mars is tilted towards where ever it would be tilted in reality. As long as relations of all these things (position of the sun relative to earth, and the prime meridian relative to the sun at say 12 noon) are in order. – Matti Lyra Aug 26 '12 at 10:02
up vote 3 down vote accepted

Welcome to the confusing world of coordinate systems used in astronomy!

The two coordinate systems relevant to your problem are the International Celestial Reference System (ICRS), and the ecliptic coordinate system. The first one is really well-defined, the latter is "simply" derived from that.

Put simply, the ICRS is based on extending the Earth's equatorial plane out to infinity. The system places the X-axis in line with the Sun-equinox line. the Z-axis points to Earth's North pole, and Y completes the right-handed system.

Needless to say, this system is not the most natural choice when viewing the Solar system from afar. A more natural choice there is the ecliptic coordinate system. This system follows the same definition as the ICRS, except that the ecliptic (roughly the plane the Earth's orbit lies in) is extended out to infinity, not the equatorial plane.

It's fairly straightforward to convert ecliptic coordinates to equatorial coordinates and back. Don't forget to convert angular distances (RA, dec) to Euclidian coordinates, with the distance to the pole star equal to 1 (this facilitates computations and provides a nice check).

share|cite|improve this answer
Right, but the earth's equatorial plane doesn't go through the sun does it? Not that it matters, but just to get my head straight. It seems the visuals will need to wait for me to write some coordinate transformation stuff. Given that I'm using the JPL DE405 coordinates for the positions of things, I should probably start with getting the ecliptic system to display correctly. – Matti Lyra Aug 26 '12 at 10:11
@MattiLyra Do you know Celestia? Completely open-source, and is precisely what you're doing. In ll likelihood it will contain said transformations. But as a matter of fact, the equatorial coordinate system (ICRS) can go through both the Solar system barycenter, or the Earth's center of mass (I know, very confusing). It all depends on context. For your case, it really doesn't matter where the origin is -- the directions to distant stars not (or hardly) affected by where the origin is. – Rody Oldenhuis Aug 26 '12 at 10:42
@MattiLyra By the way, doesn't JPL Horizons provide planetary North-pole direction vectors in all sorts of reference frames? You might want to check that out before implementing your own conversion routines... – Rody Oldenhuis Aug 26 '12 at 10:44
well I was hoping that they do, but I couldn't find it from the ephemeris data I downloaded for the planets, maybe it's a separate data frame that I need to specify. I'll be sure to look into that. – Matti Lyra Aug 26 '12 at 15:56
+1 for the "Welcome to the confusing world of coordinate systems used in astronomy!" – astrojuanlu Jul 2 '13 at 11:07

It's a simple coordinate transformation from Earth to Sun, but there are some caveats. You must express the spherical coordinates (RA, DEC) as rectangular coordinates (x,y,z), which is relatively simple. You must also be aware of the equinox to which the coordinates are referred. It's probably best to use the J2000.0 equinox. Any good book on mathematical astronomy, celestial mechanics, spherical astronomy, or orbital mechanics will cover all of this. I can recommend the ones by Roy, Taft, Meeus, Greene, Duffett-Smith, or the one I authored.

share|cite|improve this answer
Would you mind providing an example of what the relatively simple step of expressing spherical coordinates as rectangular coordinates is? – Matti Lyra Aug 26 '12 at 10:13
Treat RA as the azimuthal and DEC as the polar angle, but note that unlike in mathematics, in astronomy we measure the polar angle from the coordinate plane, not from the coordinate axis. x = cos(RA)cos(DEC), y = sin(RA)cos(DEC), z = sin(DEC). These form a normalized (unit) vector in the direction of RA,DEC. You'll need to multiply them by a distance to use them for your purposes. – user11266 Aug 26 '12 at 18:01
Excellent,thank you. – Matti Lyra Aug 26 '12 at 19:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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