Author Topic: (UPDATED) Programmable calculator sight reduction  (Read 931 times)

Offline HenryC

  • Captain
  • *****
  • Posts: 475
  • Karma: 34
(UPDATED) Programmable calculator sight reduction
« on: August 28, 2015, 03:41:08 PM »

This program was written for the Casio fx-7000G pocket programmable graphics calculator.

This handheld was (as far as I know) the first graphing calculator, and came out in 1985. Mine is still working just fine, even though modern machines greatly exceed it in performance and capability and are available at much less cost. Although this routine is written in an ancient Casio dialect, it should be easy enough to follow so you can translate it into whatever programmable pocket calculator you have.

This program performs the calculation at the heart of the celestial navigation sight reduction. When prompted, you input the corrected SEXtant altitude, the Greewich Hour Angle and DEClination of the celestial body, and your assumed LATitude and LONgitude. If the Local Hour Angle exceeds 360 degrees or is less than 0, the program automatically corrects it.

The program output values, I and Z, are the Intercept and Azimuth, respectively, used to construct the line of position for that body from the Assumed Latitude and Longitude..

The algorithm used is from page 279 of the Nautical Almanac. O,G,D,T and N are user defined input variables. L,S,C,X,Y,H,and A are intermediate variables used in calculation. I and Z are output variables. “a >” signifies “output the value or memory location ‘a’ to the screen”. “a => b” signifies ‘place the value ‘a’ in memory location ‘b’. Text in quotes is written to the screen. A question mark is a prompt for user input.

(Non-executable) comments are marked by '**'

**Input Data Prompts
“SEX”? => O
“GHA”? => G
“DEC”? => D
“LAT”? => T
“LON”? => N

**Calculate the Local Hour Angle
G+N => L

**Correct the LHA
If L<0 then (L+360) => L
If L>360 then (L-360) => L

**Calculate altitude
sinD => S
cosD x cosL => C,
S x sinT => X
C x cosT => Y
sin-1(X+Y) => H

**Calculate azimuth
S x cosT => X
C x sinT => Y
(X-Y)/cosH => X
If X>1 then 1 => X
If X<-1 then -1 => X
cos-1(X) => A
(360-A) => Z
If L>180 then A => Z

**Display intercept and azimuth
“INT”
(O-H) x 60 => I >
“AZM”
Z >

Remember, you must perform this calculation for every body you observe, and the intersection of the lines of position will be your position on the chart.

Sample Problem:

At the Assumed Position (AP)of 26 degrees N, 80 degrees W, a corrected sextant altitude for the Sun is measured of 20 degrees, 39 minutes.
The Sun’s Greenwich Hour Angle is 28 degrees, 26 minutes. (from the Almanac). The Sun’s Declination is 21 degrees 7 minutes S. (from the Almanac). These values are entered into the calculator as they are prompted for.

SEX? 20d 39′
GHA? 28d 26′
DEC? -21d 07′
LAT? 26d
LON? -80d

The calculator displays the following values for the Intercept and Azimuth.

INT -38.9 (Nautical Miles)
AZM 128.3 (Degrees)

The line of position (LOP) is then plotted on the chart as follows: Draw an azimuth of AZM from the AP (LAT,LON) on the chart. Measure off the intercept distance from the AP INT nautical miles towards the celestial body (INT is +), or away (INT is -) from it. The LOP is then drawn through that point at right angles to the AZM line. The LOP represents a tiny piece of a very large circle drawn on the Earth’s surface from which the sextant altitude of the celestial body would be SEX. The program calculates the sextant altitude as it would be if you were at the AP, and then compares it to what you actually observed from your true, but unknown, position. The difference is the Intercept.                                                                                         
« Last Edit: September 04, 2015, 04:32:05 PM by HenryC »