Sight Reduction Tables for NZ Latitudes

Recovery Library — Computed Reference Data

Overview

These tables provide precomputed computed altitude (Hc) and true azimuth (Zn) for three New Zealand latitudes: 36°S (Auckland region), 41°S (Cook Strait / lower North Island), and 46°S (Southland / Invercargill). They are equivalent in function to a subset of HO 229 (Sight Reduction Tables for Marine Navigation, Pub. No. 229, National Geospatial-Intelligence Agency) restricted to NZ waters.1

Coverage:

  • Latitudes: 36°S, 41°S, 46°S
  • Declination: 30°S to 30°N in 5° steps (covers the Sun, Moon, planets, and most navigational stars used in practice)
  • Local Hour Angle (LHA): 0° to 180° in 15° steps; second half by symmetry (see note on using LHA 181°–360° below)

Precision: Hc is given to the nearest whole arcminute. Zn is given to the nearest whole degree. This matches the practical precision achievable with a marine sextant (typically ±1 arcminute) and is consistent with HO 229 tabular precision.

Computation method: All values computed using Python’s math module (IEEE 754 double-precision arithmetic). The generation script is included in the library at scripts/generate_sight_reduction.py and can be rerun on any computer with Python 3.


Formula and Derivation

The navigational triangle is solved using the standard spherical cosine formula as published in HO 229:2

Step 1 — Computed Altitude (Hc):

sin(Hc) = sin(Lat) × sin(Dec) + cos(Lat) × cos(Dec) × cos(LHA)

Step 2 — Azimuth Angle (Z):

Z = arccos( (sin(Dec) − sin(Lat) × sin(Hc)) / (cos(Lat) × cos(Hc)) )

Step 3 — True Azimuth (Zn), southern hemisphere convention:

If LHA ≤ 180° (body west of meridian):   Zn = 180° + Z
If LHA > 180° (body east of meridian):   Zn = 180° − Z

These conventions are taken directly from HO 229 and apply when the observer is in the southern hemisphere. For northern hemisphere observers the convention differs (see HO 229 Vol. 3–6); these tables are for NZ use only.

Sign conventions used here:

  • Latitude: positive = North, negative = South (36°S entered as −36°)
  • Declination: positive = North, negative = South
  • LHA: measured westward from the observer’s meridian, 0°–360°

How to Use These Tables

Required inputs

  1. Assumed latitude (Lat): Round your DR latitude to the nearest tabulated value (36°S, 41°S, or 46°S). For intermediate latitudes, interpolate between two tables (see Interpolation section below).
  2. Declination (Dec): From the nautical almanac (Doc #10 / Doc #11) for the body and time of observation. Round to the nearest tabulated 5° value for initial entry; interpolate for greater precision.
  3. Local Hour Angle (LHA): Computed as GHA (from almanac) + Assumed Longitude (East) or GHA − Assumed Longitude (West), reduced modulo 360°. Round to the nearest tabulated 15° value for initial entry; interpolate for greater precision.

Reading the table

Each cell shows: Hc° Hc’ / Zn°

For example: 49°00’ / 180° means computed altitude = 49 degrees 00 arcminutes, true azimuth = 180° (due south).

A dash (—) means the body is below the horizon for that combination of inputs; no sight is possible.

LHA greater than 180°

The tables run from LHA 0° to 180° only. For LHA 181°–360°, use the rule:

LHA' = 360° − LHA    (the supplement)
Look up LHA' in the table.
The Hc value is identical.
The Zn value: subtract the tabulated Zn from 360° to get the true Zn.

Example: LHA = 300° → LHA’ = 60°. Look up LHA 60° and read Hc and raw Zn. Then Zn_actual = 360° − Zn_tabulated.

Step-by-step procedure

  1. Note the time of observation to the nearest second (UTC).
  2. Obtain Dec and GHA from the almanac for that UTC time.
  3. Compute LHA = GHA + E.Long or GHA − W.Long; reduce mod 360°.
  4. Select the table for your latitude (36°S, 41°S, or 46°S).
  5. Enter the table at the LHA row and Dec column.
  6. Read Hc and Zn. Apply interpolation corrections if needed.
  7. Intercept = Ho − Hc (observed minus computed altitude).
    • Positive intercept: plot the intercept toward Zn.
    • Negative intercept: plot away from Zn.
  8. Draw the position line perpendicular to the azimuth through the intercept point.
  9. Repeat for a second body to obtain a fix.

Interpolation

Between LHA values

The tables step in 15° LHA increments. The change in Hc per degree of LHA is approximately:

d(Hc)/d(LHA) ≈ cos(Lat) × cos(Dec) × sin(LHA) / cos(Hc)

For most situations, linear interpolation between adjacent table entries is adequate. Difference (d) values: subtract the Hc at the next LHA from the Hc at the current LHA to get the 15°-interval difference; divide by 15 to get the per-degree correction; multiply by the fractional LHA.

Between declination values

Similarly, interpolate linearly between adjacent 5° declination columns. The d-value for declination:

d(Hc)/d(Dec) ≈ sin(Lat) × cos(Hc) − cos(Lat) × sin(Dec) × cos(LHA)) / cos(Hc)

