Terrestrial Geodesic Distance(2) for the HP-41
Overview
0°) Method
1°)
With Andoyer's formula of
order 2
2°)
With Andoyer's formula of order
3
a) Ellipsoid
of Revolution
b) Triaxial Ellipsoid ( with
parametric coordinates )
c) Triaxial Ellipsoid ( without parametric coordinates
)
3°) Andoyer's Formula of order 2 + a
few terms of order 3
a) Ellipsoid of Revolution
b) Triaxial Ellipsoid ( without parametric coordinates )
c) Triaxial Ellipsoid ( with parametric coordinates
)
4°) With Vincenty's Formula
5°)
Minimizing the Sum
of 2 Distances
6°) Other Formulae
for the Great Elliptic Distance
a) Formula of order 1 + Andoyer's
formula of order 2
b) Formula of order
1 + Andoyer's formula of order 3
c) Formula of order 2 + Andoyer's formula
of order 3
7°) Geodesic + Great Elliptic Distances
( Ellipsoid of Revolution )
8°) Geodesic + Great Elliptic Distances
( Triaxial Ellipsoid + Ellipsoid of Revolution )
9°) Best Program ?
Latest Update: §8°) & §9°)
-These programs
evaluate the geodesic distance
between 2 points M(L,B)
& N(L',B') on a triaxial ellipsoid
model of the Earth.
-The semi-axes are:
a = 6378.172 km
b = 6378.102 km and the longitude of the equatorial major-axis = 14°92911 West
c = 6356.752314 km
-So, the mean radius of the equator and the flattening correspond to WGS84.
0°) Method
-First, the distances of the 2 points M & N are computed on the great ellipses passing by M & N:
-For the triaxial model, it gives, say Δ
-For
the WGS84 ellipsoid, it gives Δ'
-Then, the geodesic distance d is calculated on the WGS84 ellipsoid of revolution.
-Since the flattening of the Earth equator is very small, the geodesic distance D on the triaxial ellipsoid is very well approximated by the simple relation:
D ~ Δ + ( d - Δ' )
-In other words, the part of the formula
giving the
great elliptic arc distance on
the ellipsoid of revolution in the
WGS84 geodesic distance
is replaced
by the great elliptic arc distance
on the triaxial ellipsoid.
1°) With Andoyer's Formula of order 2
"TGD" determines the elements of the great ellipse (E) passing by M & N as follows:
With OM / OM = ( x , y , z ) & ON / ON = ( x' , y' ,z' ) ( the unit vectors defined by OM & ON ) we have
OP = ( Sin W ) / ( A2 + B2 + C2 )1/2 for a point P on the ellipsoid and with µ = ( OM , OP )
A = [ x Sin ( W - µ ) + x' Sin µ
] / a
B = [ y Sin ( W - µ
) + y' Sin µ ] / b
W = the angle ( OM , ON )
C = [ z Sin ( W - µ
) + z' Sin µ ] / c
N P
/ /
/ /
/ / µ
O//-----------------------------M
>>> The value of µ for the axes of the great ellipse (E) is found by equating to zero the derivative of OP with respect to µ
-After some calculations, it yields: ( Sin 2µ ) / ( Cos 2µ ) = P / Q with
P = -2 [ ( x Sin W ) ( x Cos W - x' ) /
a2 + ( y Sin W ) (
y Cos W - y' ) / b2 + ( z Sin
W ) ( z Cos W - z' ) / c2 ]
Q = [ x2
Sin2 W - ( x Cos
W - x' )2 ] / a2
+ [ y2 Sin2
W - ( y Cos W - y' )2 ] / b2
+ [ z2 Sin2 W
- ( z Cos W - z' )2 ] / c2
A2 + B2 + C2 = T Sin2 ( W - µ ) + S Sin2 µ + 2 U Sin µ Sin ( W - µ )
where S = x'2 / a2 + y'2 / b2 + z'2 / c2 , T = x2 / a2 + y2 / b2 + z2 / c2 , U = xx' / a2 + yy' / b2 + zz' / c2
and P = 2 U - 2 T Cos W , Q = T Sin W + ( 2 U Cos W - S - T Cos2 W ) / Sin W
>>> But we can save a few bytes if we measure the angle µ from the bisector of the angle ( OM , ON )
The formulae become: A2 + B2 + C2 = T Sin2 ( W/2 - µ ) + S Sin2 ( W/2 + µ ) + 2 U Sin ( W/2 - µ ) Sin ( W/2 + µ )
and Tan 2µ = [ Sin W ( T - S ) ] / [ Cos W ( T + S ) - 2.U ]
>>> Then, the geodesic distances - on the great ellipses corresponding to WGS84 & the triaxial ellipsoid - between M & N ( say T' & T ) are computed by Andoyer's formula on order 2.
-We can transform the usual formulas employing parametric latitudes into formulas employing geocentric latitudes ( cf page 91 of reference [4] ). It yields:
D/a = W + (f/2) (-W+(Cos2F)(SinW)) +(f2 /4) [W/4+(SinW)(CosW)/4-(Cos2 (2F))(SinW)(CosW)/2]
a = major axis of the great ellipse , f = eccentricity
2F = b1+b2 where b = geocentric "latitudes"
( formulas of order 2 give a good accuracy to compute great elliptic distance for the Earth )
-Finally, the geodesic distance d on the WGS84 ellipsoid is calculated by 2nd order Andoyer's formula
and the geodesic distance D on
the triaxial ellipsoid is approximated by
D ~ Δ
+ ( d - Δ' )
Andoyer's Formula of order 2:
S = sin2 G cos2 H + cos2 F sin2 H ; µ = Arcsin S1/2 ; R = ( S.(1-S) )1/2
we define A = ( sin2 G cos2 F )/S + ( sin2 F cos2 G )/( 1-S )
and B = ( sin2 G cos2 F )/S - ( sin2 F cos2 G )/( 1-S )
-The geodesic distance on the biaxial ellipsoid is then: d = 2a.µ ( 1 + eps )
where eps = (f/2) ( -A - 3B R/µ )
+ (f2/4) { { - ( µ/R + 6R/µ ).B + [ -15/4 + ( 2S - 1 ) ( µ/R + (15/4) R/µ ) ] A + 4 - ( 2S - 1 ) µ/R } A
- [ (15/2) ( 2S - 1 ).B R/µ - ( µ/R + 6R/µ ) ] B }
and f = flattening = 1/298.25722
And we also have:
d - Δ' = a (f2/4) µ [ (A2-A) ( 1 - µ Cot µ ) - B.(A-1) ( µ / Sin µ - (Sin µ) / µ ) ] where µ , A , B are computed with parametric latitudes
( here, µ = 2 Arcsin S1/2 )
-But with a formula of order 2, d - Δ' is computed by the same formula if µ , A , B are computed with geodetic latitudes !
Data Registers: R00 to R15: temp
Flags: /
Subroutines: /
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.929 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 STO 05 29 RCL 09 30 STO 06 31 RCL 10 32 STO 07 33 RCL 13 34 ST- 11 35 RCL 14 36 XEQ 01 37 XEQ 00 38 STO 04 39 RCL 01 40 ST/ 05 |
41
ST/ 08 42 RCL 02 43 ST+ 01 44 ST/ 06 45 ST/ 09 46 RCL 03 47 ST/ 07 48 ST/ 10 49 RCL 08 50 X^2 51 RCL 09 52 X^2 53 RCL 10 54 X^2 55 + 56 + 57 STO 13 58 RCL 05 59 X^2 60 RCL 06 61 X^2 62 RCL 07 63 X^2 64 + 65 + 66 STO 00 67 - 68 RCL 04 69 ACOS 70 STO 02 71 SIN 72 STO 15 73 * 74 RCL 08 75 XEQ 00 76 ST+ X 77 STO 09 78 RCL 00 79 RCL 13 80 + |
81
RCL 04 82 * 83 - 84 R-P 85 X<>Y 86 STO 08 87 2 88 ST/ 01 89 ST/ 11 90 / 91 STO 05 92 XEQ 02 93 STO 06 94 RCL 05 95 90 96 + 97 XEQ 02 98 STO 07 99 RCL 02 100 D-R 101 RCL 08 102 COS 103 STO 05 104 X^2 105 ST+ X 106 RCL 04 107 RCL 15 108 ST* 05 109 * 110 ST* Y 111 - 112 - 113 4 114 / 115 RCL 06 116 ST/ 15 117 RCL 07 118 ST- Y 119 ST+ X 120 / |
121 STO 07 122 * 123 RCL 05 124 - 125 + 126 RCL 07 127 * 128 + 129 ST* 15 130 RCL 14 131 ENTER 132 GTO 03 133 LBL 00 134 RCL 05 135 * 136 RCL 09 137 RCL 06 138 * 139 + 140 RCL 10 141 RCL 07 142 * 143 + 144 RTN 145 LBL 01 146 1 147 P-R 148 X<>Y 149 RCL 03 150 X^2 151 * 152 STO 10 153 RDN 154 P-R 155 RCL 01 156 X^2 157 * 158 STO Z 159 X^2 160 X<>Y |
161 RCL 02 162 X^2 163 * 164 STO 09 165 X^2 166 RCL 10 167 X^2 168 + 169 + 170 SQRT 171 ST/ 09 172 ST/ 10 173 / 174 STO 08 175 RTN 176 LBL 02 177 RCL 02 178 2 179 / 180 + 181 ENTER 182 SIN 183 ENTER 184 X^2 185 RCL 13 186 * 187 RCL 02 188 R^ 189 - 190 SIN 191 ST* Z 192 X^2 193 RCL 00 194 * 195 + 196 X<>Y 197 RCL 09 198 * 199 + 200 SQRT |
201 RTN 202 LBL 03 203 RCL 12 204 + 205 2 206 / 207 ST- Y 208 1 209 P-R 210 X^2 211 STO T 212 RDN 213 X^2 214 STO 08 215 SIGN 216 P-R 217 X^2 218 ST* 08 219 CLX 220 + 221 X^2 222 ST* T 223 - 224 RCL 11 225 COS 226 X^2 227 * 228 - 229 / 230 STO 02 231 RCL 08 232 1 233 LASTX 234 STO 08 235 - 236 / 237 ST- 02 238 + 239 X<> 08 240 SQRT |
241 ASIN 242 ST+ X 243 D-R 244 STO 00 245 LASTX 246 1 247 P-R 248 RDN 249 / 250 STO 07 251 R^ 252 * 253 RCL 08 254 ST* Y 255 - 256 RCL 07 257 ENTER 258 1/X 259 - 260 RCL 02 261 * 262 + 263 1 264 RCL 08 265 - 266 * 267 RCL 03 268 RCL 01 269 ST- Y 270 ST+ X 271 / 272 X^2 273 * 274 RCL 00 275 * 276 RCL 01 277 * 278 RCL 15 279 + 280 END |
( 357 bytes / SIZE
016 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGD" >>>>
D = 12138.65755
km
---Execution
time = 23s---
LASTX d = 12138.65875
km = great elliptic distance
= R10
-The exact result ( computed with Jacobi's method ) is D = 12138.657551942....
Notes:
-Longitudes are geodetic and positive East.-When line 98 is executed ( STO 07 ), the semi axes of the great ellipse = R15/R06 & R15/R07.
-With the example above, 6378.151662 km & 6368.318461 km
-If the points are not nearly antipodal, the precision is of the order of one meter.
-With (L,b,L',b') = (70°,0°,270°,10°) "TGD" gives a distance of 17554.6159 instead of 17554.6140 km
-Here are a few results about the error of the results:
If | L' - L | < 120° rms error ~ 6 cm
and max error ~
26 cm
If | L'
- L | < 140° rms error
~ 7 cm and
max error ~ 38 cm
If | L'
- L | < 150° rms error
~ 8 cm and
max error ~ 70 cm
If | L'
- L | < 160° rms error
~ 11 cm and max error
~ 168 cm
-A better accuracy may be obtained by the programs listed in "Geodesics
on a triaxial ellipsoid for
the HP-41" but the program above is
faster !
2°) With Andoyer's Formula of order 3
a) Ellipsoid
of Revolution
-Sodano's formula is a 3rd order formula in the flattening to calculate the geodesic distance on an ellipsoid of revolution ( WGS84 ) - cf references [2] & [3]
-I've rewritten the formula as follows, after multiplying both sides by (1-f)
Dist = a { µ + f [ p Sin µ - (m/2) ( µ + Sin µ Cos µ )
+ f2 [ p ((m-1)/2) µ2 Csc µ + m ((1-m)/2) µ2 Cot µ + ((m2-8.p2)/16) Sin µ Cos µ + (m2/16) µ - (m2/8) Sin µ Cos3 µ + (mp/2) Sin µ Cos2 µ ]
+ f3
[ µ2 Csc µ
(p/4) (-2+5m-3m2)
+ µ3 Csc µ Cot
µ (p/2) (1-4m+3m2)
- µ2 Cot µ
(m/4) (-2+5m-3m2) + µ3
(m/6) (-1+2m-m2)
+ µ3 Cot2
µ (m/2) (-1+3m-2m2)
+ Sinµ Cos µ (-8
p2 + m2 -
8 p2m - m3/2 )/16
+ µ (8 p2 + m2
- 8 p2m - m3/2
)/16
+ µ3 Csc2
µ (p2/2)
(1-m) + Sin µ Cos3 µ
(m2/16) (-2+m) + µ
Cos2 µ (m2/4)
(1-m) + Sin µ Cos2
µ (pm/2) (1+m) + p2m
Sin3 µ Cos µ
+ µ Cos µ (3pm/4)
(-1+m) + (pm2/2) Sin5
µ + Sin µ (p/2) (p2-m2)
+ (m3/12)
Sin3 µ Cos3
µ - (2p3/3)
Sin3 µ ]
}
where µ = 2 Arc Sin [ sin2 ((B'-B)/2) cos2 ((L'-L)/2) + cos2 ((B+B')/2) sin2 ((L'-L)/2) ]1/2 L , L' = longitudes & B , B' = parametric latitudes
Tan B = (1-f) Tan b where b = geodetic latitude
p = Sin B Sin B'
m =
1 - [ Cos B Cos B' Sin (L'-L) ]2
/ Sin2 µ
, a = 6378.137
km , b = 6356.752314
km ( WGS84 )
-But Sodano's formula may be re-written as an Andoyer's formula.
( In reference [1] - page 87 - Paul D. Thomas gives the key to perform this transformation )
With L , L' = longitudes & p , p' = parametric latitudes , f = earth flattening
Tan p = (1-f) Tan b where b = geodetic latitude
H = ( L' - L )/2 ; F = ( p + p' )/2 ; G = ( p' - p )/2
S = sin2 G cos2 H + cos2 F sin2 H , µ = 2 Arc Sin S1/2
we define A = ( sin2 G cos2 F
)/S + ( sin2 F cos2 G )/( 1-S )
and
B = ( sin2 G
cos2 F )/S - ( sin2
F cos2
G )/( 1-S )
-After "some" calculations, it yields:
Dist = a { µ - (f/2) ( A.µ + B Sin µ )
+ (f2/4) [ A µ2 Cot µ + B µ2 / Sin µ + A2 ( µ + Sin µ Cos µ - 4 µ2 Cot µ ) / 4 - A.B µ2 / Sin µ - ( B2/2 ) Sin µ Cos µ ]
+ (f3/8) [ A ( 2 µ2
Cot µ - 2 µ3
Cot2 µ
- 8 µ3 / 6 ) + A2
( -5 µ2 Cot
µ + 5 µ3
Cot2 µ + 8 µ3
/ 3 + (1/2) Sin µ Cos µ
+ µ /2 )
+ A3 ( 3 µ2
Cot µ - 3 µ3
Cot2 µ - 8 µ3
/ 6 - (1/4) Sin µ Cos µ
- µ / 4 )
+ B ( 2 µ2
/ Sin µ - 2 µ3
Cos µ / Sin2 µ
) + A.B ( -5 µ2
/ Sin µ + 6 µ3
Cos µ / Sin2 µ
+ µ Cos µ )
+ A2 B ( 3 µ2
/ Sin µ - 4 µ3
Cos µ / Sin2
µ - µ Cos µ + (1/2) Sin
µ Cos2 µ )
+ B2 ( - Sin µ
Cos µ + µ3
/ Sin2 µ
+ µ ) + A B2 (
(1/2) Sin µ Cos µ - µ3
/ Sin2 µ
- µ )
+ B3 ( (2/3) Sin3
µ - (1/2) Sin µ
) ] }
Data Registers: R00 = µ , R01
= A , R02 = B , R04
thru R09: temp
Flags:
/
Subroutines:
/
01 LBL
"AND" 02 DEG 03 HR 04 STO 01 05 X<> T 06 HMS- 07 HR 08 2 09 / 10 SIN 11 X^2 12 STO 00 13 X<>Y 14 HR 15 1 16 STO 08 17 P-R 18 LASTX 19 298.25722 20 STO 04 21 ST+ 04 22 1/X 23 - 24 STO 05 25 / 26 R-P 27 X<> 01 28 RCL 08 29 P-R 30 RCL 05 |
31
/ 32 R-P 33 RDN 34 + 35 2 36 / 37 ST- Y 38 RCL 08 39 P-R 40 X^2 41 STO 02 42 X<>Y 43 X^2 44 STO 01 45 RDN 46 X<>Y 47 RCL 08 48 P-R 49 X^2 50 ST* 01 51 RDN 52 X^2 53 ST* 02 54 STO Z 55 - 56 RCL 00 57 * 58 + 59 ST/ 02 60 RCL 02 |
61
RCL 01 62 RCL 08 63 R^ 64 STO 01 65 - 66 / 67 ST- 02 68 + 69 X<> 01 70 SQRT 71 ASIN 72 ST+ X 73 D-R 74 STO 00 75 LASTX 76 RCL 08 77 P-R 78 STO 03 79 STO 06 80 RDN 81 STO 05 82 / 83 STO 07 84 ST/ Z 85 X^2 86 ST* 03 87 RCL 08 88 + 89 ENTER 90 R^ |
91
ST+ 08 92 ST- Z 93 2 94 / 95 STO 09 96 - 97 RCL 01 98 * 99 - 100 RCL 05 101 X^2 102 1.5 103 ST/ Y 104 FRC 105 - 106 RCL 07 107 / 108 RCL 02 109 * 110 + 111 RCL 02 112 * 113 RCL 06 114 X^2 115 RCL 07 116 ST- 03 117 ST+ X 118 / 119 RCL 03 120 4 |
121 ST/ 08 122 * 123 RCL 06 124 + 125 RCL 07 126 + 127 STO Z 128 - 129 RCL 01 130 * 131 + 132 RCL 03 133 ST+ X 134 STO 05 135 + 136 RCL 01 137 * 138 + 139 RCL 05 140 - 141 RCL 02 142 * 143 RCL 03 144 RCL 06 145 * 146 STO 03 147 RCL 00 148 ST+ X 149 X^2 150 3 |
151 ST* Z 152 / 153 STO Z 154 + 155 RCL 08 156 + 157 STO 05 158 RCL 01 159 * 160 RCL 05 161 ST+ X 162 - 163 RCL 03 164 ST+ Z 165 ST+ Z 166 + 167 RCL 01 168 * 169 + 170 RCL 01 171 * 172 - 173 RCL 04 174 / 175 RCL 08 176 RCL 06 177 RCL 07 178 * 179 STO Z 180 - 181 RCL 01 |
182 * 183 + 184 RCL 02 185 ST* 09 186 RCL 07 187 ST- 09 188 * 189 - 190 RCL 01 191 * 192 + 193 RCL 02 194 RCL 09 195 * 196 - 197 RCL 04 198 / 199 RCL 02 200 RCL 07 201 / 202 - 203 RCL 01 204 - 205 RCL 04 206 / 207 RCL 00 208 ST* Y 209 + 210 6378.137 211 * 212 END |
( 268 bytes / SIZE 010 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Example:
Calculate the
geodesic distance between the Sydney
Observatory ( Long = 151°12'17"8
E , Lat = 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "AND" >>>>
D = 12138.68432
km
---Execution time = 13s---
Notes:
-It is certainly possible to express the formula without calculating the parametric latitudes, but I've not found how.-Without parametric latitudes, Andoyer's formula of order 2 gives a shorter & faster program,
but it's not at all sure with Andoyer's formula of order 3...
-We can also use an M-code routine to calculate the parametric latitudes:
( "PRM" doesn't check for alpha data )
0BD "M"
012 "R"
010 "P"
2A0 SETDEC
0F8 C=X
22D C=
060 1/C
2BE C=-C
02E C
0FA ->
0AE AB
001 C=
060 AB+1
128 L=C
0B8 C=Y
070 C
209 =
048 Tan(C)
138 C=L
13D C=
060 AB*C
10E A=C
0B8 C=Y
11E A=C MS
0AE A<>C
070 C
2A9 =
040 Atan(C)
0E8 X=C
078 C=Z
070 C
209 =
048 Tan(C)
138 C=L
13D C=
060 AB*C
10E A=C
078 C=Z
11E A=C MS
0AE A<>C
070 C
2A9 =
040 Atan(C)
068 Z=C
0A8 Y=C
3E0 RTN
STACK | INPUTS | OUTPUTS |
Z | b | bparam |
Y | b' | bparam |
X | 1/f | b'param |
b) Triaxial Ellipsoid (
With Parametric Coordinates )
-The following "TGD" employs Andoyer's formula of order 2 for the great elliptic distance and Andoyer's formula of order 3 to estimate d - Δ'
(d - Δ') / a = (f2/4) µ [ (A2-A) ( 1 - µ Cot µ ) - B.(A-1) ( µ / Sin µ - (Sin µ) / µ ) ] where µ , A , B are computed with parametric latitudes
+ (f3/8) [ A ( 2 µ2 Cot µ - 2 µ3 Cot2 µ - 8 µ3 / 6 ) + A2 ( -5 µ2 Cot µ + 5 µ3 Cot2 µ + 8 µ3 / 3 + Sin µ Cos µ - µ )
+ A3 ( 3 µ2 Cot µ - 3 µ3 Cot2 µ - 8 µ3 / 6 - Sin µ Cos µ + µ )
+ B ( 2 µ2 / Sin µ - 2 µ3 Cos µ / Sin2 µ ) + A.B ( -5 µ2 / Sin µ + 6 µ3 Cos µ / Sin2 µ + µ Cos µ - 2 Sin µ )
+ A2 B ( 3 µ2 / Sin µ - 4 µ3 Cos µ / Sin2 µ - µ Cos µ + 2 Sin µ )
+ B2 ( - 2 Sin µ Cos µ + µ3 / Sin2 µ + µ ) + A B2 ( 2 Sin µ Cos µ - µ3 / Sin2 µ - µ )
Data Registers: R00 thru R15: temp
Flags:
/
Subroutines:
/
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.92911 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 STO 05 29 RCL 09 30 STO 06 31 RCL 10 32 STO 07 33 RCL 13 34 ST- 11 35 RCL 14 36 XEQ 01 37 XEQ 00 38 STO 04 39 RCL 01 40 ST/ 05 41 ST/ 08 42 RCL 02 43 ST+ 01 44 ST/ 06 45 ST/ 09 46 RCL 03 47 ST/ 07 48 ST/ 10 49 RCL 08 50 X^2 51 RCL 09 52 X^2 53 RCL 10 |
54
X^2 55 + 56 + 57 STO 13 58 RCL 05 59 X^2 60 RCL 06 61 X^2 62 RCL 07 63 X^2 64 + 65 + 66 STO 00 67 - 68 RCL 04 69 ACOS 70 STO 02 71 SIN 72 STO 15 73 * 74 RCL 08 75 XEQ 00 76 ST+ X 77 STO 09 78 RCL 00 79 RCL 13 80 + 81 RCL 04 82 * 83 - 84 R-P 85 X<>Y 86 STO 08 87 2 88 ST/ 01 89 ST/ 11 90 / 91 STO 05 92 XEQ 02 93 STO 06 94 RCL 05 95 90 96 + 97 XEQ 02 98 STO 07 99 RCL 02 100 D-R 101 RCL 08 102 COS 103 STO 05 104 X^2 105 ST+ X 106 RCL 04 |
107 RCL 15 108 ST* 05 109 * 110 ST* Y 111 - 112 - 113 4 114 / 115 RCL 06 116 ST/ 15 117 RCL 07 118 ST- Y 119 ST+ X 120 / 121 STO 07 122 * 123 RCL 05 124 - 125 + 126 RCL 07 127 * 128 + 129 ST* 15 130 GTO 03 131 LBL 00 132 RCL 05 133 * 134 RCL 09 135 RCL 06 136 * 137 + 138 RCL 10 139 RCL 07 140 * 141 + 142 RTN 143 LBL 01 144 1 145 P-R 146 X<>Y 147 RCL 03 148 X^2 149 * 150 STO 10 151 RDN 152 P-R 153 RCL 01 154 X^2 155 * 156 STO Z 157 X^2 158 X<>Y 159 RCL 02 |
160 X^2 161 * 162 STO 09 163 X^2 164 RCL 10 165 X^2 166 + 167 + 168 SQRT 169 ST/ 09 170 ST/ 10 171 / 172 STO 08 173 RTN 174 LBL 02 175 RCL 02 176 2 177 / 178 + 179 ENTER 180 SIN 181 ENTER 182 X^2 183 RCL 13 184 * 185 RCL 02 186 R^ 187 - 188 SIN 189 ST* Z 190 X^2 191 RCL 00 192 * 193 + 194 X<>Y 195 RCL 09 196 * 197 + 198 SQRT 199 RTN 200 LBL 03 201 RCL 14 202 1 203 STO 08 204 STO 09 205 P-R 206 RCL 01 207 RCL 03 208 - 209 RCL 01 210 / 211 STO 04 212 SIGN |
213 LASTX 214 - 215 STO 05 216 / 217 R-P 218 X<> 12 219 RCL 09 220 P-R 221 RCL 05 222 / 223 R-P 224 RDN 225 + 226 2 227 ST/ 04 228 / 229 ST- Y 230 RCL 09 231 P-R 232 X^2 233 STO T 234 RDN 235 X^2 236 STO 14 237 SIGN 238 P-R 239 X^2 240 ST* 14 241 CLX 242 + 243 X^2 244 ST* T 245 - 246 RCL 11 247 COS 248 X^2 249 * 250 - 251 / 252 STO 02 253 RCL 14 254 RCL 09 255 LASTX 256 STO 14 257 - 258 / 259 ST- 02 260 + 261 ST- 09 262 X<> 14 263 SQRT 264 ASIN 265 ST+ X |
266 D-R 267 STO 00 268 LASTX 269 RCL 08 270 P-R 271 STO 03 272 STO 06 273 STO 13 274 RDN 275 STO 05 276 / 277 STO 07 278 ST/ Z 279 X^2 280 ST* 03 281 RCL 08 282 + 283 R^ 284 ST- 08 285 ST+ X 286 - 287 RCL 02 288 * 289 2 290 RCL 07 291 ST- 03 292 ST/ Y 293 - 294 RCL 06 295 - 296 RCL 03 297 ST+ 03 298 ST* 13 299 4 300 * 301 - 302 RCL 09 303 ST* Z 304 * 305 RCL 03 306 - 307 RCL 14 308 * 309 - 310 RCL 03 311 - 312 RCL 02 313 * 314 RCL 13 315 RCL 00 316 ST* 01 317 ST+ X 318 X^2 |
319 3 320 ST* Z 321 / 322 STO 11 323 + 324 STO 12 325 RCL 08 326 - 327 RCL 14 328 * 329 RCL 12 330 ST+ X 331 - 332 RCL 13 333 + 334 RCL 08 335 + 336 RCL 14 337 * 338 RCL 13 339 ST+ X 340 + 341 RCL 11 342 + 343 RCL 14 344 * 345 - 346 RCL 04 347 * 348 RCL 06 349 RCL 07 350 * 351 RCL 14 352 ST* Y 353 - 354 RCL 07 355 ENTER 356 1/X 357 - 358 RCL 02 359 * 360 + 361 RCL 09 362 * 363 + 364 RCL 04 365 X^2 366 * 367 RCL 01 368 * 369 RCL 15 370 + 371 END |
( 465 bytes / SIZE
016 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGD" >>>>
D = 12138.65755
km
---Execution time = 28s---
Notes:
-The exact result ( computed with Jacobi's method ) is 12138.657551942....-When line 98 is executed ( STO 07 ), the semi axes of the great ellipse = R15/R06 & R15/R07.
-With the example above, 6378.151662 km & 6368.318461 km
-The root-mean-square error is about 2 cm if 80° < | L' - L | < 120° and the maximum error is about 13 cm
-The root-mean-square error is about 4 cm if 110° < | L' - L | < 150° and the maximum error is about 34 cm
-When the difference in the longitudes is 165°, the error can reach about 75 cm.
c) Triaxial Ellipsoid ( Without Parametric Coordinates )
-The formula employed in the previous paragraph may be expressed without transforming geodetic coordinates into parametric coordinates.
-After some calculations, it yields:
(d - Δ') / a = (f2/4) µ [ (A2-A) ( 1 - µ Cot µ ) - B.(A-1) ( µ / Sin µ - (Sin µ) / µ ) ] where µ , A , B are computed with geodetic latitudes
+ (f3/8) [ A ( 4 µ - 2 µ2 Cot µ - 2 µ3 Cot2 µ - 8 µ3 / 6 )
+ A2 ( 9 µ2 Cot µ + 5 µ3 Cot2 µ + 8 µ3 / 3 - Sin µ Cos µ - 13 µ )
+ A3 ( -7 µ2 Cot µ - 3 µ3 Cot2 µ - 8 µ3 / 6 + Sin µ Cos µ + 9 µ )
+ B ( -2 µ2 / Sin µ - 2 µ3 Cos µ / Sin2 µ + 4 Sin µ )
+ A.B ( 9 µ2 / Sin µ + 6 µ3 Cos µ / Sin2 µ - 3 µ Cos µ - 12 Sin µ )
+ A2 B ( -7 µ2 / Sin µ - 4 µ3 Cos µ / Sin2 µ + 3 µ Cos µ + 8 Sin µ )
+ B2 ( 2 Sin µ Cos µ + µ3 / Sin2 µ - 3 µ )
+ A B2 ( -2 Sin µ Cos µ - µ3 / Sin2 µ + 3 µ )
-We may simplify this formula like this:
(d - Δ') / a = µ ( 1 - A ) { (f2/4) [ A ( µ Cot µ - 1 ) + B ( µ / Sin µ - (Sin µ) / µ ) ]
+ (f3/8) [ B2 ( µ2 / Sin2 µ + 2 ( Sin µ Cos µ ) / µ - 3 )
+ B ( ( 4 - 8 A ) ( Sin µ ) / µ - 3 A Cos µ + ( 4 A - 2 ) µ2 Cos µ / Sin2 µ + ( 7 A - 2 ) µ / Sin µ )
+ A ( -A ( Sin µ Cos µ ) / µ + ( 7 A - 2 ) µ Cot µ - 8 ( 1 - A ) ( µ2 / 6 ) + ( 3 A - 2 ) µ2 Cot2 µ + 4 - 9 A ) ] }
Data Registers: R00 thru R15: temp
Flags:
/
Subroutines:
/
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.92911 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 RCL 08 29 STO 05 30 RCL 09 31 STO 06 32 RCL 10 33 STO 07 34 RCL 13 35 ST- 11 36 RCL 14 37 XEQ 01 38 XEQ 00 39 STO 04 40 RCL 01 41 ST/ 05 42 ST/ 08 43 RCL 02 44 ST+ 01 45 ST/ 06 46 ST/ 09 47 RCL 03 48 ST/ 07 49 ST/ 10 |
50
RCL 08 51 X^2 52 RCL 09 53 X^2 54 RCL 10 55 X^2 56 + 57 + 58 STO 13 59 RCL 05 60 X^2 61 RCL 06 62 X^2 63 RCL 07 64 X^2 65 + 66 + 67 STO 00 68 - 69 RCL 04 70 ACOS 71 STO 02 72 SIN 73 STO 15 74 * 75 XEQ 00 76 ST+ X 77 STO 09 78 RCL 00 79 RCL 13 80 + 81 RCL 04 82 * 83 - 84 R-P 85 X<>Y 86 STO 08 87 2 88 / 89 ENTER 90 XEQ 02 91 STO 06 92 X<>Y 93 90 94 + 95 XEQ 02 96 ST- Y 97 ST+ X 98 / |
99
STO 07 100 RCL 02 101 D-R 102 RCL 08 103 ST+ X 104 COS 105 RCL 04 106 RCL 15 107 * 108 * 109 - 110 4 111 / 112 RCL 07 113 * 114 RCL 08 115 COS 116 RCL 15 117 * 118 - 119 + 120 RCL 07 121 * 122 + 123 RCL 06 124 / 125 ST* 15 126 GTO 03 127 LBL 00 128 RCL 05 129 RCL 08 130 * 131 RCL 06 132 RCL 09 133 * 134 + 135 RCL 07 136 RCL 10 137 * 138 + 139 RTN 140 LBL 01 141 1 142 P-R 143 X<>Y 144 RCL 03 145 X^2 146 * 147 STO 10 |
148 RDN 149 P-R 150 RCL 01 151 X^2 152 * 153 STO 08 154 X^2 155 X<>Y 156 RCL 02 157 X^2 158 * 159 STO 09 160 X^2 161 RCL 10 162 X^2 163 + 164 + 165 SQRT 166 ST/ 08 167 ST/ 09 168 ST/ 10 169 RTN 170 LBL 02 171 STO 07 172 RCL 02 173 2 174 / 175 ST- 07 176 + 177 SIN 178 STO 10 179 X^2 180 RCL 13 181 * 182 RCL 07 183 SIN 184 ST* 10 185 X^2 186 RCL 00 187 * 188 + 189 RCL 09 190 RCL 10 191 * 192 - 193 SQRT 194 RTN 195 LBL 03 196 RCL 12 |
197 RCL 14 198 + 199 2 200 ST/ 01 201 ST/ 11 202 / 203 ST- 14 204 1 205 STO 07 206 P-R 207 X^2 208 STO Z 209 X<>Y 210 X^2 211 X<> 14 212 RCL 07 213 P-R 214 X^2 215 ST* 14 216 CLX 217 + 218 X^2 219 ST* T 220 - 221 RCL 11 222 COS 223 X^2 224 * 225 - 226 / 227 STO 05 228 RCL 14 229 RCL 07 230 LASTX 231 STO 14 232 - 233 / 234 ST- 05 235 + 236 STO 04 237 ST- 07 238 X<> 14 239 SQRT 240 ASIN 241 ST+ X 242 D-R 243 STO 00 244 LASTX 245 1 |
246 P-R 247 STO 09 248 STO 12 249 STO 13 250 RDN 251 / 252 STO 06 253 ST/ 12 254 X^2 255 ST* 09 256 3 257 ST* 04 258 - 259 RCL 12 260 ST+ X 261 + 262 RCL 05 263 * 264 RCL 14 265 RCL 07 266 - 267 ST+ X 268 STO 10 269 ST+ X 270 RCL 06 271 / 272 - 273 RCL 09 274 RCL 10 275 * 276 + 277 RCL 04 278 ST+ 10 279 RCL 13 280 ST* 09 281 * 282 - 283 RCL 06 284 ST* 13 285 RCL 10 286 * 287 + 288 RCL 05 289 * 290 RCL 10 291 RCL 13 292 * 293 RCL 12 294 RCL 14 295 * |
296 - 297 RCL 00 298 ST+ X 299 X^2 300 3 301 / 302 RCL 07 303 ST* 00 304 ST- 10 305 ST- 10 306 * 307 - 308 RCL 04 309 2 310 - 311 RCL 09 312 * 313 + 314 RCL 10 315 - 316 RCL 14 317 ST* 13 318 ST- 13 319 * 320 + 321 RCL 01 322 RCL 03 323 - 324 RCL 01 325 ST* 00 326 ST+ X 327 / 328 STO Z 329 * 330 RCL 06 331 ENTER 332 1/X 333 - 334 RCL 05 335 * 336 + 337 RCL 13 338 + 339 * 340 * 341 RCL 00 342 * 343 RCL 15 344 + 345 END |
( 439 bytes / SIZE
016 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGD" >>>>
D = 12138.65754
km
---Execution time = 25s---
Note:
-When line 95 is executed, the semi axes of the great ellipse = R15/X & R15/Y.
-With the example above, 6378.151658 km & 6368.318461 km
3°) With Andoyer's Formula of order 2 + A Few Terms of Order 3
a) Ellipsoid of Revolution
-This version employs Andoyer's formula of order 2 ( where A , B , ... are computed with geodetic latitudes ) + a few terms of order 3
Formulae:
-With H = ( L' - L )/2 ; F = ( b + b' )/2 ; G = ( b' - b )/2
S = sin2 G cos2 H + cos2 F sin2 H ; µ = 2 Arcsin S1/2
we define A = ( sin2 G cos2 F
)/S + ( sin2 F cos2 G )/( 1-S )
and
B = ( sin2 G
cos2 F )/S - ( sin2
F cos2
G )/( 1-S )
Dist ~ a { µ - (f/2) ( A.µ + 3.B Sin µ )
+ (f2/4) [ A ( 4.µ + µ2 Cot µ ) + B ( 6.Sin µ + µ2 / Sin µ ) - A2 ( 15.µ + 15 Sin µ Cos µ + 4 µ2 Cot µ ) / 4 - A.B ( 6.Sin µ + µ2 / Sin µ ) + ( B2/2 ) 15 Sin µ Cos µ ]
+ (f3/8) [ A ( 2 µ2 Cot µ - 2 µ3 Cot2 µ - 8 µ3 / 6 ) + A2 ( -5 µ2 Cot µ + 5 µ3 Cot2 µ + 8 µ3 / 3 )+ A3 ( 3 µ2 Cot µ - 3 µ3 Cot2 µ - 8 µ3 / 6 )
+ B ( 2 µ2 / Sin µ - 2 µ3 Cos µ / Sin2 µ ) + A.B ( -5 µ2 / Sin µ + 6 µ3 Cos µ / Sin2 µ )
+ A2 B ( 3 µ2 / Sin µ - 4 µ3 Cos µ / Sin2 µ )
+ B2 ( µ3 / Sin2 µ ) + A B2 ( - µ3 / Sin2 µ )
Data Registers: R00 to R07:
temp
Flags:
/
Subroutines:
/
01
LBL "TGD" 02 DEG 03 HR 04 X<> T 05 HMS- 06 HR 07 2 08 / 09 COS 10 X^2 11 RDN 12 HR 13 + 14 2 15 / 16 ST- Y 17 1 18 STO 07 19 P-R 20 X^2 21 STO 02 22 RDN 23 X^2 24 STO 01 25 SIGN |
26
P-R 27 X^2 28 ST* 01 29 RDN 30 X^2 31 ST* 02 32 RCL Z 33 - 34 * 35 + 36 ST/ 02 37 RCL 02 38 RCL 01 39 RCL 07 40 R^ 41 STO 01 42 - 43 / 44 ST- 02 45 + 46 ST- 07 47 X<> 01 48 SQRT 49 ASIN 50 ST+ X |
51
D-R 52 STO 00 53 LASTX 54 1 55 P-R 56 STO 03 57 STO 05 58 RDN 59 / 60 STO 06 61 X^2 62 ST* 03 63 RCL 02 64 * 65 RCL 07 66 * 67 RCL 06 68 ST- 03 69 RCL 03 70 4 71 * 72 + 73 RCL 01 74 * 75 RCL 03 |
76
6 77 * 78 - 79 RCL 06 80 - 81 RCL 01 82 * 83 - 84 RCL 03 85 ST+ X 86 - 87 RCL 02 88 * 89 RCL 03 90 RCL 05 91 * 92 STO 03 93 3 94 * 95 RCL 00 96 X^2 97 .75 98 / 99 STO 04 100 + |
101
RCL 01 102 * 103 RCL 04 104 ST+ X 105 - 106 RCL 03 107 ST+ 04 108 ST+ 04 109 5 110 * 111 - 112 RCL 01 113 * 114 RCL 04 115 + 116 RCL 01 117 * 118 - 119 596.51444 120 STO 04 121 / 122 6 123 RCL 06 124 ST/ Y 125 + |
126
RCL 07 127 * 128 RCL 05 129 RCL 06 130 ST* 05 131 / 132 7.5 133 STO 03 134 * 135 ST+ 03 136 RCL 02 137 * 138 + 139 RCL 02 140 * 141 + 142 RCL 03 143 2 144 / 145 RCL 05 146 + 147 RCL 01 148 * 149 RCL 05 |
150
- 151 4 152 - 153 RCL 01 154 * 155 - 156 RCL 04 157 / 158 RCL 01 159 - 160 RCL 02 161 3 162 * 163 RCL 06 164 / 165 - 166 RCL 04 167 / 168 RCL 00 169 ST* Y 170 + 171 6378.137 172 * 173 END |
( 220 bytes /
SIZE 008 )
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the WGS84 ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D = 12138.68425 km ---Execution time = 10s---
Notes:
-The flattening value ( x2: line 123 ) may be replaced by 596.514
-It will save 2 bytes without changing a lot the precision.
-The precision is the same as Andoyer's formula of order 2 for relatively long distances and almost the same as Andoyer's formula of order 3 for very long distances.
-For instance, with L = 0° b = 5° L' = 175° b' = 3° this program gives 18968.13264 km whereas Vincenty's formula gives 18968.13070 km
-So, an error of 1.94 m
-Here are a few maximum errors ( in meters ) for several L' - L values
-The second row = maximum error of Andoyer's formula of order 2 without any term of order 3
-Third row = maximum error with "TGD" above: Andoyer of order 2 + a few of order 3.
-Fourth row = maximum error with complete Andoyer's formula of order 3
-I found them with free42.
| L'-L | |
90° |
150° |
155° |
160° |
165° |
170° |
171° |
172° |
173° |
174° |
175° |
176° |
And2 |
0.16 |
0.52 |
0.85 |
1.50 |
3.03 |
7.64 |
9.76 |
12.5 |
16.9 |
23.4 |
34.4 |
55.6 |
And2afew3 | 0.16 |
0.20 |
0.26 |
0.34 |
0.51 |
0.88 |
1.00 |
1.15 |
1.33 |
1.57 |
1.94 |
3.14 |
And3 |
~ 0 |
0.008 |
0.01 |
0.03 |
0.08 |
0.27 |
0.39 |
0.52 |
0.82 |
1.36 |
2.05 |
4.38 |
-Thus, if L'-L < 171° , the errors remain smaller than 1 meter ( except for nearly antipodal points ) !
-Surprisingly, if L' - L > 174°, the complete Andoyer's ( or Sodano's ) formula of order 3 may be less accurate than Andoyer's formula of order 2 + main terms of order 3 !
b) Triaxial Ellipsoid ( Without Parametric Coordinates )
-With H = ( L' - L )/2 ; F = ( b + b' )/2 ; G = ( b' - b )/2
S = sin2 G cos2 H + cos2 F sin2 H ; µ = 2 Arcsin S1/2
we define A = ( sin2 G cos2 F
)/S + ( sin2 F cos2 G )/( 1-S )
and
B = ( sin2 G
cos2 F )/S - ( sin2
F cos2
G )/( 1-S )
d - Δ' = a (f2/4) µ [ (A2-A) ( 1 - µ Cot µ ) - B.(A-1) ( µ / Sin µ - (Sin µ) / µ ) ]
+ a (f3/8) [ A ( 2 µ2 Cot µ - 2 µ3 Cot2 µ - 8 µ3 / 6 ) + A2 ( -5 µ2 Cot µ + 5 µ3 Cot2 µ + 8 µ3 / 3 )+ A3 ( 3 µ2 Cot µ - 3 µ3 Cot2 µ - 8 µ3 / 6 )
+ B ( 2 µ2 / Sin µ - 2 µ3 Cos µ / Sin2 µ ) + A.B ( -5 µ2 / Sin µ + 6 µ3 Cos µ / Sin2 µ )
+ A2 B ( 3 µ2 / Sin µ - 4 µ3 Cos µ / Sin2 µ )
+ B2 ( µ3 / Sin2 µ ) + A B2 ( - µ3 / Sin2 µ )
Data Registers: R00 to R15:
temp
Flags:
/
Subroutines:
/
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.929 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 STO 05 29 RCL 09 30 STO 06 31 RCL 10 32 STO 07 33 RCL 13 34 ST- 11 35 RCL 14 36 XEQ 01 37 XEQ 00 38 STO 04 39 RCL 01 40 ST/ 05 41 ST/ 08 42 RCL 02 43 ST+ 01 44 ST/ 06 45 ST/ 09 46 RCL 03 47 ST/ 07 48 ST/ 10 |
49
RCL 08 50 X^2 51 RCL 09 52 X^2 53 RCL 10 54 X^2 55 + 56 + 57 STO 13 58 RCL 05 59 X^2 60 RCL 06 61 X^2 62 RCL 07 63 X^2 64 + 65 + 66 STO 00 67 - 68 RCL 04 69 ACOS 70 STO 02 71 SIN 72 STO 15 73 * 74 RCL 08 75 XEQ 00 76 ST+ X 77 STO 09 78 RCL 00 79 RCL 13 80 + 81 RCL 04 82 * 83 - 84 R-P 85 X<>Y 86 STO 08 87 2 88 ST/ 01 89 ST/ 11 90 / 91 STO 05 92 XEQ 02 93 STO 06 94 RCL 05 95 90 96 + |
97
XEQ 02 98 STO 07 99 RCL 02 100 D-R 101 RCL 08 102 COS 103 STO 05 104 X^2 105 ST+ X 106 RCL 04 107 RCL 15 108 ST* 05 109 * 110 ST* Y 111 - 112 - 113 4 114 / 115 RCL 06 116 ST/ 15 117 RCL 07 118 ST- Y 119 ST+ X 120 / 121 STO 07 122 * 123 RCL 05 124 - 125 + 126 RCL 07 127 * 128 + 129 ST* 15 130 RCL 14 131 ENTER 132 GTO 03 133 LBL 00 134 RCL 05 135 * 136 RCL 09 137 RCL 06 138 * 139 + 140 RCL 10 141 RCL 07 142 * 143 + 144 RTN |
145 LBL 01 146 1 147 P-R 148 X<>Y 149 RCL 03 150 X^2 151 * 152 STO 10 153 RDN 154 P-R 155 RCL 01 156 X^2 157 * 158 STO Z 159 X^2 160 X<>Y 161 RCL 02 162 X^2 163 * 164 STO 09 165 X^2 166 RCL 10 167 X^2 168 + 169 + 170 SQRT 171 ST/ 09 172 ST/ 10 173 / 174 STO 08 175 RTN 176 LBL 02 177 RCL 02 178 2 179 / 180 + 181 ENTER 182 SIN 183 ENTER 184 X^2 185 RCL 13 186 * 187 RCL 02 188 R^ 189 - 190 SIN 191 ST* Z 192 X^2 |
193 RCL 00 194 * 195 + 196 X<>Y 197 RCL 09 198 * 199 + 200 SQRT 201 RTN 202 LBL 03 203 RCL 12 204 + 205 2 206 / 207 ST- Y 208 1 209 STO 07 210 P-R 211 X^2 212 STO T 213 RDN 214 X^2 215 STO 08 216 SIGN 217 P-R 218 X^2 219 ST* 08 220 CLX 221 + 222 X^2 223 ST* T 224 - 225 RCL 11 226 COS 227 X^2 228 * 229 - 230 / 231 STO 02 232 RCL 08 233 RCL 07 234 LASTX 235 STO 08 236 - 237 / 238 ST- 02 239 + 240 ST- 07 |
241 X<>
08 242 SQRT 243 ASIN 244 ST+ X 245 D-R 246 STO 00 247 LASTX 248 1 249 P-R 250 STO 04 251 STO 05 252 STO 09 253 RDN 254 / 255 ST* 05 256 STO 06 257 X^2 258 ST* 09 259 RCL 02 260 * 261 RCL 06 262 ST- 09 263 RCL 09 264 ST* 04 265 ST+ 09 266 4 267 * 268 + 269 RCL 07 270 ST* Z 271 * 272 RCL 09 273 + 274 RCL 08 275 * 276 + 277 RCL 09 278 - 279 RCL 02 280 * 281 RCL 04 282 RCL 00 283 ST+ X 284 X^2 285 3 286 ST* Z 287 / 288 STO Z |
289 + 290 STO 09 291 RCL 08 292 * 293 RCL 09 294 ST+ X 295 - 296 RCL 04 297 ST+ Z 298 ST+ Z 299 + 300 RCL 08 301 ST* 05 302 * 303 + 304 RCL 08 305 ST- 05 306 * 307 - 308 RCL 01 309 RCL 03 310 - 311 RCL 01 312 ST+ X 313 / 314 STO 04 315 * 316 RCL 05 317 RCL 06 318 ENTER 319 1/X 320 - 321 RCL 02 322 * 323 + 324 RCL 07 325 * 326 + 327 RCL 04 328 X^2 329 * 330 RCL 00 331 * 332 RCL 01 333 * 334 RCL 15 335 + 336 END |
( 426 bytes / SIZE 016
)
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGD" >>>>
D = 12138.65755
km
---Execution
time = 25s---
LASTX d = 12138.65875
km = great elliptic distance
= R10
Notes:
-When line 98 is executed ( STO 07 ), the semi axes of the great ellipse = R15/R06 & R15/R07.
-With the example above, 6378.151662 km & 6368.318461 km
-The precision is not so good as the programs listed in paragraphs 2b) & 2c)
-For example:
-If L = -40° & L' = 120° , the root mean square error = 15 cm and the maximum | error | = 55 cm
-If L = -95° & L' = 65° , rms = 31 cm and max | error | = 87 cm
c) Triaxial
Ellipsoid ( With Parametric Coordinates )
-The method employed in paragraph above is not
really rigorous !
-A better accuracy will be obtained if we use the
same formulas but after transforming the geodetic coordinates into
parametric coordinates to calculate µ , A , B ...
etc ...
d - Δ' = a (f2/4)
µ [ (A2-A)
( 1 - µ Cot µ ) - B.(A-1) (
µ / Sin µ - (Sin µ)
/ µ ) ]
+ A3 ( 3 µ2 Cot µ - 3 µ3 Cot2 µ - 8 µ3 / 6 )
+ B ( 2 µ2 / Sin µ - 2 µ3 Cos µ / Sin2 µ ) + A.B ( -5 µ2 / Sin µ + 6 µ3 Cos µ / Sin2 µ )
+ A2 B ( 3 µ2 / Sin µ - 4 µ3 Cos µ / Sin2 µ )
+ B2 ( µ3 / Sin2 µ ) + A B2 ( - µ3 / Sin2 µ )
Data Registers: R00 to R15:
temp
Flags:
/
Subroutines:
/
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.92911 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 STO 05 29 RCL 09 30 STO 06 31 RCL 10 32 STO 07 33 RCL 13 34 ST- 11 35 RCL 14 36 XEQ 01 37 XEQ 00 38 STO 04 39 RCL 01 40 ST/ 05 41 ST/ 08 42 RCL 02 43 ST+ 01 44 ST/ 06 45 ST/ 09 46 RCL 03 47 ST/ 07 48 ST/ 10 49 RCL 08 50 X^2 |
51
RCL 09 52 X^2 53 RCL 10 54 X^2 55 + 56 + 57 STO 13 58 RCL 05 59 X^2 60 RCL 06 61 X^2 62 RCL 07 63 X^2 64 + 65 + 66 STO 00 67 - 68 RCL 04 69 ACOS 70 STO 02 71 SIN 72 STO 15 73 * 74 RCL 08 75 XEQ 00 76 ST+ X 77 STO 09 78 RCL 00 79 RCL 13 80 + 81 RCL 04 82 * 83 - 84 R-P 85 X<>Y 86 STO 08 87 2 88 ST/ 01 89 ST/ 11 90 / 91 STO 05 92 XEQ 02 93 STO 06 94 RCL 05 95 90 96 + 97 XEQ 02 98 STO 07 99 RCL 02 100 D-R |
101 RCL 08 102 COS 103 STO 05 104 X^2 105 ST+ X 106 RCL 04 107 RCL 15 108 ST* 05 109 * 110 ST* Y 111 - 112 - 113 4 114 / 115 RCL 06 116 ST/ 15 117 RCL 07 118 ST- Y 119 ST+ X 120 / 121 STO 07 122 * 123 RCL 05 124 - 125 + 126 RCL 07 127 * 128 + 129 ST* 15 130 GTO 03 131 LBL 00 132 RCL 05 133 * 134 RCL 09 135 RCL 06 136 * 137 + 138 RCL 10 139 RCL 07 140 * 141 + 142 RTN 143 LBL 01 144 1 145 P-R 146 X<>Y 147 RCL 03 148 X^2 149 * 150 STO 10 |
151 RDN 152 P-R 153 RCL 01 154 X^2 155 * 156 STO Z 157 X^2 158 X<>Y 159 RCL 02 160 X^2 161 * 162 STO 09 163 X^2 164 RCL 10 165 X^2 166 + 167 + 168 SQRT 169 ST/ 09 170 ST/ 10 171 / 172 STO 08 173 RTN 174 LBL 02 175 RCL 02 176 2 177 / 178 + 179 ENTER 180 SIN 181 ENTER 182 X^2 183 RCL 13 184 * 185 RCL 02 186 R^ 187 - 188 SIN 189 ST* Z 190 X^2 191 RCL 00 192 * 193 + 194 X<>Y 195 RCL 09 196 * 197 + 198 SQRT 199 RTN 200 LBL 03 |
201 RCL 14 202 1 203 STO 07 204 P-R 205 RCL 01 206 RCL 03 207 - 208 RCL 01 209 / 210 STO 04 211 SIGN 212 LASTX 213 - 214 STO 05 215 / 216 R-P 217 X<> 12 218 RCL 07 219 P-R 220 RCL 05 221 / 222 R-P 223 RDN 224 + 225 2 226 ST/ 04 227 / 228 ST- Y 229 RCL 07 230 P-R 231 X^2 232 STO T 233 RDN 234 X^2 235 STO 08 236 SIGN 237 P-R 238 X^2 239 ST* 08 240 CLX 241 + 242 X^2 243 ST* T 244 - 245 RCL 11 246 COS 247 X^2 248 * 249 - 250 / |
251 STO 02 252 RCL 08 253 RCL 07 254 LASTX 255 STO 08 256 - 257 / 258 ST- 02 259 + 260 ST- 07 261 X<> 08 262 SQRT 263 ASIN 264 ST+ X 265 D-R 266 STO 00 267 LASTX 268 1 269 P-R 270 STO 05 271 STO 09 272 STO 13 273 RDN 274 / 275 ST* 05 276 STO 06 277 X^2 278 ST* 09 279 RCL 02 280 * 281 RCL 06 282 ST- 09 283 RCL 09 284 ST+ 09 285 ST* 13 286 4 287 * 288 + 289 RCL 07 290 ST* Z 291 * 292 RCL 09 293 + 294 RCL 08 295 * 296 + 297 RCL 09 298 - 299 RCL 02 300 * |
301 RCL 13 302 RCL 00 303 ST* 01 304 ST+ X 305 X^2 306 3 307 ST* Z 308 / 309 STO Z 310 + 311 STO 09 312 RCL 08 313 * 314 RCL 09 315 ST+ X 316 - 317 RCL 13 318 ST+ Z 319 ST+ Z 320 + 321 RCL 08 322 ST* 05 323 * 324 + 325 RCL 08 326 ST- 05 327 * 328 - 329 RCL 04 330 * 331 RCL 05 332 RCL 06 333 ENTER 334 1/X 335 - 336 RCL 02 337 * 338 + 339 RCL 07 340 * 341 + 342 RCL 04 343 X^2 344 * 345 RCL 01 346 * 347 RCL 15 348 + 349 END |
( 443 bytes / SIZE
016 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGD" >>>>
D = 12138.65755
km
---Execution
time = 27s---
LASTX = d = 12138.65875
km = great elliptic distance = R15
-When line 98 is executed ( STO 07 ), the semi axes of the great ellipse = R15/R06 & R15/R07.
-With the example above, 6378.151662 km & 6368.318461 km
-The precision is the same as the programs listed in paragraphs 2b) & 2c) !!!
-For example:
-If L = -40° & L' = 120° , the root mean square error = 10 cm and the maximum | error | = 48 cm
-If L = -95° & L' = 65° , rms = 19 cm and max | error | = 55 cm
4°) With Vincenty's Formula
-Vincenty's formula is probably the best method for an ellipsoid of revolution.
-The following
version of "TGD" - renamed "TGDV"-
employs this method 3 times.
Data Registers: R00 thru R21: temp
Flags:
/
Subroutines:
/
-Line 47 is a three-byte GTO 14
01 LBL
"TGDV" 02 DEG 03 HR 04 STO 21 05 RDN 06 HR 07 14.92911 08 STO 00 09 + 10 STO 20 11 RDN 12 HR 13 STO 19 14 X<>Y 15 HR 16 RCL 00 17 + 18 STO 18 19 6378.172 20 STO 01 21 .07 22 - 23 STO 02 24 6356.752314 25 STO 03 26 XEQ 01 27 STO 17 28 RCL 01 29 RCL 02 30 + 31 2 32 / 33 STO 01 34 STO 02 35 XEQ 01 36 ST- 17 37 RCL 01 38 STO 06 39 RCL 03 40 STO 07 41 RCL 21 42 RCL 19 43 RCL 20 44 RCL 18 45 XEQ 13 46 ENTER 47 GTO 14 48 LBL 01 49 RCL 18 50 RCL 19 51 XEQ 02 52 RCL 08 53 STO 05 54 RCL 09 55 STO 06 56 RCL 10 57 STO 07 58 RCL 20 59 RCL 21 60 XEQ 02 61 RCL 05 62 RCL 08 63 * 64 RCL 06 65 RCL 09 |
66
* 67 RCL 07 68 RCL 10 69 * 70 + 71 + 72 STO 00 73 ACOS 74 STO 04 75 RCL 01 76 ST/ 05 77 ST/ 08 78 RCL 02 79 ST/ 06 80 ST/ 09 81 RCL 03 82 ST/ 07 83 ST/ 10 84 RCL 05 85 X^2 86 RCL 06 87 X^2 88 RCL 07 89 X^2 90 + 91 + 92 STO 11 93 RCL 08 94 X^2 95 RCL 09 96 X^2 97 RCL 10 98 X^2 99 + 100 + 101 X<> 10 102 RCL 07 103 * 104 RCL 06 105 RCL 09 106 * 107 RCL 05 108 RCL 08 109 * 110 + 111 + 112 STO 09 113 RCL 00 114 * 115 ST+ X 116 RCL 10 117 - 118 RCL 11 119 RCL 00 120 X^2 121 * 122 - 123 RCL 11 124 RCL 04 125 SIN 126 STO 08 127 ST/ Z 128 * 129 + 130 RCL 09 |
131 RCL 11 132 RCL 00 133 * 134 - 135 ST+ X 136 X<>Y 137 ENTER 138 SIGN 139 ST* Z 140 * 141 R-P 142 X<>Y 143 2 144 / 145 90 146 STO 00 147 X<>Y 148 X<0? 149 + 150 STO 05 151 XEQ 03 152 STO 06 153 RCL 05 154 RCL 00 155 + 156 XEQ 03 157 STO 07 158 RCL 06 159 X>Y? 160 GTO 00 161 X<> 07 162 STO 06 163 RCL 00 164 ST+ 05 165 LBL 00 166 PI 167 R-D 168 RCL 05 169 X=Y? 170 CLX 171 STO 05 172 CHS 173 1 174 P-R 175 RCL 07 176 RCL 06 177 / 178 X^2 179 STO 09 180 * 181 R-P 182 CLX 183 RCL 04 184 RCL 05 185 - 186 1 187 P-R 188 RCL 09 189 * 190 R-P 191 CLX 192 ENTER 193 LBL 13 194 - 195 360 |
196 MOD 197 PI 198 R-D 199 STO 16 200 X>Y? 201 CLX 202 ST+ X 203 - 204 STO 11 205 STO 04 206 CLX 207 RCL 07 208 CHS 209 RCL 06 210 ST+ Y 211 / 212 STO 08 213 SIGN 214 LASTX 215 - 216 STO 15 217 P-R 218 LASTX 219 / 220 R-P 221 RDN 222 STO 09 223 CLX 224 RCL 15 225 P-R 226 LASTX 227 / 228 R-P 229 X<>Y 230 STO 10 231 LBL 12 232 RCL 16 233 RCL 04 234 X>Y? 235 ACOS 236 RCL 10 237 COS 238 STO 05 239 STO 12 240 RCL 04 241 SIN 242 * 243 STO 14 244 RCL 09 245 COS 246 ST* 05 247 ST* 14 248 RCL 10 249 SIN 250 STO 13 251 * 252 RCL 09 253 SIN 254 ST* 13 255 RCL 12 256 * 257 RCL 04 258 COS 259 ST* 05 260 * |
261 - 262 R-P 263 RCL 05 264 RCL 13 265 + 266 R-P 267 X<> 14 268 X<>Y 269 STO 05 270 SIN 271 X#0? 272 / 273 ASIN 274 STO 12 275 COS 276 X^2 277 RCL 05 278 COS 279 RCL 13 280 ENTER 281 + 282 R^ 283 X=0? 284 SIGN 285 / 286 - 287 STO 13 288 CLX 289 3 290 * 291 4 292 X<>Y 293 - 294 RCL 08 295 * 296 4 297 + 298 * 299 RCL 08 300 * 301 16 302 / 303 RCL 05 304 SIN 305 RCL 13 306 RCL Z 307 * 308 * 309 R-D 310 RCL 05 311 + 312 RCL 12 313 SIN 314 * 315 RCL 08 316 * 317 1 318 R^ 319 - 320 * 321 RCL 11 322 + 323 ENTER 324 X<> 04 |
325 - 326 ABS 327 E-7 328 X<Y? 329 GTO 12 330 2 331 RCL 08 332 ST- Y 333 * 334 RCL 12 335 COS 336 RCL 15 337 / 338 X^2 339 * 340 12 341 RCL Y 342 5 343 * 344 - 345 * 346 64 347 - 348 * 349 256 350 ST- Y 351 / 352 STO 14 353 CLX 354 37 355 * 356 64 357 - 358 * 359 512 360 / 361 4 362 1/X 363 + 364 * 365 RCL 13 366 X^2 367 ST+ X 368 1 369 - 370 RCL 05 371 COS 372 4 373 / 374 * 375 * 376 RCL 13 377 + 378 * 379 RCL 05 380 SIN 381 * 382 RCL 05 383 D-R 384 - 385 RCL 14 386 * 387 RCL 15 388 * |
389 RCL 06 390 * 391 RTN 392 LBL 02 393 1 394 P-R 395 X<>Y 396 RCL 03 397 X^2 398 * 399 STO 10 400 X^2 401 STO 04 402 RDN 403 P-R 404 RCL 01 405 X^2 406 * 407 STO 08 408 X^2 409 ST+ 04 410 X<>Y 411 RCL 02 412 X^2 413 * 414 STO 09 415 X^2 416 RCL 04 417 + 418 SQRT 419 ST/ 08 420 ST/ 09 421 ST/ 10 422 RTN 423 LBL 03 424 ENTER 425 SIN 426 STO 07 427 X^2 428 RCL 10 429 * 430 X<>Y 431 RCL 04 432 - 433 SIN 434 ST* 07 435 X^2 436 RCL 11 437 * 438 + 439 RCL 07 440 RCL 09 441 ST+ X 442 * 443 - 444 SQRT 445 RCL 08 446 X<>Y 447 / 448 RTN 449 LBL 14 450 RCL 17 451 + 452 END |
( 568 bytes /
SIZE 022 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | d ( km ) |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
and
d is the geodesic distance
on the ellipsoid of revolution (
WGS 84 )
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
151.12178 ENTER^
-33.51411
ENTER^
-116.51504
ENTER^
33.21224
XEQ "TGDV" >>>>
D = 12138.65757
km
---Execution time = 119s---
X<>Y d =
12138.68433 km
Notes:
-This version gives the best accuarcy, provided the points are not ( almost
) antipodal.
-With many nearly
antipodal points, the routine stops
and the HP41 displays DATA ERROR
( line 235 )
5°) Minimizing the Sum of 2 Distances
-No one of the programs above works well for nearly antipodal points.
-The following
one uses the golden search to minimize
the sum of 2 geodesic distances:
Let M(L,b) & N(L',b') , "D+D" minimizes the sum D = Dist(M,P) + Dist(P,N)
where P(L",b") with L" = the longitude of the point on a sphere in the middle of the geodesic MN on the sphere.
-The program starts with b" = -90° and +90° and employs
the golden search to find the
minimum D-value.
Data Registers: R00 thru R35: temp
Flags:
/
Subroutine:
"TGD" ( cf
paragraph 2-b )
01
LBL "D+D" 02 STO 26 03 RDN 04 STO 25 05 RDN 06 STO 24 07 X<>Y 08 STO 23 09 R^ 10 X<>Y 11 HMS- 12 HR 13 RCL 26 14 HR 15 COS 16 P-R 17 RCL 24 18 HR 19 COS 20 + 21 R-P 22 CLX |
23
RCL 23 24 HR 25 + 26 HMS 27 STO 27 28 GTO 00 29 LBL 12 30 STO 35 31 RCL 27 32 X<>Y 33 RCL 25 34 RCL 26 35 XEQ "TGD" 36 STO 31 37 RCL 23 38 RCL 24 39 RCL 27 40 RCL 35 41 XEQ "TGD" 42 RCL 31 43 + 44 RTN |
45
LBL 00 46 90 47 ENTER 48 STO 29 49 CHS 50 STO 28 51 - 52 5 53 SQRT 54 1 55 + 56 2 57 / 58 STO 34 59 / 60 RCL 28 61 HR 62 + 63 HMS 64 STO 32 65 XEQ 12 66 STO 33 |
67
LBL 10 68 RCL 32 69 RCL 28 70 HMS- 71 HR 72 RCL 34 73 / 74 RCL 28 75 HR 76 + 77 HMS 78 STO 30 79 XEQ 12 80 STO 31 81 VIEW 31 82 RCL 33 83 X<Y? 84 GTO 02 85 RCL 30 86 X<> 32 87 STO 29 88 RCL 31 |
89
STO 33 90 GTO 04 91 LBL 02 92 RCL 29 93 STO 28 94 RCL 30 95 STO 29 96 LBL 04 97 E-4 99 RCL 28 100 RCL 30 101 HMS- 102 HR 103 ABS 104 X>Y? 105 GTO 10 106 RCL 30 107 RCL 31 108 CLD 109 END |
( 180 bytes /
SIZE 036 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | b" ( ° ' " ) |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
and
b" is the latitude of the "midpoint"
Example1: With (L,b) = (0°,0°) & (L',b') = (179.51°,0°)
0
ENTER^ ENTER^
179.51
ENTER^
0
XEQ "D+D"
>>>> D =
20001.89956 km
X<>Y b" ~ -75°37'
Example2: With (L,b) = (-40°,-40°) & (L',b') = (120°,50°)
40 CHS ENTER^ ENTER^
120
ENTER^
50
XEQ "D+D" >>>>
D = 18095.49451
km
X<>Y b" ~ 24°58'
Notes:
-The HP41 displays the successive approximations.
-The angle b" is not computed accurately: it's not necessary
to get a good precision for the
distance.
-You can press
XEQ 10 to make another
loop, or - for instance - replace
lines 98-99 by a larger number.
-This program is very slow with a true HP41, so a good emulator is not
superfluous !
-With free42,
you get the results almost
instantaneously...
-This program may also be used for very long geodesics when the points
are not almost antipodal,
but when
Andoyer's or Sodano's formulas
give an error of a few meters.
-Since formulas
of order 3 is very accurate when
the distance is about 10000 km,
the sum will remain very accurate too
!
6°) Other Formulae for the Great Elliptic Distance
a) Formula of order 1 + Andoyer's Formula of order 2
-This variant employs Andoyer's formula of order 2 to compute the geodesic distance on WGS84 ellipsoid of revolution,
but the following formula of order 1 to calculate the distances Δ = MN on the great ellipses:
With u = OM / OM = ( x , y , z ) , v = ON / ON = ( x' , y' ,z' ) , W = angle ( OM , ON )
and f = (a-b) / a & f ' = (a-c) / a
Δ
~ a [ W - { (
f y2 + f y'2
+ f ' z2 + f ' z'2
) ( W/2 - (1/4) Sin 2.W ) + (
f y.y' + f ' z.z' ) ( Sin W - W Cos W ) } / Sin2
W ]
-This formula
is an approximation of the integral:
Δ
= §0W
[ R2 + ( dR/dµ )2
] 1/2 dµ
with
R / Sin W = 1 /
( A2 + B2
+ C2 )1/2
where
A = [ x Sin
( W - µ ) + x' Sin µ
] / a
B = [ y Sin ( W - µ
) + y' Sin µ ] / b
C = [ z Sin ( W - µ
) + z' Sin µ ] / c
Data Registers: R00 to R14:
temp
Flags:
/
Subroutines:
/
-Line 36 is a three-byte GTO 03
01
LBL "TGD" 02 DEG 03 HR 04 STO 04 05 RDN 06 HR 07 14.929 08 STO 01 09 + 10 STO 03 11 RDN 12 HR 13 STO 02 14 X<>Y 15 HR 16 ST+ 01 17 6378.172 18 STO 05 19 .07 20 - 21 STO 06 22 21.349686 23 - 24 STO 07 25 XEQ 01 26 STO 14 27 RCL 05 28 RCL 06 29 + 30 2 31 / 32 STO 05 33 STO 06 34 XEQ 01 35 ST- 14 36 GTO 03 |
37
LBL 01 38 RCL 01 39 RCL 02 40 XEQ 02 41 STO 08 42 RCL 11 43 STO 09 44 RCL 12 45 STO 10 46 RCL 03 47 RCL 04 48 XEQ 02 49 RCL 08 50 * 51 RCL 09 52 RCL 11 53 * 54 STO 13 55 + 56 RCL 10 57 RCL 12 58 * 59 STO 08 60 + 61 STO 00 62 RCL 10 63 X^2 64 RCL 12 65 X^2 66 + 67 RCL 05 68 RCL 07 69 - 70 ST* 08 71 STO 10 72 * |
73
RCL 09 74 X^2 75 RCL 11 76 X^2 77 + 78 RCL 05 79 RCL 06 80 - 81 ST* 13 82 * 83 + 84 RCL 00 85 ENTER 86 ACOS 87 D-R 88 STO 11 89 LASTX 90 SIN 91 STO 12 92 / 93 ST* 00 94 - 95 * 96 2 97 / 98 RCL 00 99 RCL 08 100 RCL 13 101 + 102 ST* Y 103 - 104 + 105 RCL 12 106 / 107 RCL 11 108 RCL 05 |
109
ST/ 10 110 * 111 + 112 RTN 113 LBL 02 114 1 115 P-R 116 X<>Y 117 RCL 07 118 X^2 119 * 120 STO 12 121 X^2 122 X<> Z 123 X<>Y 124 P-R 125 RCL 05 126 X^2 127 * 128 STO 13 129 X^2 130 X<>Y 131 RCL 06 132 X^2 133 * 134 STO 11 135 X^2 136 + 137 + 138 SQRT 139 ST/ 11 140 ST/ 12 141 ST/ 13 142 RCL 13 143 RTN 144 LBL 03 |
145
RCL 04 146 RCL 02 147 RCL 03 148 RCL 01 149 - 150 2 151 ST/ 10 152 / 153 COS 154 X^2 155 RDN 156 + 157 2 158 / 159 ST- Y 160 1 161 P-R 162 X^2 163 STO 02 164 RDN 165 X^2 166 STO 01 167 SIGN 168 P-R 169 X^2 170 ST* 01 171 RDN 172 X^2 173 ST* 02 174 RCL Z 175 - 176 * 177 + 178 ST/ 02 179 STO 03 180 SQRT |
181
ASIN 182 D-R 183 RCL 03 184 1 185 RCL 03 186 - 187 ST/ 01 188 ST- 03 189 * 190 SQRT 191 / 192 STO 00 193 CLX 194 RCL 02 195 RCL 01 196 ST- 02 197 + 198 STO 01 199 RCL 03 200 RCL 00 201 ST* 03 202 / 203 7.5 204 * 205 STO 04 206 LASTX 207 - 208 2 209 / 210 RCL 03 211 + 212 * 213 4 214 + 215 RCL 03 216 - |
217
6 218 RCL 00 219 ST/ Y 220 + 221 RCL 02 222 * 223 STO Z 224 - 225 RCL 01 226 * 227 + 228 RCL 02 229 X^2 230 RCL 04 231 * 232 - 233 RCL 10 234 * 235 RCL 01 236 - 237 RCL 02 238 3 239 * 240 RCL 00 241 / 242 - 243 RCL 10 244 * 245 * 246 + 247 RCL 05 248 ST+ X 249 * 250 RCL 14 251 + 252 END |
( 318 bytes /
SIZE 015 )
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D = 12138.65746 km ---Execution time = 25s---
LASTX - d = 12138.68425 km
where d is the geodesic distance on the ellipsoid of revolution ( WGS 84 )
-The exact results are D = 12138.65757 & d = 12138.68433
km ( rounded to 5 decimals
)
Notes:
-The distance is computed by D ~ d + Δ1 - Δ2-It might also be calculated by D ~ d . Δ1/Δ2 ( replace line 35 by ST/ 14 and line 251 by * )
-With example above, the results are the same.
-This program is shorter and slightly faster than the other versions.
-Though the precision is not the best, it's often accurate enough
-However, a formula of order 3 will give a better precision:
b) Formula of order 1 + Andoyer's Formula of order 3
-The same method is used for the great ellipse arc distances, but Andoyer's formula of order 3 is employed to compute the geodesic distance on WGS84 ellipsoid of revolution:
Data Registers: R00 to R14:
temp
Flags:
/
Subroutines:
/
-Line 36 is a three-byte GTO 03
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.929 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 05 19 .07 20 - 21 STO 06 22 21.349686 23 - 24 STO 07 25 XEQ 01 26 STO 04 27 RCL 05 28 RCL 06 29 + 30 2 31 / 32 STO 05 33 STO 06 34 XEQ 01 35 ST- 04 36 GTO 03 37 LBL 01 38 RCL 11 39 RCL 12 40 XEQ 02 41 STO 08 42 RCL 02 43 STO 09 44 RCL 03 45 STO 10 46 RCL 13 47 RCL 14 48 XEQ 02 49 RCL 08 |
50
* 51 RCL 02 52 RCL 09 53 * 54 STO 01 55 + 56 RCL 03 57 RCL 10 58 * 59 STO 08 60 + 61 STO 00 62 RCL 03 63 X^2 64 RCL 10 65 X^2 66 + 67 RCL 05 68 RCL 07 69 - 70 ST* 08 71 STO 10 72 * 73 RCL 02 74 X^2 75 RCL 09 76 X^2 77 + 78 RCL 05 79 STO 09 80 ST/ 10 81 RCL 06 82 - 83 ST* 01 84 * 85 + 86 RCL 00 87 ENTER 88 ACOS 89 D-R 90 ST* 09 91 LASTX 92 SIN 93 STO 02 94 / 95 ST* 00 96 - 97 * 98 2 |
99
/ 100 RCL 00 101 RCL 01 102 RCL 08 103 + 104 ST* Y 105 - 106 + 107 RCL 02 108 / 109 RCL 09 110 + 111 RTN 112 LBL 02 113 1 114 P-R 115 X<>Y 116 RCL 07 117 X^2 118 * 119 STO 03 120 RDN 121 P-R 122 RCL 05 123 X^2 124 * 125 STO 01 126 X^2 127 X<>Y 128 RCL 06 129 X^2 130 * 131 STO 02 132 X^2 133 RCL 03 134 X^2 135 + 136 + 137 SQRT 138 ST/ 01 139 ST/ 02 140 ST/ 03 141 RCL 01 142 RTN 143 LBL 03 144 RCL 12 145 1 146 STO 08 147 P-R |
148 LASTX 149 RCL 10 150 - 151 STO 07 152 / 153 R-P 154 X<> 14 155 RCL 08 156 P-R 157 RCL 07 158 / 159 R-P 160 RDN 161 + 162 2 163 ST/ 10 164 / 165 ST- Y 166 RCL 08 167 P-R 168 X^2 169 STO 02 170 STO T 171 RDN 172 X^2 173 STO 01 174 SIGN 175 P-R 176 X^2 177 ST* 01 178 RDN 179 X^2 180 ST* 02 181 - 182 RCL 11 183 RCL 13 184 - 185 2 186 / 187 COS 188 X^2 189 * 190 - 191 ST/ 02 192 RCL 02 193 RCL 01 194 RCL 08 195 R^ 196 STO 01 |
197 - 198 / 199 ST- 02 200 + 201 X<> 01 202 SQRT 203 ASIN 204 ST+ X 205 D-R 206 STO 00 207 LASTX 208 RCL 08 209 P-R 210 STO 03 211 STO 06 212 RDN 213 STO 11 214 / 215 STO 07 216 ST/ Z 217 X^2 218 ST* 03 219 RCL 08 220 + 221 ENTER 222 R^ 223 ST+ 08 224 ST- Z 225 2 226 / 227 STO 09 228 - 229 RCL 01 230 * 231 - 232 RCL 11 233 X^2 234 1.5 235 ST/ Y 236 FRC 237 - 238 RCL 07 239 / 240 RCL 02 241 * 242 + 243 RCL 02 244 * 245 RCL 06 246 X^2 |
247 RCL 07 248 ST- 03 249 ST+ X 250 / 251 RCL 03 252 4 253 ST/ 08 254 * 255 RCL 06 256 + 257 RCL 07 258 + 259 STO Z 260 - 261 RCL 01 262 * 263 + 264 RCL 03 265 ST+ X 266 STO 11 267 + 268 RCL 01 269 * 270 + 271 RCL 11 272 - 273 RCL 02 274 * 275 RCL 03 276 RCL 06 277 * 278 STO 03 279 RCL 00 280 ST+ X 281 X^2 282 3 283 ST* Z 284 / 285 STO Z 286 + 287 RCL 08 288 + 289 STO 11 290 RCL 01 291 * 292 RCL 11 293 ST+ X 294 - 295 RCL 03 296 ST+ Z |
297 ST+ Z 298 + 299 RCL 01 300 * 301 + 302 RCL 01 303 * 304 - 305 RCL 10 306 * 307 RCL 08 308 RCL 06 309 RCL 07 310 * 311 STO Z 312 - 313 RCL 01 314 * 315 + 316 RCL 02 317 ST* 09 318 RCL 07 319 ST- 09 320 * 321 - 322 RCL 01 323 * 324 + 325 RCL 02 326 RCL 09 327 * 328 - 329 RCL 10 330 * 331 RCL 02 332 RCL 07 333 / 334 - 335 RCL 01 336 - 337 RCL 10 338 * 339 RCL 00 340 ST* Y 341 + 342 RCL 05 343 * 344 RCL 04 345 + 346 END |
( 429 bytes / SIZE
015 )
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D = 12138.65753 km ---Execution time = 30s---
LASTX - d = 12138.68432 km
where d is the geodesic distance on the ellipsoid of revolution ( WGS 84 )
Notes:
-For example, when the difference in the longitudes is 165°, the error can reach about 83 cm instead of 75 cm.
c) Formula of order 2 + Andoyer's Formula of order 3
-A formula of order 2 is used for the great ellipse arc distances and Andoyer's formula of order 3 is employed to compute the geodesic distance on WGS84 ellipsoid of revolution:
m = [ y2 ( 2.f + 3.f2 ) + z2 ( 2.f ' + 3.f '2 ) ] / ( 2 Sin2 W )
With n = [ y'2 ( 2.f + 3.f2 ) + z'2 ( 2.f ' + 3.f '2 ) ] / ( 2 Sin2 W ) [ In fact, 2.f + 3.f2 & 2.f ' + 3.f '2 may be replaced by (a2/b2 - 1)/2 and (a2/c2 - 1)/2 ]
p = [ y.y' ( 2.f + 3.f2 ) + z.z' ( 2.f ' + 3.f '2 ) ] / ( Sin2 W )
Δ / (a.Sin W) ~ W / Sin W + ( p2/2 - m - n ) ( W/Sin W - Cos W ) / 2 + (p/2) ( W Cot W - 1 )
+ ( m2 + n2 ) [ (13/16) ( W/Sin W - Cos W ) + (1/8) Sin2 W Cos W ) ]
+ 3 ( p2/2 ) [ (-1/4) W Sin W+ (3/8) ( W/Sin W - Cos W ) ]
+ m n [ (-7/4) W Sin W + (13/8) ( W/Sin W - Cos W ]
+ p ( m + n ) [ (3/4) Sin4 W + ( Cos W ) { (-13/8) ( W/Sin W - Cos W ) + (3/4) Sin2 W Cos W } ]
Data Registers: R00 to R15: temp
Flags:
/
Subroutines:
/
-Line 36 is a three-byte GTO 03
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.92911 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 05 19 .07 20 - 21 STO 06 22 21.349686 23 - 24 STO 07 25 XEQ 01 26 STO 15 27 RCL 05 28 RCL 06 29 + 30 2 31 / 32 STO 05 33 STO 06 34 XEQ 01 35 ST- 15 36 GTO 03 37 LBL 01 38 RCL 11 39 RCL 12 40 XEQ 02 41 STO 08 42 RCL 02 43 STO 09 44 RCL 03 45 STO 10 46 RCL 13 47 RCL 14 48 XEQ 02 49 RCL 08 50 * 51 RCL 02 52 RCL 09 53 * 54 STO 01 55 + 56 RCL 03 57 RCL 10 58 * 59 STO 08 60 + 61 STO 00 62 RCL 09 63 X^2 64 RCL 05 |
65
RCL 06 66 / 67 X^2 68 1 69 - 70 ST* 01 71 STO 09 72 * 73 RCL 05 74 RCL 07 75 / 76 X^2 77 1 78 - 79 STO 04 80 ST* 08 81 RCL 10 82 X^2 83 * 84 + 85 STO 10 86 RCL 02 87 X^2 88 RCL 09 89 * 90 RCL 03 91 X^2 92 RCL 04 93 * 94 + 95 STO 02 96 RCL 01 97 RCL 08 98 + 99 RCL 00 100 ACOS 101 STO 08 102 SIN 103 STO 03 104 X^2 105 ST+ X 106 ST/ 02 107 ST/ 10 108 / 109 STO 09 110 RCL 08 111 D-R 112 STO 08 113 RCL 03 114 ST* 08 115 / 116 STO Y 117 RCL 00 118 - 119 2 120 / 121 STO 04 122 RCL 09 123 X^2 124 ST+ X 125 STO 01 126 RCL 02 127 - 128 RCL 10 |
129 - 130 * 131 + 132 X<>Y 133 RCL 00 134 * 135 RCL 09 136 ST* Y 137 - 138 + 139 RCL 04 140 3 141 * 142 RCL 08 143 - 144 RCL 01 145 * 146 .75 147 * 148 + 149 RCL 04 150 13 151 * 152 STO 01 153 RCL 08 154 7 155 * 156 - 157 RCL 02 158 * 159 RCL 10 160 * 161 4 162 / 163 + 164 RCL 01 165 RCL 00 166 RCL 03 167 X^2 168 * 169 ST+ 01 170 3 171 * 172 - 173 RCL 00 174 * 175 RCL 03 176 X^2 177 X^2 178 3 179 * 180 - 181 RCL 09 182 * 183 RCL 02 184 RCL 10 185 + 186 * 187 2 188 / 189 - 190 RCL 01 191 RCL 02 192 X^2 |
193 RCL 10 194 X^2 195 + 196 * 197 8 198 / 199 + 200 RCL 03 201 * 202 RCL 05 203 * 204 RTN 205 LBL 02 206 1 207 P-R 208 X<>Y 209 RCL 07 210 X^2 211 * 212 STO 03 213 RDN 214 P-R 215 RCL 05 216 X^2 217 * 218 STO 01 219 X^2 220 X<>Y 221 RCL 06 222 X^2 223 * 224 STO 02 225 X^2 226 RCL 03 227 X^2 228 + 229 + 230 SQRT 231 ST/ 01 232 ST/ 02 233 ST/ 03 234 RCL 01 235 RTN 236 LBL 03 237 RCL 05 238 RCL 07 239 - 240 RCL 05 241 / 242 STO 04 243 RCL 12 244 1 245 STO 08 246 P-R 247 LASTX 248 R^ 249 - 250 STO 07 251 / 252 R-P 253 X<> 14 254 RCL 08 255 P-R 256 RCL 07 |
257 / 258 R-P 259 RDN 260 + 261 2 262 ST/ 04 263 / 264 ST- Y 265 RCL 08 266 P-R 267 X^2 268 STO 02 269 STO T 270 RDN 271 X^2 272 STO 01 273 SIGN 274 P-R 275 X^2 276 ST* 01 277 RDN 278 X^2 279 ST* 02 280 - 281 RCL 11 282 RCL 13 283 - 284 2 285 / 286 COS 287 X^2 288 * 289 - 290 ST/ 02 291 RCL 02 292 RCL 01 293 RCL 08 294 R^ 295 STO 01 296 - 297 / 298 ST- 02 299 + 300 X<> 01 301 SQRT 302 ASIN 303 ST+ X 304 D-R 305 STO 00 306 LASTX 307 RCL 08 308 P-R 309 STO 03 310 STO 06 311 RDN 312 STO 10 313 / 314 STO 07 315 ST/ Z 316 X^2 317 ST* 03 318 RCL 08 319 + |
320 ENTER 321 R^ 322 ST+ 08 323 ST- Z 324 2 325 / 326 STO 09 327 - 328 RCL 01 329 * 330 - 331 RCL 10 332 X^2 333 1.5 334 ST/ Y 335 FRC 336 - 337 RCL 07 338 / 339 RCL 02 340 * 341 + 342 RCL 02 343 * 344 RCL 06 345 X^2 346 RCL 07 347 ST- 03 348 ST+ X 349 / 350 RCL 03 351 4 352 ST/ 08 353 * 354 RCL 06 355 + 356 RCL 07 357 + 358 STO Z 359 - 360 RCL 01 361 * 362 + 363 RCL 03 364 ST+ X 365 STO 10 366 + 367 RCL 01 368 * 369 + 370 RCL 10 371 - 372 RCL 02 373 * 374 RCL 03 375 RCL 06 376 * 377 STO 03 378 RCL 00 379 ST+ X 380 X^2 381 3 382 ST* Z |
383 / 384 STO Z 385 + 386 RCL 08 387 + 388 STO 10 389 RCL 01 390 * 391 RCL 10 392 ST+ X 393 - 394 RCL 03 395 ST+ Z 396 ST+ Z 397 + 398 RCL 01 399 * 400 + 401 RCL 01 402 * 403 - 404 RCL 04 405 * 406 RCL 08 407 RCL 06 408 RCL 07 409 * 410 STO Z 411 - 412 RCL 01 413 * 414 + 415 RCL 02 416 ST* 09 417 RCL 07 418 ST- 09 419 * 420 - 421 RCL 01 422 * 423 + 424 RCL 02 425 RCL 09 426 * 427 - 428 RCL 04 429 * 430 RCL 02 431 RCL 07 432 / 433 - 434 RCL 01 435 - 436 RCL 04 437 * 438 RCL 00 439 ST* Y 440 + 441 RCL 05 442 * 443 RCL 15 444 + 445 END |
( 537 bytes / SIZE
016 )
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D = 12138.65756 km ---Execution time = 38s---
LASTX - d = 12138.68432 km
where d is the geodesic distance on the ellipsoid of revolution ( WGS 84 )
Note:
-Though the formula of order 2 doesn't give a very good precision for the great elliptic distances,
the differences between the great elliptic distances is accurately computed !
7°) Geodesic + Great
Elliptic Distances ( Ellipsoid of Revolution )
-With a triaxial ellipsoid, we can use programs listed above ( cf §1) §2b) §3b) §4) )
-But with an ellipsoid of revolution, a shoter & faster program may also be written.
-The routine hereunder employs Andoyer's formula of order 3 for the geodesic distance
and a formula of order 2 for the great elliptic distance ( cf "Great Elliptic Arc Length for the HP41" )
Data Registers: R00 to R11: temp
Flags: /
Subroutines: /
01
LBL "TGD+" 02 DEG 03 HR 04 STO 01 05 X<> T 06 HMS- 07 HR 08 2 09 / 10 SIN 11 X^2 12 STO 00 13 X<>Y 14 HR 15 1 16 STO 11 17 P-R 18 LASTX 19 298.25722 20 STO 04 21 ST+ 04 22 1/X 23 - 24 STO 05 25 / 26 R-P 27 X<> 01 28 RCL 11 29 P-R 30 RCL 05 31 / 32 R-P 33 RDN 34 + 35 2 |
36
/ 37 ST- Y 38 RCL 11 39 P-R 40 X^2 41 STO 02 42 X<>Y 43 X^2 44 STO 01 45 RDN 46 X<>Y 47 RCL 11 48 P-R 49 X^2 50 ST* 01 51 RDN 52 X^2 53 ST* 02 54 STO Z 55 - 56 RCL 00 57 * 58 + 59 ST/ 02 60 RCL 02 61 RCL 01 62 RCL 11 63 R^ 64 STO 01 65 - 66 / 67 ST- 02 68 + 69 X<> 01 70 SQRT |
71
ASIN 72 ST+ X 73 D-R 74 STO 00 75 LASTX 76 RCL 11 77 P-R 78 STO 03 79 STO 06 80 STO 08 81 RDN 82 STO 05 83 / 84 STO 07 85 ST/ 08 86 X^2 87 ST* 03 88 RCL 11 89 + 90 STO Y 91 RCL 08 92 ST+ 11 93 ST- Z 94 2 95 / 96 STO 09 97 - 98 RCL 01 99 * 100 - 101 RCL 05 102 X^2 103 1.5 104 STO 10 105 ST/ Y |
106 FRC 107 - 108 RCL 07 109 / 110 RCL 02 111 * 112 + 113 RCL 02 114 * 115 RCL 06 116 X^2 117 RCL 07 118 ST- 03 119 ST+ X 120 / 121 RCL 03 122 4 123 ST/ 11 124 * 125 RCL 06 126 + 127 RCL 07 128 + 129 STO 05 130 - 131 RCL 01 132 * 133 RCL 05 134 + 135 RCL 03 136 ST+ X 137 STO 05 138 + 139 RCL 01 140 * |
141 + 142 RCL 05 143 - 144 RCL 02 145 * 146 RCL 03 147 RCL 06 148 * 149 STO 03 150 3 151 * 152 RCL 00 153 X^2 154 ST+ X 155 RCL 10 156 / 157 STO 10 158 + 159 RCL 11 160 + 161 STO 05 162 RCL 01 163 * 164 RCL 05 165 ST+ X 166 - 167 RCL 03 168 ST+ 10 169 ST+ 10 170 + 171 RCL 01 172 * 173 RCL 10 174 + 175 RCL 01 176 * |
177 - 178 RCL 04 179 / 180 RCL 11 181 RCL 06 182 RCL 07 183 * 184 STO Z 185 - 186 RCL 01 187 * 188 + 189 RCL 02 190 ST* 09 191 RCL 07 192 ST- 09 193 * 194 - 195 RCL 01 196 * 197 + 198 RCL 02 199 RCL 09 200 * 201 - 202 RCL 04 203 / 204 RCL 02 205 ST* 06 206 RCL 07 207 / 208 STO 09 209 RCL 01 210 + 211 STO 10 212 - |
213 RCL
08 214 3 215 - 216 4 217 / 218 RCL 01 219 * 220 RCL 09 221 - 222 RCL 01 223 ST* Y 224 + 225 RCL 06 226 2 227 / 228 RCL 09 229 ST* Y 230 - 231 - 232 RCL 04 233 / 234 RCL 10 235 - 236 X<>Y 237 RCL 04 238 ST/ Z 239 / 240 RCL 00 241 ST* Z 242 ST* Y 243 ST+ Z 244 + 245 6378.137 246 ST* Z 247 * 248 END |
( 310 bytes / SIZE
012 )
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | d (km ) |
X | b' ( ° ' " ) | D ( km ) |
Where D = geodesic distance & d = great elliptic
distance
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD+" >>>> D = 12138.68432 km ---Execution time = 14s---
X<>Y d = 12138.68551 km
Notes:
-With the great elliptic distance, the maximum error = 3 cm
-Of course, the precision would be better with the 3rd order formula ( cf "Great Elliptic Arc Length for the HP41" )
8°) Geodesic + Great Elliptic Distances ( Triaxial Ellipsoid + Ellipsoid of Revolution )
-This program computes the geodesic distance & the great elliptic arc distance of the triaxial ellipsoid ( semi-axes: a , b , c )
+ the geodesic distance & the great elliptic arc distance of the corresponding ellipsoid of revolution ( semi-axes (a+b)/2 , c )
Data Registers: R00 to R21: temp
Flags: /
Subroutines: /
-Line 47 is a three-byte GTO 04
01 LBL
"TGD" 02 DEG 03 HR 04 STO 19 05 RDN 06 HR 07 14.92911 08 STO 16 09 + 10 STO 18 11 RDN 12 HR 13 STO 17 14 X<>Y 15 HR 16 ST+ 16 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 XEQ 10 26 STO 20 27 RCL 01 28 RCL 02 29 + 30 2 31 / 32 STO 01 33 STO 02 34 XEQ 10 35 STO 21 36 RCL 01 37 STO 06 38 RCL 03 39 STO 07 40 RCL 19 41 STO 14 42 RCL 17 43 RCL 18 44 RCL 16 45 - 46 XEQ 03 47 GTO 04 48 LBL 10 49 RCL 16 50 RCL 17 51 XEQ 01 52 STO 05 53 RCL 09 54 STO 06 55 RCL 10 56 STO 07 57 RCL 18 58 RCL 19 59 XEQ 01 60 RCL 05 61 - 62 X^2 63 RCL 09 64 RCL 06 65 - |
66
X^2 67 + 68 RCL 10 69 RCL 07 70 - 71 X^2 72 + 73 SQRT 74 2 75 / 76 ASIN 77 STO 04 78 ST+ X 79 1 80 P-R 81 STO 12 82 X<>Y 83 STO 15 84 RCL 01 85 ST/ 05 86 ST/ 08 87 RCL 02 88 ST/ 06 89 ST/ 09 90 RCL 03 91 ST/ 07 92 ST/ 10 93 RCL 08 94 X^2 95 RCL 09 96 X^2 97 RCL 10 98 X^2 99 + 100 + 101 STO 13 102 RCL 05 103 X^2 104 RCL 06 105 X^2 106 RCL 07 107 X^2 108 + 109 + 110 STO 14 111 - 112 RCL 15 113 * 114 RCL 05 115 RCL 08 116 * 117 RCL 06 118 RCL 09 119 * 120 + 121 RCL 07 122 RCL 10 123 * 124 + 125 ST+ X 126 STO 09 127 RCL 13 128 RCL 14 129 + 130 RCL 12 |
131 * 132 - 133 ENTER 134 SIGN 135 ST* Z 136 * 137 R-P 138 CLX 139 2 140 / 141 STO 05 142 XEQ 02 143 STO 06 144 RCL 05 145 90 146 + 147 XEQ 02 148 SQRT 149 RCL 15 150 X<>Y 151 / 152 STO 07 153 RCL 15 154 RCL 06 155 SQRT 156 / 157 STO 06 158 RCL 05 159 RCL 04 160 ST+ 04 161 - 162 ST+ 04 163 1 164 P-R 165 RCL 07 166 RCL 06 167 / 168 X^2 169 STO 09 170 * 171 R-P 172 X<>Y 173 STO 14 174 RCL 04 175 1 176 P-R 177 RCL 09 178 * 179 R-P 180 CLX 181 LBL 03 182 2 183 / 184 SIN 185 X^2 186 STO 00 187 CLX 188 RCL 06 189 RCL 07 190 - 191 RCL 06 192 / 193 STO 07 194 CLX 195 SIGN |
196 STO 11 197 P-R 198 LASTX 199 RCL 07 200 - 201 STO 08 202 / 203 R-P 204 X<> 14 205 RCL 11 206 P-R 207 RCL 08 208 / 209 R-P 210 RDN 211 + 212 2 213 ST/ 07 214 / 215 ST- Y 216 RCL 11 217 P-R 218 X^2 219 STO 05 220 X<>Y 221 X^2 222 STO 04 223 RDN 224 X<>Y 225 RCL 11 226 P-R 227 X^2 228 ST* 04 229 RDN 230 X^2 231 ST* 05 232 STO Z 233 - 234 RCL 00 235 * 236 + 237 ST/ 05 238 RCL 05 239 RCL 04 240 RCL 11 241 R^ 242 STO 04 243 - 244 / 245 ST- 05 246 + 247 X<> 04 248 SQRT 249 ASIN 250 ST+ X 251 D-R 252 STO 00 253 LASTX 254 RCL 11 255 P-R 256 STO 13 257 STO 09 258 RDN 259 STO 08 260 / |
261 STO 10 262 ST/ Z 263 X^2 264 ST* 13 265 RCL 11 266 + 267 ENTER 268 R^ 269 ST+ 11 270 ST- Z 271 2 272 / 273 STO 12 274 - 275 RCL 04 276 * 277 - 278 RCL 08 279 X^2 280 1.5 281 ST/ Y 282 FRC 283 - 284 RCL 10 285 / 286 RCL 05 287 * 288 + 289 RCL 05 290 * 291 RCL 09 292 X^2 293 RCL 10 294 ST- 13 295 ST+ X 296 / 297 RCL 13 298 4 299 ST/ 11 300 * 301 RCL 09 302 + 303 RCL 10 304 + 305 STO Z 306 - 307 RCL 04 308 * 309 + 310 RCL 13 311 ST+ X 312 STO 08 313 + 314 RCL 04 315 * 316 + 317 RCL 08 318 - 319 RCL 05 320 * 321 RCL 09 322 RCL 13 323 * 324 STO 13 325 RCL 00 |
326 ST+ X 327 X^2 328 3 329 ST* Z 330 / 331 STO Z 332 + 333 RCL 11 334 + 335 STO 08 336 RCL 04 337 * 338 RCL 08 339 ST+ X 340 - 341 RCL 13 342 ST+ Z 343 ST+ Z 344 + 345 RCL 04 346 * 347 + 348 RCL 04 349 * 350 - 351 RCL 07 352 * 353 RCL 11 354 RCL 09 355 RCL 10 356 * 357 STO Z 358 - 359 RCL 04 360 * 361 + 362 RCL 05 363 ST* 12 364 RCL 10 365 ST- 12 366 * 367 - 368 RCL 04 369 * 370 + 371 RCL 05 372 RCL 12 373 * 374 - 375 RCL 07 376 * 377 RCL 05 378 RCL 10 379 / 380 - 381 RCL 04 382 - 383 RCL 07 384 * 385 RCL 00 386 ST* Y 387 + 388 RCL 06 389 * 390 RTN |
391 LBL 01 392 1 393 P-R 394 X<>Y 395 RCL 03 396 X^2 397 * 398 STO 10 399 RDN 400 P-R 401 RCL 01 402 X^2 403 * 404 STO Z 405 X^2 406 X<>Y 407 RCL 02 408 X^2 409 * 410 STO 09 411 X^2 412 RCL 10 413 X^2 414 + 415 + 416 SQRT 417 ST/ 09 418 ST/ 10 419 / 420 STO 08 421 RTN 422 LBL 02 423 STO 12 424 RCL 04 425 + 426 SIN 427 ENTER 428 X^2 429 RCL 13 430 * 431 RCL 04 432 RCL 12 433 - 434 SIN 435 ST* Z 436 X^2 437 RCL 14 438 * 439 + 440 X<>Y 441 RCL 09 442 * 443 + 444 X<=0? 445 RCL 06 446 RTN 447 LBL 04 448 ENTER 449 STO 00 450 RCL 21 451 - 452 RCL 20 453 + 454 END |
( 567 bytes / SIZE 022
)
STACK | INPUTS | OUTPUT |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | D2 (km ) |
X | b' ( ° ' " ) | D3 ( km ) |
L |
/ |
d3 (km) |
D2 = geodesic distance ( biaxial ellipsoid ) = R00 & d2 = great elliptic distance ( biaxial ellipsoid ) = R21
Example: Between the Sydney
Observatory ( Long = 151°12'17"8
E , Lat = 33°51'41"1
S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D3 = 12138.65754 km ---Execution time = 72s---
X<>Y D2 = 12138.68432 km = R00
and LASTX = d3 = 12138.65876 km = R20 & RCL 21 = d2 = 12138.68554 km
Notes:
-Andoyer's formula of order 3 is used 3 times in this program:
-Not very fast but less slow than with Vincenty's formula.
9°) Best Program ?
-We can make a shorter & faster program if we don't want to calculate the geodesic distance on the similar ellipsoid of revolution.
-Andoyer's formula of order 3 becomes less complex to compute the great elliptic arc length.
-In the program below, (d - Δ') is calculated like in paragraph 2°)c) ( All these formulas are of order 3 )
Data Registers: R00 to R15: temp
Flags: /
Subroutines: /
01 LBL
"TGD" 02 DEG 03 HR 04 STO 14 05 RDN 06 HR 07 14.92911 08 STO 11 09 + 10 STO 13 11 RDN 12 HR 13 STO 12 14 X<>Y 15 HR 16 ST+ 11 17 6378.172 18 STO 01 19 .07 20 - 21 STO 02 22 21.349686 23 - 24 STO 03 25 RCL 11 26 RCL 12 27 XEQ 01 28 STO 05 29 RCL 09 30 STO 06 31 RCL 10 32 STO 07 33 RCL 13 34 ST- 11 35 RCL 14 36 XEQ 01 37 RCL 05 38 - 39 X^2 40 RCL 09 41 RCL 06 42 - 43 X^2 44 RCL 10 45 RCL 07 46 - 47 X^2 48 + 49 + 50 SQRT 51 2 52 / 53 ASIN 54 STO 04 55 RCL 01 56 ST/ 05 57 ST/ 08 58 RCL 02 59 ST+ 01 60 ST/ 06 61 ST/ 09 |
62
RCL 03 63 ST/ 07 64 ST/ 10 65 RCL 05 66 RCL 08 67 * 68 RCL 06 69 RCL 09 70 * 71 RCL 07 72 RCL 10 73 * 74 + 75 + 76 ST+ X 77 X<> 08 78 X^2 79 RCL 09 80 X^2 81 RCL 10 82 X^2 83 + 84 + 85 STO 10 86 RCL 05 87 X^2 88 RCL 06 89 X^2 90 RCL 07 91 X^2 92 + 93 + 94 STO 00 95 - 96 RCL 04 97 ST+ X 98 STO 07 99 1 100 STO 13 101 P-R 102 STO 02 103 RDN 104 STO 15 105 * 106 RCL 08 107 RCL 00 108 RCL 10 109 + 110 RCL 02 111 * 112 - 113 ENTER 114 SIGN 115 ST* Z 116 * 117 R-P 118 CLX 119 2 120 / 121 STO 05 122 XEQ 02 |
123 STO 06 124 RCL 05 125 90 126 + 127 XEQ 02 128 SQRT 129 X<> 05 130 RCL 04 131 - 132 ST+ 07 133 RCL 13 134 P-R 135 RCL 06 136 SQRT 137 STO 06 138 RCL 05 139 / 140 STO 09 141 * 142 R-P 143 X<>Y 144 ENTER 145 X<> 07 146 RCL 13 147 P-R 148 RCL 09 149 * 150 R-P 151 RDN 152 ST+ 07 153 - 154 ABS 155 STO 09 156 RCL 13 157 P-R 158 X<> 09 159 D-R 160 STO 00 161 RDN 162 STO 04 163 X^2 164 .75 165 / 166 RCL 13 167 - 168 RCL 04 169 * 170 RCL 07 171 COS 172 STO 07 173 * 174 RCL 04 175 RCL 09 176 * 177 STO 10 178 - 179 RCL 07 180 * 181 RCL 09 182 RCL 10 183 * |
184 + 185 RCL 07 186 * 187 RCL 00 188 RCL 10 189 + 190 2 191 / 192 STO Z 193 + 194 RCL 05 195 RCL 06 196 - 197 RCL 05 198 ST+ X 199 / 200 STO T 201 * 202 + 203 RCL 07 204 ST* 04 205 X^2 206 RCL 10 207 * 208 - 209 * 210 2 211 / 212 RCL 04 213 - 214 RCL 00 215 - 216 * 217 RCL 00 218 + 219 RCL 06 220 / 221 ST* 15 222 GTO 03 223 LBL 01 224 1 225 P-R 226 X<>Y 227 RCL 03 228 X^2 229 * 230 STO 10 231 RDN 232 P-R 233 RCL 01 234 X^2 235 * 236 STO Z 237 X^2 238 X<>Y 239 RCL 02 240 X^2 241 * 242 STO 09 243 X^2 244 RCL 10 |
245 X^2 246 + 247 + 248 SQRT 249 ST/ 09 250 ST/ 10 251 / 252 STO 08 253 RTN 254 LBL 02 255 STO 09 256 RCL 04 257 + 258 SIN 259 ENTER 260 X^2 261 RCL 10 262 * 263 RCL 04 264 RCL 09 265 - 266 SIN 267 ST* Z 268 X^2 269 RCL 00 270 * 271 + 272 X<>Y 273 RCL 08 274 * 275 + 276 X<=0? 277 RCL 06 278 RTN 279 LBL 03 280 RCL 12 281 RCL 14 282 + 283 2 284 ST/ 01 285 ST/ 11 286 / 287 ST- 14 288 RCL 13 289 P-R 290 X^2 291 STO 05 292 X<>Y 293 X^2 294 X<> 14 295 RCL 13 296 P-R 297 X^2 298 ST* 14 299 RDN 300 X^2 301 ST* 05 302 STO Z 303 - 304 RCL 11 305 SIN |
306 X^2 307 * 308 + 309 ST/ 05 310 RCL 05 311 RCL 14 312 RCL 13 313 R^ 314 STO 14 315 - 316 / 317 ST- 05 318 + 319 STO 04 320 ST- 13 321 X<> 14 322 SQRT 323 ASIN 324 ST+ X 325 D-R 326 STO 00 327 LASTX 328 1 329 P-R 330 STO 07 331 STO 09 332 STO 12 333 RDN 334 / 335 STO 06 336 ST/ 12 337 X^2 338 ST* 09 339 3 340 ST* 04 341 - 342 RCL 12 343 ST+ X 344 + 345 RCL 05 346 * 347 RCL 14 348 RCL 13 349 - 350 ST+ X 351 STO 10 352 ST+ X 353 RCL 06 354 / 355 - 356 RCL 09 357 RCL 10 358 * 359 + 360 RCL 04 361 ST+ 10 362 RCL 07 363 ST* 09 364 * 365 - 366 RCL 06 |
367 ST* 07 368 RCL 10 369 * 370 + 371 RCL 05 372 * 373 RCL 07 374 RCL 10 375 * 376 RCL 12 377 RCL 14 378 * 379 - 380 RCL 00 381 ST+ X 382 X^2 383 3 384 / 385 RCL 13 386 ST* 00 387 ST- 10 388 ST- 10 389 * 390 - 391 RCL 04 392 2 393 - 394 RCL 09 395 * 396 + 397 RCL 10 398 - 399 RCL 14 400 ST* 07 401 ST- 07 402 * 403 + 404 RCL 01 405 RCL 03 406 - 407 RCL 01 408 ST* 00 409 ST+ X 410 / 411 STO Z 412 * 413 RCL 06 414 ENTER 415 1/X 416 - 417 RCL 05 418 * 419 + 420 RCL 07 421 + 422 * 423 * 424 RCL 00 425 * 426 RCL 15 427 + 428 END |
( 529 bytes / SIZE 016 )
STACK | INPUTS | OUTPUTS |
T | L ( ° ' " ) | / |
Z | b ( ° ' " ) | / |
Y | L' ( ° ' " ) | / |
X | b' ( ° ' " ) | D ( km ) |
Where D is the geodesic distance on the triaxial ellipsoid
Example: Calculate the geodesic distance
between the Sydney Observatory
( Long = 151°12'17"8 E , Lat
= 33°51'41"1 S )
and the Palomar Observatory
( Long = 116°51'50"4 W ,
Lat = 33°21'22"4 N )
-33.51411 ENTER^
-116.51504 ENTER^
33.21224 XEQ "TGD" >>>> D = 12138.65755 km ---Execution time = 30s---
LASTX = R15 = 12138.65875 km = great elliptic arc distance
Note:
-This program also works well if D is small.
Remark:
-The values of a & b that are used in all these programs are those given by WGS84.
-IERS2003 suggests other numbers: mean equatorial radius = 6378.13661 km & flattening = 1/298.256421 so, polar radius = 6356.751868 km
-For the triaxial ellipsoid, recent evaluations suggest: equatorial flattening = 1/91026
-So it yields::
a = 6378.171645 km
b = 6378.101575 km
c = 6356.751868 km
References:
[1] Paul D. Thomas - "Spheroidal Geodesics, Reference Systems & Local Geometry" - US Naval Oceanographic Office.[2] Richard H. Rapp - "Geometric Geodesy, Part II - The Ohio State University
[3] Emanuel M. Sodano & Thelma A. Robinson - "Direct and Inverse Solutions of Geodesics" - Army Map Service, Technical Report n°7
[4] Paul D. Thomas - "MATHEMATICAL MODELS FOR NAVIGATION SYSTEMS" -
-Many thanks to Professor Richard H. Rapp who sent me reference [3] !