1.0 Definitions and Principles

This section and the next two succeeding sections will present some of the conventions used in this document. They are not necessarily standard but are adopted for convenience and will be followed consistently. The fourth section describes how to used the procedures to calculate equations to convert equatorial co-ordinates to galactic co-ordinates. The final section gives some thoughts at calculating other co-ordinates systems.

Bold face letters indicate vectors and normal letters indicate scalars.

  • a = a vector whose scalar magnitude = a
  • x,y,z = unit vectors indicating the 3 axes of a Cartesian co-ordinate system. A subscript to the unit vectors indicate the co-ordinate system to which they belong. For example, xe,ye,ze are the 3 unit vectors in the equatorial co-ordinate system and xg,yg,zg are the 3 unit vectors in the galactic co-ordinate system. In both , azimuth angles are measured counter-clockwise from xg when looking down along the zg axis and elevation angles are measured from the xy plane. Elevation angles are positive when the angle is measured above the xy plane.
  • ax,ay,az = the scalar magnitude of the 3 components of the vector,a.

The vector, a, may be written in vector form as follows:

  • a = xeax + yeay + zeaz (1)

There are two types of multiplication for vectors: dot products and cross products. Some of their properties are described in the next paragraphs.

2.0 Dot Products

A dot product will be indicated by a superscripted period. The dot product of two unit vectors are as follows:

  • xe . xe, ye . ye, and ze . ze = 1 (2)
  • xe . ye or ze, ye . xe or ze, and ze . xe or ye = 0 (3)

The dot product of two vectors is a scalar defined as follows for the vectors a and b:

  • a . b = ax * bx + ay * by + az * bz (4)

This definition arises from the definition of the dot products of unit vectors.

A dot product is commutative; i.e., a . b = b .a.

The dot product of a unit vector and a vector gives the component of the vector in the direction of the vector. For example:

  • xe . a = ax (5)

This property is used to find the xg, yg, and zg components of a vector that is expressed in equatorial co-ordinates. The three unit vectors, xg, yg, and zg are expressed in equatorial co-ordinates and then the dot products of each unit vector and the vector are taken.

A further property of dot products is:

  • a . b = a * b cos theta (6)

Where theta is the angle between the two vectors.

3.0 Cross Products

The cross product of two vectors is a third vector orthogonal to the first two. In this document, the symbol for cross product will be [x]. This is not a standard convention as far as I know but one that was invented for this document. The brackets are used to distinguish the cross product from the symbol, x, for a unit vector. For example:

  • a [x] b = c (7)

The vector, c, is perpendicular to both a and b. This property of cross product is used to determine the yg unit vector of the galactic co-ordinate system since the xg unit vector is defined as the direction toward the galactic center and the zg unit vector is defined as the direction of the galactic north pole. The vector, c, can be found from the diagonals of the matrix given below.

  • c = xg * (ay*bz - by*az) + yg * (az*bx - bz*ax) + zg * (ax*by - bx*ay) (8)

Cross products are not commutative so order is important. The effect of using different orders is shown by the equation below.

  • a [x] b = -b [x] a (9)

In finding the third unit vector of an x,y,z co-ordinate system when two unit vectors are known, the cross product should be taken in that order as illustrated below. This is a convention that the author cannot find described in the references that he has. it is possible that the conventions used may be different from mathematical texts. However, it seems to work so there is confidence that the results are correct even if the convention is non-standard. The equations used to find the third unit vector when two are known are shown below.

  • x [x] y = z (10)
  • y [x] z = x (11)
  • z [x] x = y (12)

In calculating the third unit vector for galactic co-ordinates, the unit vector in the direction of the galactic center is assumed to be the x vector and the unit vector in the direction of the galactic pole is assumed to be the z vector. It is the y vector that is desired and therefore Eq. 12 is used.

4.0 Calculation of the Galactic Co-ordinate System

The Right Ascensions and Declinations of the galactic center and galactic north pole are given on page 42 of Reference 1.

Galactic Center

  • RAgc = 17h 45.6m = 266.4000 deg
  • Decgc = -28° 56.3' = -28.9383 deg

Galactic North Pole

  • RAgp = 12h 51.4m = 192.8500 deg
  • Decgp = 27° 07.7' = 27.128 deg

The xg (galactic center) and zg (galactic north pole) unit vectors of the galactic co-ordinate system can now be found.

  • xg = xe * cos(RAgc)*cos(Decgc) + ye*sin(RAgc)*cos(Decgc) + ze*sin(Decgc) (13)
  • xg = xe*(-0.0550) + ye*(-0.8734) + ze*(-0.4839) (14)
  • zg = xe * cos(RAgp)*cos(Decgp) + ye * sin(RAgp)*cos(Decgp) + ze * sin(Decgp) (15)
  • zg = xe * (-0.8677) + ye * (-0.1979) + ze * (0.4560) (16)
  • yg = zg [x] xg (17)
  • yg = xe([-0.1979*-0.4839]-[-0.8734*0.4560])
  • yg = xe * (0.4940) + ye*(-0.4449) + ze*(0.7470) (18)