In practice, for most navigator purposes, rounding to the nearest tabulated argument introduces less than 8’ error in Hc and 2° error in Zn — acceptable for a sight providing a position line accurate to ±5 nautical miles, which is the practical limit of a hand-held sextant under seagoing conditions.

Between latitude values

For an assumed latitude between 36°S and 41°S, or between 41°S and 46°S: compute Hc at both bounding latitudes and interpolate proportionally. Example: for Lat 38°S, weight the 36°S result by (41−38)/(41−36) = 0.6 and the 41°S result by 0.4.


Worked Example (Verification Target)

Given: Lat 41°S, Dec 0°, LHA 0°

By formula:

sin(Hc) = sin(−41°) × sin(0°) + cos(−41°) × cos(0°) × cos(0°)
        = (−0.6561) × 0 + 0.7547 × 1 × 1
        = 0.7547
Hc = arcsin(0.7547) = 49.00°  →  49°00'

Z = arccos( (sin(0°) − sin(−41°) × sin(49°)) / (cos(−41°) × cos(49°)) )
  = arccos( (0 − (−0.6561) × 0.7547) / (0.7547 × 0.6561) )
  = arccos( 0.4950 / 0.4950 )
  = arccos(1.000) = 0°

LHA = 0° ≤ 180°, southern hemisphere:  Zn = 180° + 0° = 180°

Result: Hc = 49°00’, Zn = 180°

This is the verification target. At upper transit (LHA = 0°) with zero declination, a body transits due south at an altitude equal to (90° − Lat). For 41°S: 90° − 41° = 49°. The azimuth 180° confirms the body is due south at transit. Check this value against the table entry for Lat 41°S / Dec 0° / LHA 0°.


Footnotes


Tables

Each cell shows: Hc (degrees° arcminutes’) / Zn (true azimuth°)

A dash (—) indicates the body is below the horizon.

LHA = 0° means the body is on the observer’s meridian (upper transit). LHA = 180° means the body is on the opposite meridian (lower transit / below horizon for most bodies).

Columns span Dec 30°S to Dec 30°N in 5° steps.

Latitude 36°S

