Star finding

A customer recently asked whether there is a spreadsheet in this suite that would show which celestial objects are available for observation at a given time from a given location.  While the short answer to this query is “no”, this capability does exist in the combination of an almanac spreadsheet with intercept.xls.  If the computed altitude Hc is positive, then the object is above the horizon.

That said, at least for stars one can use the what_star.xls spreadsheet for that purpose.  You enter the UT and your location and then scroll to the right to column AI.  If the computed altitude (Hc) is positive, then that star (star names are copied into column AF) is above the horizon.  Column AH has the star’s azimuth.

In the following example Acrux is above the horizon, whereas Acamar and Achernar are not.  In this manner you can scroll down in the spreadsheet to inspect all 57 main navigation stars for availability.


(first published on April 8, 2012)

T-Plotter Blank

The “Blank” version of the T-Plotter facilitates the plotting of LOPs on charts of any scale.

Distances are marked directly on the plotter with a dry-erase marker (not included).  For more information click here and view the demo video here.

(first published on March 25, 2012)

T-Plotter Basic

According to the intercept method of Marcq St. Hilaire a celestial line of position (LOP) is plotted on a chart as the line perpendicular to the azimuth line at the intercept distance toward or away the geographical position (GP) from the assumed position (AP).  This can be accomplished with the T-Plotter®- a device consisting of two mutually perpendicular arms: the azimuth arm that is lined along the azimuth line, and the plotting arm along which you can plot the LOP.  The use of the T-Plotter reduces the clutter on the chart by eliminating the need to also plot the intermediate (and usually not needed) azimuth line.

The T-Plotter Basic model is imprinted with a grid that fits the VP-OS (Universal) Plotting Sheets, on which 20 nautical miles are represented by 1 inch.  Click here to view a demonstration video of how T-Plotter Basic can be used to plot celestial LOPs. For additional specification and ordering information, visit:

(first published on January 28, 2012)

Set and drift

The Sailings calculations determine the course for a vessel to follow in order to get from the point of Departure to the Destination.  This is course with respect to ground which can differ from the course to steer if the vessel is deflected sideways by currents and/or winds.  This leads to a class of “set and drift” problems described, for example, in the Dead Reckoning chapter in Bowditch.  These problems are often solved graphically by plotting procedures.  As for the equivalent numerical solution we can do the following.

The essence of these problems is the relationship between three vectors in which the ground speed is the vessel’s speed relative to the water plus the set and drift vector.  The relevant geometry occurs in 2-D, so this relationship translates into two equations for the vectors’ components.  Therefore, given four pieces of information on input we can solve for the remaining two.

If these two numbers both pertain to the same unknown vector (e.g. its magnitude and direction), then two Cartesian-component equations provide the solution to the problem by direct addition or subtraction of the other two (fully specified) vectors.  This is the case for spreadsheets:

Calculation of the ground speed from the current’s speed and direction (i.e. set and drift) and the vessel speed relative to the water.

Calculation of the required vessel speed and course from the set and drift and the desired ground speed and track.

The situation is a little bit more complicated for:

Given the set and drift, the vessel’s speed and the intended direction relative to ground, this spreadsheet calculates the required vessel course and the resulting ground speed.  If the vessel’s speed is too small to counteract the current, an error message is displayed in row 4.

in which the two unknowns are distributed between two partially known vectors.  This problem can be solved in the following steps encoded into the spreadsheet:
1) Decompose the current’s vector into components parallel and perpendicular to the prescribed “Sailings” (ground) direction.
2) Reverse the sign of the perpendicular component; this becomes the perpendicular component of the vessel’s speed with respect to water.  That way the deflecting effect of the set and drift is neutralized.
3) Use the Pythagorean theorem to determine the component of the vessel’s speed (w.r.t. water) parallel to the ground direction.  The known vessel’s speed w.r.t water is the hypotenuse and the result of step 2) is one of the sides.
4) Convert the vessel’s speed’s now known two components (along with the ground direction) into course to steer.
5) Add the two parallel speeds’ components in order to obtain the ground speed.  If this problem has two mathematically good solutions, this picks the “faster” one.


This problem does not always have a solution.  If the vessel’s speed w.r.t. water is less than the current’s perpendicular component, the vessel is not fast enough to compensate for the deflection off course.  If the current’s parallel component is negative (e.g. a strong headwind in case of an aircraft) and larger in absolute value than the parallel component of the vessel’s speed w.r.t. water, then the vessel is not fast enough to progress toward its destination.  In either case, the spreadsheet zeroes out the output and displays an error message.

(first published on November 11, 2011)

Almanac data in 2012

Comparisons with the newly published Nautical Almanac show that our spreadsheets are good for 2012 without the need for any updates.

Mars data for December 31, 2012, UT 23h 00m 00s:




(first published on September 24, 2011)

Two-body fix (Santa Barbara, 16 July 2011)

