Sail Away
Cover  <<  Sail Away  <<  Notes on Trigonometry  <<  .

Finding Position from two observed Altitudes

Each measured Altitude of a celestial body yields a Line-of-Position (LoP). The obtained LoP is a circle on the globe, centered on the Geographical Position (GP) of the observed body at the time of the measurement and the circle radius (R in degrees) is directly related to the measured Altitude (R = 90° - Ho). Consequentely, two measured Altitudes yield two "Circles-of-equal-Altitude", which will generally intersect in two different points.

Since a careful navigator will always have a resonable good estimate of his current position, one of the two intersection points can be discarded due to it's large distance from the estimated position. This makes it possible to uniquely determine the current position from only two Altitude measurements.

In the following section a mathematical method for finding a position from two observed Altitudes will be described.


Trigonometric Setup for the Position Problem


The picture on the left shows the principle situation on the Celestial Sphere with the positions of the observed bodies (P0, P1) and the - unknown - position of the observer's Zenith (Z). These three points together with the Celestial North Pole (CNP) define four (!) different spherical triangles on the Celestial Sphere.

The following triangle elements are known:

  • The Positions P0 and P1 with their coordinates on the Celestial Sphere are known from the Nautical Almanac: P0 (Dec0, GHA0) and P1 (Dec1, GHA1). This data defines two sides and one angle of some of the triangles.

  • The observed Altitudes H0 and H1, which define two more sides.

Trigonometric Solution for the Position Problem

With this setup, the following steps can be performed to solve all the angles and sides of the spherical triangles solving also the unknown values for Latitude and Longitude of the unknown position "Z".

sail042g_C.png sail042g_D.png
  • 1. Calculate the unknown elements D, A0 and A1 of the spherical triangle P0 - CNP - P1:

     D = acos(sin(Dec0)*sin(Dec1) + cos(Dec0)*cos(Dec1)*sin(GHA0-GHA1))
     A0 = acos((sin(Dec1)-sin(Dec0)*Cos(D))/(cos(Dec0)*Sin(D)))
     A1 = acos((sin(Dec0)-sin(Dec1)*Cos(D))/(cos(Dec1)*Sin(D)))

  • 2. Calculate the angles a0, a1 and d in the spherical triangle P0 - Z - P1:

     a0 = acos((sin(H0)-sin(H1)*cos(D))/(cos(H1)*sin(D)))
     a1 = acos((sin(H1)-sin(H0)*cos(D))/(cos(H0)*sin(D)))
     d  = acos((cos(D)-sin(H0)*sin(H1))/(cos(H0)*cos(H1)))

    Note 1: the angle d has to be in the range 45° to 135° to obtain a resonable accuracy with this method taking into account that the Altitudes H0 and H1 cannot be measured with extreme accuracy.
    Note 2: there are two valid (a0,a1) pairs: (+a0,+a1) and (-a0,-a1) obtaining two valid solutions for the position (Z).

  • 3. Calculate the angles B0 and B1:

     B0 = A0 ± a0
     B1 = A1 ± a1
  • 4. Calculate the Latitude of Z from both triangles:

     Lat = asin(sin(H1)*sin(Dec1)+cos(H1)*cos(Dec1)*cos(B1))
     Lat = asin(sin(H0)*sin(Dec0)+cos(H0)*cos(Dec0)*cos(B0))

    Note: the Latitude of Z can be calculated from one of the two triangles, but the precision of the result can be enhanced by taking the average Latitude value obtained from both triangles.

  • 5. Calculate the Local Hour Angles of Z (applying the Law of Sines) from both triangles:

     LHA0 = asin(sin(B0)*cos(H0)/cos(Lat))
     LHA1 = asin(sin(B1)*cos(H1)/cos(Lat))

    From the Local Hour Angles, the Longitude of Z can be determined by: Lon = ± GHAx ± LHAx (x=0/1). The correct signs must be obtained from the geometrical constellation.

sail042g_E.png sail042g_F.png

The calculation scheme elaborated above is also implemented in an interactive Javascript application.

Cover  <<  Sail Away  <<  Notes on Trigonometry  <<  . last updated: 09-Oct-2008