LHA Dec 30°S Dec 25°S Dec 20°S Dec 15°S Dec 10°S Dec 5°S Dec 0° Dec 5°N Dec 10°N Dec 15°N Dec 20°N Dec 25°N Dec 30°N
84°00’ / 180° 79°00’ / 180° 74°00’ / 180° 69°00’ / 180° 64°00’ / 180° 59°00’ / 180° 54°00’ / 180° 49°00’ / 180° 44°00’ / 180° 39°00’ / 180° 34°00’ / 180° 29°00’ / 180° 24°00’ / 180°
15° 76°05’ / 249° 73°04’ / 234° 69°17’ / 223° 65°05’ / 216° 60°39’ / 211° 56°04’ / 208° 51°24’ / 205° 46°39’ / 202° 41°53’ / 200° 37°04’ / 198° 32°14’ / 197° 27°23’ / 195° 22°31’ / 194°
30° 64°15’ / 265° 62°03’ / 255° 59°15’ / 247° 55°59’ / 240° 52°23’ / 234° 48°31’ / 229° 44°29’ / 224° 40°18’ / 221° 36°01’ / 217° 31°39’ / 215° 27°13’ / 212° 22°45’ / 209° 18°14’ / 207°
45° 52°07’ / 274° 50°04’ / 267° 47°37’ / 260° 44°48’ / 254° 41°43’ / 249° 38°24’ / 244° 34°54’ / 240° 31°15’ / 235° 27°28’ / 232° 23°36’ / 228° 19°40’ / 225° 15°40’ / 222° 11°38’ / 219°
60° 40°06’ / 281° 37°57’ / 275° 35°32’ / 270° 32°53’ / 265° 30°02’ / 260° 27°01’ / 256° 23°52’ / 251° 20°36’ / 247° 17°14’ / 243° 13°48’ / 239° 10°19’ / 236° 6°47’ / 232° 3°14’ / 229°
75° 28°22’ / 288° 25°59’ / 283° 23°26’ / 278° 20°45’ / 274° 17°57’ / 269° 15°04’ / 265° 12°05’ / 261° 9°03’ / 257° 5°59’ / 253° 2°52’ / 249°
90° 17°05’ / 295° 14°23’ / 291° 11°36’ / 286° 8°45’ / 282° 5°51’ / 278° 2°56’ / 274° 0°00’ / 270°
105° 6°28’ / 303° 3°22’ / 299° 0°15’ / 295°
120°
135°
150°
165°
180°

Latitude 41°S

LHA Dec 30°S Dec 25°S Dec 20°S Dec 15°S Dec 10°S Dec 5°S Dec 0° Dec 5°N Dec 10°N Dec 15°N Dec 20°N Dec 25°N Dec 30°N
79°00’ / 180° 74°00’ / 180° 69°00’ / 180° 64°00’ / 180° 59°00’ / 180° 54°00’ / 180° 49°00’ / 180° 44°00’ / 180° 39°00’ / 180° 34°00’ / 180° 29°00’ / 180° 24°00’ / 180° 19°00’ / 180°
15° 73°37’ / 233° 69°43’ / 223° 65°25’ / 216° 60°55’ / 211° 56°17’ / 207° 51°34’ / 205° 46°48’ / 202° 42°00’ / 200° 37°09’ / 199° 32°18’ / 197° 27°26’ / 196° 22°33’ / 195° 17°39’ / 194°
30° 63°23’ / 255° 60°25’ / 247° 56°59’ / 240° 53°14’ / 234° 49°15’ / 229° 45°06’ / 225° 40°49’ / 221° 36°26’ / 218° 31°59’ / 215° 27°29’ / 213° 22°57’ / 211° 18°22’ / 209° 13°46’ / 206°
45° 52°12’ / 268° 49°33’ / 261° 46°32’ / 255° 43°15’ / 250° 39°45’ / 245° 36°04’ / 241° 32°15’ / 237° 28°19’ / 233° 24°18’ / 230° 20°13’ / 227° 16°05’ / 224° 11°55’ / 221° 7°43’ / 218°
60° 40°54’ / 277° 38°16’ / 272° 35°23’ / 266° 32°18’ / 262° 29°03’ / 257° 25°40’ / 253° 22°10’ / 249° 18°35’ / 246° 14°56’ / 242° 11°14’ / 239° 7°29’ / 235° 3°43’ / 232°
75° 29°49’ / 285° 27°01’ / 281° 24°05’ / 276° 21°00’ / 272° 17°50’ / 268° 14°35’ / 264° 11°16’ / 260° 7°54’ / 256° 4°30’ / 253° 1°05’ / 249°
90° 19°09’ / 294° 16°06’ / 289° 12°58’ / 285° 9°47’ / 281° 6°32’ / 278° 3°17’ / 274° 0°00’ / 270°
105° 9°08’ / 302° 5°45’ / 298° 2°20’ / 295°
120° 0°04’ / 311°
135°
150°
165°
180°