A recent trip to Santa Barbara, California, presented me with an opportunity to do some sights and calculations. In the following example I took a series of Sun sights in the morning and a single sight in the afternoon.  The four morning sights were averaged to produce a single effective data point, whose LOP was then crossed with the LOP from the afternoon sight to obtain a fix.

Observation point:
Google Earth coordinates: Santa Barbara Sailing Club beach
N    34º 24.18′    i.e.    34.403
W 119º 41.64′    i.e. -119.694

These coordinates were used as the “assumed position” (AP) in the subsequent calculations of intercepts and azimuths.

Sun semidiameter (SD) = 15.7′

Sextant: Davis Mark 15

16 July 2011 (Sun: morning):  T=25 ºC,  P=1011 mb,  Index Correction=+8.0′,  Height of eye=6 ft
UT               Hs               Ho               GHA            Declination   Intercept    Azimuth
17:42:30      55° 48.2′     56° 08.9′      84° 06.4′      N 21° 19.9′       0.4A         103.3
17:45:20      56° 23.4′     56° 44.1′      84° 48.9′      N 21° 19.8′       0.8T         103.9
17:47:50      56° 51.6′     57° 12.3′      85° 26.4′      N 21° 19.8′       1.0A         104.4
17:50:30      57° 22.4′     57° 43.1′      86° 06.4′      N 21° 19.8′       2.1A         105.0

The spreadsheet average2.xls results in a simple average of these four observed altitudes:


that is:
UT               Hs               Ho               GHA            Declination   Intercept    Azimuth
17:46:32       —               56° 57.1′      85° 06.9′      N 21° 19.8′       0.6A         104.1

The single afternoon sight was (this time the sextant’s mirrors were adjusted to eliminate index error):
16 July 2011 (Sun: afternoon):  T=26 ºC,  P=1010 mb,  Index Correction=0.0′,  Height of eye=6 ft
UT               Hs               Ho               GHA            Declination   Intercept    Azimuth
21:18:20      69° 00.6′     69° 13.6′     138° 03.7′     N 21° 18.4′       1.6T          235.8

The two LOP intersections can be computed either with spreadsheet lops.xls or two_body_fix.xls.


Solution #1 is relevant in our case:

N    34º 22.8′
W 119º 42.8′

This fix is only 1.7 nm bearing 215 from the Google Earth coordinates, as seen both from:


and a Google Earth measurement:

Overall I think I can be reasonably happy with these results and the intercepts I got. Considering the difficulties I had with the index error determination I was in fact a bit worried before I started the calculations. The error of fix and the standard deviation of intercepts are interestingly similar at about 2 nm. Using this value as the “Scatter” parameter in the weighted least-squares fitting procedure (average2.xls: fitted, not precomputed slope), all weights came out equal, so this procedure resulted in calculating the simple average of UT’s and Ho’s.

(first published on September 1, 2011)

Noon curve: Santa Barbara (17 July 2011)

A recent trip to Santa Barbara, California, presented me with an opportunity to do some sights and calculations. In the following example I took a series of Sun sights not long before the Local Apparent Noon (LAN). I was unable to stay long enough to observe the actual meridian upper transit of the Sun but the data were still suitable for a noon-curve construction by extrapolation and thus establishing the latitude and longitude of my location with decent enough accuracy.

Observation point:
Google Earth coordinates: Santa Barbara Sailing Club beach
N    34º 24.18′    i.e.    34.403
W 119º 41.64′    i.e. -119.694

These coordinates were used as the “assumed position” (AP) in the subsequent calculations of intercepts and azimuths.

Sun semidiameter (SD) = 15.7′

Sextant: Davis Mark 15

17 July 2011 (Sun: just before LAN):  T=28 ºC,  P=1018 mb,  Index Correction=+8.0′,  Height of eye=10 ft
UT             Hs              Ho             GHA            Declination   Intercept    Azimuth
19:33:30    74º 38.4′    74º 58.8′    111º 50.0′     N 21º 09.0′     4.0A           150.4
19:35:30    74º 55.4     75º 15.8′    112º 20.0′     N 21º 09.0′    1.1T            152.0
19:37:55    75º 09.4′    75º 29.8′    112º 56.2′     N 21º 09.0′    1.5T            154.1
19:40:30    75º 16.2′    75º 36.6′    113º 35.0′     N 21º 09.0′    5.1A            156.3
19:43:00    75º 34.0′    75º 54.4′    114º 12.5′     N 21º 08.9′    0.9T            158.5
19:46:00    75º 45.0′    76º 05.4′    114º 57.5′     N 21º 08.9′    0.8A            161.3
19:49:50    75º 58.6′    76º 19.0′    115º 55.0′     N 21º 08.9′    1.0A            164.9
19:53:30    76º 08.0′    76º 28.4′    116º 50.0′     N 21º 08.9′    2.1A            168.5
19:57:30    76º 14.8′    76º 35.2′    117º 50.0′     N 21º 08.8′    3.4A            172.5