Equations 14 (xg), 18 (yg) and 16 (zg) can be used to calculate the galactic co-ordinates of any star whose position is given in equatorial co-ordinates. Assume a star position defined by the following equation.

  • Se = xe*Xe+ye*Ye+ze*Ze (19)


  • Se = the vector expressed in equatorial co-ordinates that defines the star's position.
  • Xe = the scalar magnitude of the component of Se in the xe direction.
  • Ye = the scalar magnitude of the component of Se in the ye direction.
  • Ze = the scalar magnitude of the component of Se in the ze direction.

If Xg, Yg, and Zg are the magnitudes of the star's position in the xg, yg, and zg directions, they can be found from the following equations. xg, yg, and zg are defined by Eq. 14, 18, and 16 respectively and Se is definedby Eq. 19.

  • Xg = xg . Se (20)
  • Yg = yg . Se (21)
  • Zg = zg . Se (22)
  • Xg = -(0.0550)*Xe - (0.8732)*Ye - (0.4839)*Ze (23)
  • Yg = (0.4940)*Xe - (0.4449)*Ye + (0.7470)*Ze (24)
  • Zg = -(0.8677)*Xe - (0.1979)*Ye + (0.4560)*Ze (25)

These are the equations previously derived by the author and the methodology has been described in some detail. A program was not written to calculate the 9 coefficients in Eqs. 23-25 because the interest was only in converting equatorial co-ordinates to galactic. Once they were calculated, there didn't seem to be a need to calculate them again. Nevertheless, some data sources such as the Observers's Handbook are issued annually and give star positions for the epoch of the year of publication. The major star data sources, however, seem to publish data for epochs at 50 year intervals such as 1950.0 and 2000.0. The next section discusses how other co-ordinates systems might be found and when this is done, the conversion equations described above should be programmed.

The above equations (Eq. 23-25) can be used to calculate galactic longitude, l and latitude, b.

  • b = atan[Zg/Xg2 + Yg2)0.5] (26)
  • l = atan[Yg/Xg]

(Ed note: "( )0.5" is shorthand for "take the square root of")

Galactic latitude and longitude are one way of expressing a star's position in the galactic co-ordinate system. In calculating l, a function called ATAN2 is available on many PCs, certainly all the newer ones. This calculates angles to +/- 180°. The ATAN function on older PCs looks at the quotient of the numerator and denominator of the tangent. It can give angles only to +/- 90°. If the numerator and denominator are both negative, the quotient will be positive and the angle will be in the first quadrant, the same as if both were positive. The ATAN2 function looks at the sign of both the numerator and denominator and outputs the angle accordingly. Logic can also be used so that if the output angle is negative, 360° is added to the output angle to yield an angle that is between 0 and 360°.

It should be noted that the galactic co-ordinate systems is still an Earth centered system, just like the equatorial system. It also implicitly assumes that the Earth is on the galactic plane. According to Ref.2, p 94, the Earth is, at present, 50 light years above the plane of the galaxy and the distance is increasing. The error caused by this difference between Earth's position above the galactic plane and the assumption that is lies on the galactic plane is probably negligible.

5.0 Calculation of the Other Co-ordinate Systems

The sections above have described how to convert the position of a star expressed in equatorial co-ordinates to a position expressed in galactic co-ordinates. A desire has been expressed (ed. note: By me!) to convert star positions from equatorial co-ordinates to some other co-ordinates. This section will present some ideas on the subject.

Assume a star (Star A) is selected as the origin of the proposed co-ordinate system. The Xe, Ye, and Ze co-ordinates of this star in the Earth centered system can be used to calculate the Xes, Yes, and Zes of all other stars in the data base whose xyz positions are given in Earth centered co-ordinates. This is just a change in origin and gives a modified co-ordinate system whose x, y, and z axes are parallel to x, y, and z axes of the equatorial co-ordinate system but whos origin is centered on Star A.

Then a second star (Star B) is selected as the pole star (z axis) for the new co-ordinate system. A vector can be written in the modified equatorial co-ordinate system for the z axis.

  • Zn = xeA*XeA + yeA*YeA + zeA*ZeA (28)


  • Zn = a vector from Star A to Star B. The direction of this vector is the z axis unit vector, zn.
  • xeA = the x direction unit vector in the modified equatorial co-ordinate system.
  • yeA = the y direction unit vector in the modified equatorial co-ordinate system.
  • zeA = the z direction unit vector in the modified equatorial co-ordinate system.
  • XeA = the scalar magnitude of the xeA component of Zn.
  • YeA = the scalar magnitude of the yeA component of Zn.
  • ZeA = the scalar magnitude of the zeA component of Zn.