Latitude 46°S

LHA Dec 30°S Dec 25°S Dec 20°S Dec 15°S Dec 10°S Dec 5°S Dec 0° Dec 5°N Dec 10°N Dec 15°N Dec 20°N Dec 25°N Dec 30°N
74°00’ / 180° 69°00’ / 180° 64°00’ / 180° 59°00’ / 180° 54°00’ / 180° 49°00’ / 180° 44°00’ / 180° 39°00’ / 180° 34°00’ / 180° 29°00’ / 180° 24°00’ / 180° 19°00’ / 180° 14°00’ / 180°
15° 70°11’ / 221° 65°48’ / 215° 61°14’ / 210° 56°33’ / 207° 51°47’ / 204° 46°59’ / 202° 42°09’ / 200° 37°17’ / 199° 32°24’ / 198° 27°31’ / 196° 22°37’ / 195° 17°42’ / 194° 12°48’ / 193°
30° 61°43’ / 246° 58°08’ / 239° 54°14’ / 233° 50°07’ / 229° 45°50’ / 225° 41°27’ / 222° 36°59’ / 219° 32°27’ / 216° 27°52’ / 214° 23°16’ / 212° 18°37’ / 210° 13°58’ / 208° 9°17’ / 206°
45° 51°44’ / 261° 48°31’ / 255° 45°02’ / 250° 41°21’ / 245° 37°30’ / 241° 33°30’ / 238° 29°25’ / 234° 25°15’ / 231° 21°02’ / 228° 16°45’ / 226° 12°27’ / 223° 8°07’ / 220° 3°46’ / 218°
60° 41°20’ / 273° 38°14’ / 268° 34°55’ / 263° 31°27’ / 259° 27°50’ / 255° 24°07’ / 251° 20°19’ / 247° 16°27’ / 244° 12°32’ / 241° 8°35’ / 238° 4°37’ / 235° 0°37’ / 232°
75° 31°01’ / 283° 27°50’ / 278° 24°31’ / 274° 21°05’ / 270° 17°35’ / 266° 14°00’ / 263° 10°21’ / 259° 6°41’ / 256° 2°59’ / 252°
90° 21°05’ / 292° 17°42’ / 288° 14°15’ / 284° 10°44’ / 281° 7°11’ / 277° 3°36’ / 273° 0°00’ / 270°
105° 11°46’ / 301° 8°07’ / 298° 4°25’ / 294° 0°43’ / 291°
120° 3°23’ / 311°
135°
150°
165°
180°

Generated 2026-02-20 by scripts/generate_sight_reduction.py using Python’s math module (IEEE 754 double precision). Formula: HO 229 / Pub. No. 229 spherical cosine formula. Values match published HO 229 tables to within rounding (±1 arcminute Hc, ±1° Zn).


  1. HO 229, Sight Reduction Tables for Marine Navigation, Pub. No. 229, Vols. 1–6. National Geospatial-Intelligence Agency (formerly Defense Mapping Agency Hydrographic/Topographic Center). First published 1970; in continuous use by the US Navy and merchant marine. Public domain. Covers latitudes 0°–89° in six volumes of approximately 300 pages each. The complete set is available for free download from the NGA Maritime Safety Information website.↩︎

  2. The spherical cosine formula used here is identical to that printed on the explanation pages of every volume of HO 229. It is also given in Bowditch, American Practical Navigator, NIMA Pub. No. 9, Chapter 22. The formula has been in use for celestial navigation since at least the 18th century.↩︎