Observed altitudes (Ho) were obtained from the recorded sextant altitudes (Hs) with alt_corr.xls; see the first data point as an example (these were lower-limb observations, hence the SD correction is positive).



The Sun GHA, Declination, SD, and (later) Equation-of-Time values came from sun.xls. The intercept and azimuth were calculated with intercept.xls. The intercept distances are small as expected, since they were calculated using the known position as the AP. The fact that the intercepts are not exactly zero is a measure of the quality of the instrument and the skill of the person using it. The azimuths approach the meridian passage value of 180º but stop just short of it due to reasons explained above.

In the following image we can indeed see a rather convincing arc that would peak shortly after 20h UT. This plot has the Ho’s on the y-axis.


Before the actual fitting these Ho’s are further adjusted to account for the Sun’s hourly declination change of -0.4′. In addition, the noon_motion.xls spreadsheet is also capable of addressing the construction of this curve on a moving vessel; in this case the speed is zero since I made the observations from a fixed location.



The results are computed by noon_motion.xls to be:

N    34º 29.1′
W 119º 24.5′

One generally expects getting a very accurate latitude value and not-so-great longitude value from meridian-transit observations. In the past I have observed that the parabolic fitting employed by these spreadsheets works very well if the data actually straddle the culmination point. This computed result is not as good but it is still reasonable, especially since it came from a data set that stopped short of LAN and hence had to be extrapolated.

(first published on July 31, 2011)

Summer solstice 2011

Today on June 21 we mark the summer solstice in the northern hemisphere.  This is the day when the Sun reaches its maximum northern declination (Tropic of Cancer).  Given the 0.1′ precision displayed for celestial navigation purposes, this declination appears constant for an extended period of time around the exact moment of the solstice.  In order to pinpoint that special moment down to a minute (or even a second), we would have to display more decimal places of the Sun’s declination in order to spot the instant when it reaches its maximum.


Alternatively, however, we can look further down the sun.xls spreadsheet and look at the intermediate result of the Sun’s right ascension (“Alpha”).  The input UT in row 2 has been adjusted so that Alpha = 90º (or 6 hours, in astronomers’ lingo).  This means that the Sun has completed exactly one quarter of its annual roundtrip starting at Alpha = 0 (the vernal equinox).  This places the moment of the 2011 northern summer solstice on June 21 at 17h 16m Universal Time (10h 16m U.S. Pacific Daylight Saving Time).


(first published on June 21, 2011)

Greenwich Hour Angle of stars

A “sight” in celestial navigation consists of measuring the body’s altitude with a sextant and marking the time of that observation using a chronometer.  The celestial “line of position” (LOP), along which the observer is located, is a circle whose radius (called “zenith distance”) is deduced from the sextant altitude measurement.  The instant of the observation, expressed in Universal Time (UT), specifies the body’s “geographical position” (GP) which is the center of this LOP.  A crossing of this LOP with at least one other such LOP results in a celestial fix on the observer’s position.

The GP is a set of two numbers: the declination (counterpart to latitude), and the Greenwich Hour Angle (GHA) which is analogous to longitude.  The declination is an angle ranging from -90º (South Pole), through 0º (Equator) to +90º (North Pole).  The GHA increases westward starting from 0º at the Prime (Greenwich) Meridian and ending at 360º upon reaching the Prime Meridian again after one full round-trip around the Earth.  The GP coordinates for the main navigation bodies are precomputed and published in almanacs for future use.

Stars differ from the bodies of the Solar System in that they have almost negligible proper motion relative to the Earth.  As a result, their declinations are nearly constant and their GHA evolution with UT is almost entirely due to Earth’s rotation alone.  In other words, the stars are practically “fixed” to their very nearly constant positions on the celestial sphere.  This allows almanac publishers to save a lot of space using the following scheme.

Instead of tabulating the GHA of each navigation star in some increments of UT (like it is done for Sun, Moon, and planets), this value is computed by adding two numbers:

GHA_Star = GHA_Aries + SHA_Star

“Aries” (i.e. the point of vernal equinox) represents the chosen “Prime Meridian” on the celestial sphere and SHA (Sidereal Hour Angle) is the star’s constant westward position relative to Aries.  Since SHA does not change with UT, almanacs can be made much more compact by tabulating each star’s SHA just once and placing all UT dependence into the single column of GHA_Aries.  This arrangement is also used in our aries_stars.xls spreadsheet, as shown in the example below (all numbers are in degrees decimal):

For UT of January 1, 2012, 12h 00m 00s, we have GHA_Aries (280.56).

To get GHA_Acamar we add its SHA (315.31) to GHA_Aries (280.56), resulting in 595.87.  From this value we subtract 360.00 to bring the GHA to its conventional range and obtain GHA_Acamar (235.87).

To get GHA_Achernar we add its SHA (335.45) to the same GHA_Aries as above (280.56), resulting in 616.01.  From this value we subtract 360.00 to bring the GHA to its conventional range and obtain GHA_Achernar (256.01).



(first published on June 18, 2011)