The elevation angle, EeA, and azimuth angle, AeA from Star A to Star B in the modified co-ordinate system can be found from the following equations.

  • EeA = atan [ZeA/(XeA2 + YeA2)0.5] (29)
  • AeA = atan [YeA/XeA] (30)

The zn unit vector of the new system can now be written in the modified equatorial co-ordinates system.

  • zn = xeA*cos(AeA)*cos(EeA) + yeA*sin(AeA)*cos(EeA) + zeA*sin(EeA) (31)

The xn and yn vectors must lie in a plane that is perpendicular to zn. Recalling Eq. 6:

  • a . b = a*b cos theta (6)

If a and b are perpendicular to each other, theta must be 90 deg and cos theta is 0. Therefore:

  • xn . zn = 0 (32)
  • yn . zn = 0 (33)

There are two possible xn vectors that can be defined. One has the same AeA as the zn vector with an elevation angle of (EeA - 90°) if EeA is positive. The other has an elevation angle of (EeA + 90°) if EeA is positive and an azimuth angle that is the reciprocal of AeA. If EeA is negative, the signs on the 90° angles are reversed. An example will be shown to illustrate this.

Assume EeA = +75°. Then the elevation angle of one possible xn is -15° with an azimuth of AeA. If 90° is added to 75°, an angle of 165° results. This gives an elevation angle of +15° at an azimuth of AeA +180° for a second possible xn. For the assumed value of EeA (+75°), the elevation angle of xn in modified equatorial co-ordinates must fall within the range of +/- 15° but any value of azimuth angle is possible. With an EeA elevation angle of -75°, xn can have an elevation angle of +15° at the zn angle of AeA and the second elevation angle of xn is -15° at an azimuth of AeA + 180°.

In general terms, the vector xn can be written as follows.

  • xn = xeA*cos(A)*cos(E) +
    yeA*sin(A)*cos(E) +
    zeA*sin(E) (34)


  • A = the azimuth angle of xn. A can be any value.
  • E = the elevation angle of xn. E must fall in the range determined by EeA.

If Eq. 31 and 34 are substituted in Eq. 32 the following equation results.

  • cos(AeA)*cos(EeA)*cos(a)*cos(E) + cos(EeA)*sin(AeA)*cos(E)*sin(A) + sin(EeA)*sin(E) = 0 (35)

In Eq. 33, AeA and EeA are determined by the choice of Star A (the star selected as the origin of the new co-ordinate system) and Star B (the star selected to determine the direction of zn) but E and A have to be determined. A value of A or a value of E (within the limits determined by EeA) can be selected and put in Eq. 35. However, once the value of A or E has been chosen, the other parameters must be selected to make Eq. 35 equal to zero. This could be done by an iterative computer program that tries values for the remaining undefined parameter until Eq. 35 is satisfied. It should be noted that for every value of E selected, there will be two values of A. These will differ only in sign; one will be positive and one will be negative. The numerical value will be the same.

A range of values for A, E sets can be found in this manner but the user of this procedure must select one A, E set based on whatever criteria he can establish. Once xn is determined, yn can be calculated with the procedures described in Section 4.

One factor that should be considered is the degradation of the accuracy of star positions with distance from Earth. The positions of stars near to Earth are fairly accurately know so shifting the origin to a nearby star shouldn't cause much error. Stars at an extremely far distance would not change in apparent position for small shifts in origin. In mapping the skies of another star showing the positions of the stars, one should be able to predict what the skies would look like when nearby stars are charted. The extremely far stars would look the same as they do from Earth. There may be an intermediate distance where the position errors are enough to matter. The author has not analyed this problem but others might have.

Another co-ordinate system that might be considered is Sun-centered ecliptic. This system would be expected to be used for interplanetary astrogation since the orbital planes of most planets lie near the ecliptic. It might also be of interest for short distance interstellar travel where distances are less than a couple of hundred light years and galactic structure is not a factor. Measuring star positions with reference to the ecliptic might be more meaningful than with reference to either the galactic or equatorial planes.


  1. Ridpath, Ian, ed., NORTON'S 2000.0: STAR ATLAS AND REFERENCE HANDBOOK,Eighteenth Edition, John Wiley & Sons, New York, NY, (1991).
  2. Henbest, Nigel & Heather Couper, THE GUIDE TO THE GALAXY, Cambridge University Press, (1994).

Atomic Rockets notices

Welcome to the improved 3-D Starmaps!

3-D Starmaps