Geometric Geodesy B (2010)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 212

Z

GEOMETRIC
N

λ
GEODESY
ich

b P

enw

PART B Q •
Gre

O•
a φ a
H•
equator

R.E. DEAKIN and M.N. HUNTER


School of Mathematical and Geospatial Sciences
RMIT University
Melbourne, AUSTRALIA
January 2010
RMIT University Geospatial Science

FOREWORD

These notes are the second part of an introduction to ellipsoidal geometry related to
geodesy. They are mainly concerned with the computation of distance and direction
between points on a reference ellipsoid. The Earth's terrestrial surface is highly irregular
and unsuitable for any mathematical computations, instead an ellipsoid – a surface of
revolution created by rotating an ellipse about its minor axis – is adopted and points on
the Earth's surface are projected onto the ellipsoid, via a normal to the ellipsoid. All
computations are made using these projected points on this reference ellipsoid.

These notes are intended for undergraduate students studying courses in surveying,
geodesy and map projections. The derivations of equations given herein are detailed, and
in some cases elementary, but they do convey the vital connection between geodesy and
the mathematics taught to undergraduate students.

These notes are a collection of papers written by the authors on the topic of computation
of distance and azimuth between points on the reference ellipsoid. There are five lines or
curves of interest in geodesy: the geodesic which is the curve of shortest length; the normal
section curve; the curve of alignment; the great elliptic arc; and the loxodrome. The most
important is of course the geodesic since it is the shortest distance between two points, but
the other curves have their uses in navigation (the loxodrome) and in field surveying
(normal section and curve of alignment).

The methods of computation outlined in these papers have been developed with the
computer in mind – perhaps with the exception of F. W. Bessel's paper of 1826 – and most
have MATLAB functions that demonstrate the application of the methods.

There is a certain amount of repetition in the papers as they are separate documents
intended to give the reader an overview of the particular geodetic problem and then a
detailed solution with computer examples of algorithms. So the student will see repeated
treatments of the ellipsoid and associated formula as well as various solutions of the direct
and inverse problems of geodesy. But, there may be something useful within the detail for
the interested reader.

i
RMIT University Geospatial Science

TABLE OF CONTENTS

pages
1. THE CALCULATION OF LONGITUDE AND LATITUDE
FROM GEODETIC MEASUREMENTS 11

This is an English translation of Über die Berechnung der


geographischen Längen und Brieten aus geodätischen
Vermessungen, Astronomicische Nachrichten (Astronomical
Notes) 4(86), 241-254, 1826 by F. W. Bessel. This paper could be
regarded as the first practical (and modern) treatment of
computation using the geodesic. Bessel's method, with slight
variation is still used today.

2. GEODESICS ON AN ELLIPSOID – BESSEL'S METHOD 66

This paper gives a detailed derivation of equations for the


solution of the direct and inverses problems on the ellipsoid.
Bessel's method as presented here is slightly different from the
original but leads to Rainsford's equations and Vincenty's
modifications. Vincenty's equations are commonly used for
geodesic computation.

3. GEODESICS ON AN ELLIPSOID – PITTMAN'S METHOD 19

An alternative to Bessel's method (Vincenty's equations) that uses


recurrence relationships to solve the direct and inverse problems.
These methods are unusual but they give extremely good
accuracies over any length of line anywhere on the ellipsoid.

ii
RMIT University Geospatial Science

TABLE OF CONTENTS (continued)

pages
4. THE NORMAL SECTION CURVE ON AN ELLIPSOID 53

5. THE CURVE OF ALIGNMENT ON AN ELLIPSOID 20

6. THE GREAT ELLIPTIC ARC ON AN ELLIPSOID 19

7. THE LOXODROME ON AN ELLIPSOID 20

iii
The calculation of longitude and latitude from geodesic measurements∗
F. W. Bessel
Königsberg Observatory

(Originally published: October 1825; translated: August 13, 2009)


arXiv:0908.1824v1 [physics.comp-ph] 13 Aug 2009

1. INTRODUCTION the radius of the circle of latitude be r, and the meridional


radius of curvature by R; then we find3
Consider a geodesic line between two points A and B on
dr
the surface of the Earth. Given the position of A, the length of ds cos α = −R dφ = ,
the line and its azimuth at A, we wish to determine the posi- sin φ (1)
tion of B and the azimuth of the line there. This problem oc- ds sin α = −r dw,
curs so frequently that I undertook to construct tables to sim-
which gives
plify the computation. In order to explain the method clearly, I
start by deriving the fundamental properties of geodesic lines
p
R2 dφ2 + r2 dw2 .
ds =
on a spheroid of revolution. Even though aspects of this p
derivation may already be well known, the benefit of having If we write p for dφ/dw and U for R2 p2 + r2 , this becomes
the entire development presented together outweighs the cost
of repeating it.1 ds = U dw.
The distance along the curve between the two points A and B
is therefore
2. THE CHARACTERISTIC EQUATION FOR A GEODESIC Z
s = U dw,
Take two points A and B on the surface on a spheroid2
of revolution joined by some specified curve. Consider two where the integration is from A to B. If the curve is the
neighboring points on the curve with latitudes φ and φ + dφ geodesic or shortest path, then the relation between φ and w
and longitudes relative to A of w and w + dw (measuring east must be such that the integral is a minimum. If we perturb this
positive). Let the distance between them be ds, the azimuth of relation so that φ is replaced by φ + z where z is an arbitrary
line directed toward A be α (measured clockwise from north), function of w which vanishes at the end points (because these
points lie on both curves), then the perturbed length,
Z
∗ This is an English translation of Über die Berechnung der geographischen
s′ = U ′ dw,
Längen und Breiten aus geodätischen Vermessungen, Astronomische Nach-
richten 4(86), 241–254 (1826), doi:10.1002/asna.18260041601. The paper must be larger than s for all z.
also appears in Abhandlungen von Friedrich Wilhelm Bessel, Vol. 3, pp. 5– Expanding U (φ, p) in a Taylor series, we obtain4
14 (W. Engelmann, Leipzig, 1876). The translation has been prepared and
edited by Charles F. F. Karney [email protected] and Rodney E. Deakin ∂U ∂U dz
[email protected], with the assistance of Max Hunter and Stephan U′ = U + z+ + ...
∂φ ∂p dw
Brunner. The mathematical notation has been updated to conform to cur-
rent conventions and, in a few places, the equations have been rearranged and therefore we have
for clarity. Several errors have been corrected, a figure has been included, Z  
and the tables have been recomputed. A transcription of the original paper ∂U ∂U dz
with the updated mathematical notation and with the corrections is available
s′ = s + z+ dw + . . . ,
∂φ ∂p dw
at arXiv:0908.1823. A contemporary, but partial, translation into English ap-
peared in Quart. Jour. Roy. Inst. 21(41), 138–152 (1826). where we have explicitly included terms only up to first order
1 In Secs. 2–4, Bessel gives a concise summary of the work of several other
in z. For s to be a minimum, we require that
authors, notably, Clairaut, du Séjour, Legendre, and Oriani. Bessel’s con-
Z  
tributions, which start in Sec. 5, consist of his methods for expanding the ∂U ∂U dz
distance and longitude integrals and his compilation of tables to provide a z+ dw + . . . ≥ 0
practical method for computing geodesics. Two sentences have been omit- ∂φ ∂p dw
ted from this translation of the introduction. In one, Bessel refers to two
letters he published earlier in the Astronomische Nachrichten which do not,
however, have a direct bearing on the present work. In the other, he criti-
cizes ”du Séjour’s method,” but without providing details; in any case, such 3 The minus signs appear in (1) because α is the back azimuth, pointing to
criticism is misplaced because du Séjour had died over 30 years earlier and A, while ds advances the geodesic away from A. In this section, Bessel
Bessel does not cite more recent work. assumes an easterly geodesic so that ds/dw > 0. However the final result,
2 “Spheroid” here is used in the sense of a shape approximating a sphere.
Eq. (2), is general.
Sections 2 and 3 treat the case of a rotationally symmetric earth. In Sec. 4, 4 The notation here employs partial derivatives instead of Bessel’s less for-
Bessel specializes to a rotationally symmetric ellipsoid. mal use of differentials.
2

for all z. Since this must also hold if z is replaced by −z ω


N
and since we can take z so small that the first order terms are
bigger that the sum of all the higher order terms (except if the
first order terms vanish), it follows that the condition that s be
90°
minimum is 360° − α
Z   B
∂U ∂U dz
z+ dw = 0. σ
∂φ ∂p dw α′
u
A

RIntegrating the second term by parts to give z(∂U /∂p) − m


M u′
z[d(∂U /∂p)/dw] dw and remembering that z vanishes at
E G
the end points, we obtain F
Z   
∂U d ∂U
z − dw = 0.
∂φ dw ∂p
Figure 1 Spherical triangles on the auxiliary sphere. EAB is the
Since this integral must vanish for arbitrary z, we find5 geodesic, N is the pole; EF G is the equator; and NE, NAF , and
  NBG are meridians.
∂U d ∂U
− =0
∂φ dw ∂p
and equation (2) becomes
or, multiplying by dφ/dw = p,
  cos u′ sin α′ = − cos u sin α. (3)
∂U dφ ∂U dp dp ∂U d ∂U
+ − −p = 0,
∂φ dw ∂p dw dw ∂p dw ∂p This equation relates two sides of a spherical triangle,9 90◦ −
u′ and 90◦ − u, and their opposite angles, 360◦ − α and α′ .
which on integrating with respect to w becomes6 The third side σ and its opposite angle ω will appear in the
following calculations giving elegant expressions for the joint
 
dU
U −p = const. variations of s, u and w. In particular, using the well known
dp
p differential formulas of spherical trigonometry, we find10
Substituting r2 + R2 p2 for U , we obtain7
du = − cos α dσ,
r
p = −r sin α = const., cos u dω = − sin α dσ.
1 + (R2 /r2 )p2
which is the well known characteristic equation of the geo- Substituting these in equations (1) and expressing r in terms
desic. of u gives
If the azimuth of the geodesic at A (in the direction of B) is sin u
α′ and the distance of A from the rotation axis is r′ , we have ds = a dσ,
sin φ
(4)
r′ sin(α′ + 180◦ ) = r sin α, sin u
dw = dω.
or sin φ

r′ sin α′ = −r sin α. (2)


4. THE EQUATIONS FOR A GEODESIC ON AN ELLIPSOID

3. THE AUXILIARY SPHERE I now assume that the meridian is an ellipse with equa-
torial
√ semi-axis a, polar semi-axis b, and eccentricity e =
Let the maximum distance of the spheroid to the rotation a2 − b2 /a.11 The equation for an ellipse expressed in terms
axis be a, so that r and r′ are less than or equal to a; we can
then write8
r′ = a cos u′ , r = a cos u, 9 See the triangle ABN on the “auxiliary sphere” in Fig. 1; Equation (3) is
the sine rule applied to angles A and B of the triangle.
10 Here and in the rest of the paper, the differentials give the movement of
point B along the geodesic defined with point A and α′ held fixed.
11 In Bessel’s time, it was known that the earth could be approximated by an
5 This is the Euler-Lagrange equation of the calculus of variations.
6 oblate ellipsoid, a > b, but the eccentricity had not been determined ac-
This is now known as the Beltrami identity.
7 curately. Therefore, Bessel computes tables which are applicable to oblate
A. C. Clairaut gives a geometric derivation of this result in Mém. de
ellipsoids with a range of eccentricities. However, the series expansions
l’Acad. Roy. des Sciences de Paris, 1733, 406–416 (1735). The equation
that Bessel obtains, (11) and (12), can also to applied to prolate ellipsoids,
also follows from conservation of angular momentum for a mass sliding
a < b, by allowing e2 < 0.
without friction on a spheroid of revolution.
8 The quantity u is the reduced or parametric latitude.
3

of cartesian coordinates is Equations (6) then become14


x2 y2 sin u = cos m sin(M + σ),
2
+ 2 = 1.
a b
cos u cos α = − cos m cos(M + σ), (8)
Differentiating this and setting dy/dx = − cot φ, we obtain
cos u sin α = − sin m.
x sin φ y cos φ
− = 0; This gives
a2 b2
eliminating y between these equations then gives cos2 u = 1 − cos2 m sin2 (M + σ),
a cos φ
x= p . and the equation for ds becomes
1 − e2 sin2 φ q
p
The quantity x is the same as r = a cos u, which gives the ds = a 1 − e2 1 + k 2 sin2 (M + σ) dσ, (9)
relationships between φ and u,
√ where
cos φ cos u 1 − e2 e cos m
cos u = p , cos φ = √ , k= √ .
1 − e2 sin2 φ 1 − e2 cos2 u 1 − e2

sin φ 1 − e2 sin u This differential equation may be integrated in terms of the
sin u = p 2
, sin φ = √ ,
1 − e2 sin φ 1 − e2 cos2 u elliptic integrals introduced by Legendre.15 Because the tools
p tan u to compute these special functions are not yet sufficiently ver-
tan u = tan φ 1 − e2 , tan φ = √ , satile,16 we instead develop a series solution which converges
1 − e2
rapidly because e2 is so small. We readily achieve this by de-
and composing the term under the square root into two complex
sin u p factors, namely17
= 1 − e2 cos2 u.
sin φ √
Substituting this into (4), we obtain the differential equations 1 − e2
ds = a dσ×
for a geodesic on an ellipsoid 1−ǫ
q q 
1 − ǫ exp 2i(M + σ) 1 − ǫ exp −2i(M + σ) ,
p
ds = a 1 − e2 cos2 u dσ,
p (5)
dw = 1 − e2 cos2 u dω. where
√ √
1 + k2 − 1 2 ǫ
ǫ= √ , k= .
5. THE DISTANCE INTEGRAL 1 + k2 + 1 1−ǫ

To integrate the first of these differential equations, I use Expanding the two factors in the radicals in infinite series and
the three relations between u′ , u, α′ , α and σ,12 multiplying the results gives18

sin u = sin u′ cos σ + cos u′ cos α′ sin σ, 1 − e2 
− cos u cos α = − sin u′ sin σ + cos u′ cos α′ cos σ, ds = a dσ A − 2B cos 2(M + σ)
(6) 1−ǫ
− cos u sin α = cos u′ sin α′ .

− 2C cos 4(M + σ) − 2D cos 6(M + σ) − . . . ,
It is convenient to write these in terms of the auxiliary angles
m and M defined by13
sin u′ = cos m sin M, 14 These are analogs of Eqs. (7) with meridian NAF replaced by NBG.
cos u′ cos α′ = cos m cos M, (7) 15 A. M. Legendre, Exercices du calcul intégral, Vol. 1 (Courcier, Paris,
1811).
cos u′ sin α′ = sin m. 16 Even though good numerical algorithms for elliptic integrals are available,
these usually require linking to an additional library and, for that reason,
computations of geodesics are still usually in terms of a series.
17 The notation has been simplified here compared to Bessel’s original for-
12 Referring to Fig. 1, consider two central cartesian coordinate systems with mulation in which k and ǫ are expressed in terms of E through k = tan E
the xy plane containing the geodesic EAB, and either A or B lying on and ǫ = tan2 12 E. By using ǫ as the expansion parameter and by dividing
the x axis. Equations (6) give the transformation between the coordi- out the factor 1 − ǫ, Bessel has ensured that the terms that he is expanding
nates of N in the two systems, [sin u′ , cos u′ cos α′ , cos u′ sin α′ ] and are invariant under the transformation ǫ → −ǫ, M +σ → π/2−(M +σ).
[sin u, − cos u cos α, − cos u sin α], namely a rotation by σ about the z This symmetry causes half the terms in the expansions in ǫ to vanish.
18 The use of complex exponentials facilitates the series expansions by avoid-
axis.
13 The auxiliary angles m and M are an angle and a side of the spherical ing
√ the need to 1employ awkward trigonometric identities. IfP we write
1·1 2
triangle EAN shown in Fig. 1. Equations (7) are the sine rule on angles E 1 − x = 1 − 2 x − 2·4 x − 1·1·3
2·4·6
x3 − 1·1·3·5
2·4·6·8
x4 − . . . = j aj xj ,
then the coefficient of cos 2l(M + σ) ǫl+2j is a2j for l = 0 and 2aj aj+l
` ´
and F of triangle AEF , the cosine rule on angle F of triangle AEF , and
the sine rule on angles A and E of triangle AN E. for l > 0.
4

where A, B, C, . . . are given by The tables give the logarithms20 of α, β, and γ as a function
 2  2  2 of the argument
1 1·1 1·1·3
A=1+ ǫ2 + ǫ4 + ǫ6 + . . . , e cos m
2 2·4 2·4·6 log k = log √ .
1 1·1 1 3 1·1·3 1·1 5 1 − e2
B = ǫ− ǫ − ǫ
2 2·4 2 2·4·6 2·4 By this choice, the variation of log β and log γ are very close
1·1·3·5 1·1·3 7 to two and four times that of the argument, which simplifies
− ǫ − ...,
2·4·6·8 2·4·6 interpolation into the table.21
1·1 2 1·1·3 1 4 1·1·3·5 1·1 6 We take αs/b as the first approximation of σ, substitute this
C= ǫ − ǫ − ǫ into the second term to obtain a second approximation, with
2·4 2·4·6 2 2·4·6·8 2·4
1·1·3·5·7 1·1·3 8 which we recalculate the second term and add the third. The
− ǫ − ..., convergence of the series is sufficiently fast that, even if the
2·4·6·8·10 2·4·6
1·1·3 3 1·1·3·5 1 5 1·1·3·5·7 1·1 7 argument is 1̄.1 (which is only possible if the flattening of
D= ǫ − ǫ − ǫ 1
the ellipsoid, 1 − b/a, exceeds 128 ), the approximation never
2·4·6 2·4·6·8 2 2·4·6·8·10 2·4
1·1·3·5·7·9 1·1·3 9 needs to be carried further in order to keep the errors in σ
− ǫ − ..., under 0.001′′. The term involving δ does not exceed 0.0005′′
2·4·6·8·10·12 2·4·6
at this value of the argument.
etc.
Integrating the equation for ds starting at σ = 0, we obtain
7. ACCURACY OF THE TABLES
b 
s= Aσ − 21 B cos(2M + σ) sin σ
1−ǫ The values of log α in the table are given to 8 decimal
− 22 C cos(4M + 2σ) sin 2σ places.22 An error of half a unit of the last place results in
− 23 D cos(6M + 3σ) sin 3σ an error of only 0.0005′′ or 0.008 toise over a distance corre-
 sponding to σ = 12◦ 4′ or 700 000 toises.23 Similarly, I retain
− ... . (10) only sufficient digits in the tabulation of log β to ensure that
the error in this term is less than 0.0005′′; for this purpose, I
use 6 digits at the end of the table and fewer digits for smaller
6. SOLVING THE DISTANCE EQUATION
values of the argument. The third term never exceeds 0.17′′ ,
The series (10) gives the distance s between A and B in even at the end of the table; therefore I include only 3 decimal
terms of u′ , α′ , and σ; if, however, s and α′ have been places for log γ. Thus the errors are 0.001′′ for distances up to
measured and u′ is known from the latitude at A, then σ 700 000 toises; even if the distance is of the order of a quarter
is obtained by solving (10). The latitude of B and the az- meridian (i.e., σ = 90◦ ), the error is less than 0.01′′ .
imuth of the geodesic there are found from (8). Equation (10)
can be solved either by reverting the series or by successive 8. AN EXAMPLE
approximation—the latter way is however the simplest if the
tables I have compiled are used. In order to illustrate the use of the tables, I consider the
I write19 results from the great survey by von Müffling.24 Relative to
α
σ = s+ β cos(2M + σ) sin σ + γ cos(4M + 2σ) sin 2σ
b
+ δ cos(6M + 3σ) sin 3σ + . . . , (11)
20 In this paper, log x denotes the common logarithm (base 10) and we use
where colog x = log(1/x). The tables in the original paper contained a number
648 000 1−ǫ of errors of one unit in the last place. These errors do not, for the most
α= , part, affect the results obtained from the tables when rounded to 0.001′′ .
π A
In addition, there were systematic errors in the tabulated values of log β
648 000 2B equivalent to a relative error of order ǫ2 in β which result in discrepancies
β= ,
π A from 1 to 17 units in the last place on the final page (the 6-figure portion)
648 000 C of the tables. In calculations involving logarithms, a bar over a numeral
γ= , indicates that that numeral should be negated, e.g., log 0.02 ≈ 2̄.3 =
π A (−2) + 0.3. In the original paper, logarithms are written modulo 10, e.g.,
648 000 2D log 0.02 ≈ 8.3. The notation “(−)” in these calculations indicates that the
δ= ,
π 3A quantity whose logarithm is being taken is negative.
21 The columns headed ∆ give the first differences of the immediately pre-
etc.
ceding columns and aid in interpolating the data. Bessel would have used
a table of “proportional parts” to compute the interpolated values.
22 Working with 8-figure logarithms provides about 2 bits more precision than
IEEE single precision floating point numbers.
19 23
The units for σ, α, β, . . . are arc seconds. Bessel here adopts a conflict- The toise was a French unit of length. It can be converted to meters by
ing notation for the coefficient α which should not be confused with the 1 toise = 864 ligne, 443.296 ligne = 1 m, or 1 toise ≈ 1.949 m.
azimuth. 24 F. K. F. von Müffling, Astron. Nachr. 2(27), 33–38 (1824).
5

Seeberg (point A), the distance and azimuth to Dunkirk (point Adopting this as the first approximation to the value of σ, we
B) are25 obtain the second by adding the first term in the series (11),
log s = 5.478 303 14, log β = 2.305 94
α′ = 274◦ 21′ 3.18′′ . log cos(2M + σ) = 1̄.999 79(−)
I assume the latitude of the Observatory at Seeberg to be log sin σ = 2̄.963 91
φ′ = 50◦ 56′ 6.7′′ and the ellipsoid parameters to be log b =
6.513 354 64, log e√= 2̄.905 4355.26 1.269 64(−) = −18.61′′.
From tan u′ = 1 − e2 tan φ′ , we find
We now update the value of this term with the second approx-
log tan φ′ = 0.090 626 65 imation of σ = 5◦ 16′ 48.5′′ − 18.6′′ = 5◦ 16′ 29.9′′ and so
p
log 1 − e2 = 1̄.998 590 60 obtain as the third approximation:

log tan u′ = 0.089 217 25; u′ = 50◦ 50′ 39.057′′. log β = 2.305 94
Given u′ and α′ , we can compute M , cos m and sin m from log cos(2M + σ) = 1̄.999 79(−)
equations (7):27 log sin σ = 2̄.963 48
log sin u′ = 1̄.889 543 51 1.269 21(−) = −18.587′′,
log cos u′ = 1̄.800 326 27
log cos α′ = 2̄.880 037 33 log γ = 2̄.394
log sin α′ = 1̄.998 746 62(−) log cos(4M + 2σ) = 1̄.999
log(cos m sin M ) = 1̄.889 543 51 log sin 2σ = 1̄.263
log(cos m cos M ) = 2̄.680 363 60 3̄.656 = +0.005′′.
log sin m = 1̄.799 072 89(−)
Gathering the terms in (11) gives σ = 5◦ 16′ 48.481′′ −
M = 86◦ 27′ 53.949′′; 2M = 172◦ 55′ 47.9′′ 18.587′′ + 0.005′′ = 5◦ 16′ 29.899′′ and so, finally, we de-
log cos m = 1̄.890 370 63 4M = 345◦ 51′ 36′′ . termine α, u and φ from equations (8),
√ 
The argument in the tables, log (e/ 1 − e2 ) cos m , is M + σ = 91◦ 44′ 23.848′′
e log sin(M + σ) = 1̄.999 799 71
log √ = 2̄.906 845
1 − e2

log − cos(M + σ) = 2̄.482 349 32
log cos m = 1̄.890 371 log cos m = 1̄.890 370 63
Argument = 2̄.797 216. log(− sin m) = 1̄.799 072 89

Looking up log α in the tables, and calculating αs/b gives28 log sin u = 1̄.890 170 34
log α = 5.313 998 92 log(cos u cos α) = 2̄.372 719 95
colog b = 7̄.486 645 36 log(cos u sin α) = 1̄.799 072 89
log s = 5.478 303 14 log cot α = 2̄.573 647 06; α = 87◦ 51′ 15.523′′
αs α log cos u = 1̄.799 377 50
log = 4.278 947 42; s = 5◦ 16′ 48.481′′.
b b log tan u = 0.090 792 84
p
colog 1 − e2 = 0.001 409 40

25 Seeberg: 50◦ 56′ N 10◦ 44′ E; Dunkirk: 51◦ 2′ N 2◦ 23′ E. log tan φ = 0.092 202 24; φ = 51◦ 2′ 12.719′′.
26 In present-day units, this is a ≈ 6377 km, flattening f ≈ 1/308.6, s ≈
586 km. In this example, Bessel uses the toise as the unit of length and the In this example, I carried out the trigonometric calculations to
second as the unit of arc. 8 decimals; however the tables of log α, log β, and log γ in
27 Bessel solves 3 equations (7) for 2 unknowns M and m. The redundancy fact allow α and φ to be determined slightly more accurately
serves as a check for the hand calculation and can also improve the accu-
racy of the calculation, for example, in the case where sin m ≈ 1.
than this. If only standard 7-figure logarithm tables are avail-
28 It is necessary to use second differences when interpolating in the table for able, the last digits in the tabulated values of log α, log β, and
log α. The argument, 2̄.797 216, lies q = 0.7216 of the way between log γ may be neglected.
2̄.79 and 2̄.80. Bessel’s central 2nd-order interpolation formula for the last
6 digits of log α gives 401 284 + q(−1941) + 14 q(q − 1)(1853 − 1004 −
1028) = 399 892. For the other table look-ups, linear interpolation using
first differences suffices.
6

9. THE LONGITUDE INTEGRAL From this, we see that neglecting y results in an error of or-
1 8
der e8 or an error in w of 384 e σ. This would not be dis-
We turn now to the determination of the longitude differ- cernible even in the calculation of long geodesics to 10 deci-
ence w by integrating (5), mal places.30
p Thus, for the present purposes, we may take y ≈ 0 enabling
dw = 1 − e2 cos2 u dω. us to tabulate the integral in a way that is valid for all e.

This integral contains two separate constants m and e, which


cannot be combined. Thus it not possible to construct tables to 10. SERIES EXPANSION FOR LONGITUDE
allow a rigorous solution of this problem which are valid for
arbitrary e.29 However, we can achieve our goal by sacrificing Introducing this approximation, we have
strict rigor and by making an approximation which results in
e2 dσ
Z
errors which are inconsequential in our application.
w≈ω− sin m
We start by writing 2
q
3 2
3
1 − 4 e cos2 u
p 
dw = dω − 1 − 1 − e2 cos2 u dω, e2 dσ
Z
=ω− sin m q .
2 3
1 − 4 e + 4 e cos2 m sin2 (M + σ)
3 2 3 2
and substitute in the second term
sin α′ cos u′ If we set
dω = dσ.
cos2 u √3
e cos m
On integrating, we obtain k ′ = p4 ,
1 − 34 e2

1− 1 − e2 cos2 u
Z
′ ′
w = ω − sin α cos u dσ. we can express the integral in the second term as
cos2 u

Z
Let us write q q .
√ 3 3 2 3
1 − 4e 1 + k ′2 sin2 (M + σ)
1 − 1 − e2 cos2 u e2
= (1 + e2 p cos2 u)q (1 + y);
cos2 u 2 Following the same procedure used in expanding the integral
in other words, we set for ds in Sec. 5, we introduce ǫ′ defined by31
√ √ √
2(1 − 1 − e2 cos2 u) 1 + k ′2 − 1 2 ǫ′
1+y = ǫ′ = √ , k′ = ,
e2 cos2 u(1 + e2 p cos2 u)q 1 + k ′2 + 1 1 − ǫ′
1 + 41 e2 cos2 u + 81 e4 cos4 u + 5 6 6
64 e cos u + . . . and separate the integrand into two complex factors,
= !.
1+ qpe2 cos2 u + q(q−1) 2 4
1·2 p e cos u
4 q
(1 − ǫ′ )2 / 1 − 43 e2 dσ
Z 3

+ q(q−1)(q−2) p3 e6 cos6 u + . . .
1·2·3 q q .
3
1 − ǫ′ exp 2i(M + σ) 3 1 − ǫ′ exp −2i(M + σ)
The first three terms in the denominator and in the numerator
are equal, provided that
If we expand these in infinite series, the product becomes32
p= − 34 , q= − 31 ,
2
Z 
which gives p α′ + β ′ cos 2(M + σ) + 2γ ′ cos 4(M + σ)
3
1 − 34 e2

1 + 41 e2 cos2 u + 81 e4 cos4 u + 5 6
64 e cos6 u + . . . + 3δ ′ cos 6(M + σ) + . . . dσ,
1+y =
1 + 14 e2 cos2 u + 81 e4 cos4 u + 7 6
96 e cos6 u + . . .
1 6 6
=1+ 192 e cos u + ...

30 1
For a flattening of 128 , the error in the longitude difference over a distance
equivalent to a quarter meridian, i.e., 10 000 km, is less than 0.000 05′′ .
31 Bessel gives the relationship between k ′ and ǫ′ in terms of E ′ , where k ′ =
29 As a practical matter, it would have been impossible for Bessel to provide tan E ′ and ǫ′ = tan2 12 E ′ .
a complete tabulation of a function of two parameters. He could have tab- 32 There are a series of errors in the original paper leading up to (12). Here
ulated the function for a fixed value of e, which would greatly reduced we assume that the original Eq. (12) defines α′ , β ′ , γ ′ , . . . , which makes
the utility of his method, especially given the uncertainties in the measure- this equation analogous to (11), and correct the preceding equations to be
ments of e. Instead, Bessel manipulates the expression for dw to move consistent.
the dependence on the second parameter into a small term that may be
neglected.
7

where33 and evaluate w by means of the tables.


 2  2  I will continue with the example in Sec. 8 and calculate the

p
1 3 2
1 ′2 1·4 ′4 longitude difference between Dunkirk and Seeberg using this
α = 2 (1 − ǫ ) 1 +
′ ǫ + ǫ + ... ,
3 3·6 prescription. Solving the spherical triangle for ω gives
 

p
1 3 2
1 ′ 1·4 1 ′3 1·4·7 1·4 ′5 log sin σ = 2̄.963 483 83
β = 1 (1 − ǫ ) ′ ǫ + ǫ + ǫ + ... ,
3 3·6 3 3·6·9 3·6
 log(− sin α) = 1̄.999 695 39(−)
1·4 ′2 1·4·7 1 ′4
colog cos u′ = 0.199 673 73
p
γ ′ = 21 3 (1 − ǫ′ )2 ǫ + ǫ
3·6 3·6·9 3
log sin ω = 1̄.162 852 95(−); ω = −8◦ 21′ 57.741′′.

1·4·7·10 1·4 ′6
+ ǫ + ... ,
3·6·9·12 3·6 The argument
 √ p for the last two columns of the tables is
p 1·4·7 ′3 1·4·7·10 1 ′5 log ( 34 e/ 1 − 43 e2 ) cos m , giving
δ ′ = 13 3 (1 − ǫ′ )2 ǫ + ǫ
3·6·9 3·6·9·12 3 √3
e
log p 4 = 2̄.844 022

1·4·7·10·13 1·4 ′7
+ ǫ + ... , 1 − 34 e2
3·6·9·12·15 3·6
log cos m = 1̄.890 371
etc.
Argument = 2̄.734 393.
Integrating from σ = 0 then gives Computing the terms in the series (12) gives
2
e sin m  ′ log α′ = 1̄.698 758
w≈ω− p α σ + β ′ cos(2M + σ) sin σ
3
1 − 34 e2 log(− sin m) = 1̄.799 073
+ γ ′ cos(4M + 2σ) sin 2σ e2
 log p = 3̄.811 575
+ δ ′ cos(6M + 3σ) sin 3σ + . . . . (12)
3
1 − 34 e2
log σ = 4.278 523

11. COMPUTING THE LONGITUDE DIFFERENCE 1.587 929 = +38.719′′,


and
The first two coefficients of this series are given in the 4th
and 5th columns of the tables34 as functions of the argument log β ′ = 1.703
 √3  log(− sin m) = 1̄.799
′ 4e
log k = log p cos m . e2
1 − 34 e2 log p = 3̄.812
1 − 34 e2
3

The convergence is commensurate with the 3 first columns 


log cos(2M + σ) sin σ = 2̄.963(−)
of the tables. We calculate ω using one of the formulas for
spherical triangles (Sec. 3), either35 2̄.277(−) = −0.019′′.
sin σ sin α′ − sin σ sin α sin σ sin m The sum of both terms is +38.700′′, and adding this to ω, we
sin ω = = = , find the longitude difference,
cos u cos u ′ cos u cos u′
or36 w = −8◦ 21′ 19.041′′.

sin 21 (u′ − u)
tan 12 ω = cot 21 (α′ + α) 12. CONCLUSION
cos 12 (u′ + u)
cos 21 (u′ − u) This illustration of the use of these tables shows that the
= cot 21 (α′ − α).
sin 12 (u′ + u) accuracy of the calculation is limited not by the neglect of
terms of high order in the eccentricity, but by the number of
decimal places included. The steps in the calculation are, for
the most part, the same as for a spherical earth; in order to
33 See footnote 18 and set (1 − x)−1/3 = 1 + 31 x + 3·6 1·4 2
x + 1·4·7 x3 + account for the earth’s ellipticity one needs, in addition, only
3·6·9
1·4·7·10 4
x + . . . to solve equation (11) and to evaluate the series (12). Since
3·6·9·12
34 The value of β ′ in the tables includes the factor of 648 000/π necessary to this approach is sufficiently convenient even for routine use,
convert from radians to arc seconds. it is unnecessary to use an approximate method which is valid
35 The first two relations are the sine rule for angle N of triangle ABN of only for small distances.
Fig. 1. The last relation is obtained, for example, by substituting for sin α′
from (7). (The tables are shown on the following pages.)
36 These are Napier’s analogies for angle N of triangle ABN .
8

TABLES for computing geodesics 1.

Arg log α −∆ log β ∆ log γ ∆ log α′ −∆ log β ′ ∆


4̄.4 5.314 425 13 1 3̄.5124 2000 1̄.698 970 0 3̄.035 200
4̄.5 5.314 425 12 0 3̄.7124 2000 1̄.698 970 0 3̄.235 200
4̄.6 5.314 425 12 1 3̄.9124 2000 1̄.698 970 0 3̄.435 200
4̄.7 5.314 425 11 2 2̄.1124 2000 1̄.698 970 0 3̄.635 200
4̄.8 5.314 425 09 3 2̄.3124 2000 1̄.698 970 0 3̄.835 200
4̄.9 5.314 425 06 4 2̄.5124 2000 1̄.698 970 0 2̄.035 200
3̄.0 5.314 425 02 6 2̄.7124 2000 1̄.698 970 0 2̄.235 200
3̄.1 5.314 424 96 10 2̄.9124 2000 1̄.698 970 0 2̄.435 200
3̄.2 5.314 424 86 16 1̄.1124 2000 1̄.698 970 0 2̄.635 200
3̄.3 5.314 424 70 25 1̄.3124 2000 1̄.698 970 0 2̄.835 200
3̄.4 5.314 424 45 40 1̄.5124 2000 1̄.698 970 1 1̄.035 200
3̄.50 5.314 424 05 5 1̄.7124 200 1̄.698 969 0 1̄.235 20
3̄.51 5.314 424 00 6 1̄.7324 200 1̄.698 969 0 1̄.255 20
3̄.52 5.314 423 94 5 1̄.7524 200 1̄.698 969 0 1̄.275 20
3̄.53 5.314 423 89 6 1̄.7724 200 1̄.698 969 0 1̄.295 20
3̄.54 5.314 423 83 6 1̄.7924 200 1̄.698 969 0 1̄.315 20
3̄.55 5.314 423 77 7 1̄.8124 200 1̄.698 969 0 1̄.335 20
3̄.56 5.314 423 70 7 1̄.8324 200 1̄.698 969 0 1̄.355 20
3̄.57 5.314 423 63 7 1̄.8524 200 1̄.698 969 0 1̄.375 20
3̄.58 5.314 423 56 7 1̄.8724 200 1̄.698 969 0 1̄.395 20
3̄.59 5.314 423 49 8 1̄.8924 200 1̄.698 969 0 1̄.415 20
3̄.60 5.314 423 41 8 1̄.9124 200 1̄.698 969 0 1̄.435 20
3̄.61 5.314 423 33 8 1̄.9324 200 1̄.698 969 0 1̄.455 20
3̄.62 5.314 423 25 9 1̄.9524 200 1̄.698 969 0 1̄.475 20
3̄.63 5.314 423 16 10 1̄.9724 200 1̄.698 969 0 1̄.495 20
3̄.64 5.314 423 06 9 1̄.9924 200 1̄.698 969 0 1̄.515 20
3̄.65 5.314 422 97 11 0.0124 200 1̄.698 969 1 1̄.535 20
3̄.66 5.314 422 86 10 0.0324 200 1̄.698 968 0 1̄.555 20
3̄.67 5.314 422 76 11 0.0524 200 1̄.698 968 0 1̄.575 20
3̄.68 5.314 422 65 12 0.0724 200 1̄.698 968 0 1̄.595 20
3̄.69 5.314 422 53 12 0.0924 200 1̄.698 968 0 1̄.615 20
3̄.70 5.314 422 41 13 0.1124 200 1̄.698 968 0 1̄.635 20
3̄.71 5.314 422 28 14 0.1324 200 1̄.698 968 0 1̄.655 20
3̄.72 5.314 422 14 14 0.1524 200 1̄.698 968 0 1̄.675 20
3̄.73 5.314 422 00 15 0.1724 200 1̄.698 968 0 1̄.695 20
3̄.74 5.314 421 85 15 0.1924 200 1̄.698 968 0 1̄.715 20
3̄.75 5.314 421 70 16 0.2124 200 1̄.698 968 0 1̄.735 20
3̄.76 5.314 421 54 17 0.2324 200 1̄.698 968 1 1̄.755 20
3̄.77 5.314 421 37 18 0.2524 200 1̄.698 967 0 1̄.775 20
3̄.78 5.314 421 19 18 0.2724 200 1̄.698 967 0 1̄.795 20
3̄.79 5.314 421 01 20 0.2924 200 1̄.698 967 0 1̄.815 20
3̄.80 5.314 420 81 20 0.3124 200 1̄.698 967 0 1̄.835 20
3̄.81 5.314 420 61 22 0.3324 200 1̄.698 967 0 1̄.855 20
3̄.82 5.314 420 39 22 0.3524 200 1̄.698 967 0 1̄.875 20
3̄.83 5.314 420 17 23 0.3724 200 1̄.698 967 0 1̄.895 20
3̄.84 5.314 419 94 25 0.3924 200 1̄.698 967 1 1̄.915 20
3̄.85 5.314 419 69 25 0.4124 200 1̄.698 966 0 1̄.935 20
3̄.86 5.314 419 44 27 0.4324 200 1̄.698 966 0 1̄.955 20
3̄.87 5.314 419 17 28 0.4524 200 1̄.698 966 0 1̄.975 20
3̄.88 5.314 418 89 30 0.4724 200 1̄.698 966 0 1̄.995 20
3̄.89 5.314 418 59 31 0.4924 200 1̄.698 966 1 0.015 20
3̄.90 5.314 418 28 0.5124 1̄.698 965 0.035
9

TABLES for computing geodesics 2.

Arg log α −∆ log β ∆ log γ ∆ log α′ −∆ log β ′ ∆


3̄.90 5.314 418 28 32 0.512 35 2000 1̄.698 965 0 0.035 20
3̄.91 5.314 417 96 34 0.532 35 2000 1̄.698 965 0 0.055 20
3̄.92 5.314 417 62 35 0.552 35 2000 1̄.698 965 0 0.075 20
3̄.93 5.314 417 27 37 0.572 35 2000 1̄.698 965 0 0.095 20
3̄.94 5.314 416 90 39 0.592 35 2000 1̄.698 965 1 0.115 20
3̄.95 5.314 416 51 41 0.612 35 2000 1̄.698 964 0 0.135 20
3̄.96 5.314 416 10 42 0.632 35 2000 1̄.698 964 0 0.155 20
3̄.97 5.314 415 68 45 0.652 35 2000 1̄.698 964 1 0.175 20
3̄.98 5.314 415 23 47 0.672 35 1999 1̄.698 963 0 0.195 20
3̄.99 5.314 414 76 48 0.692 34 2000 1̄.698 963 0 0.215 20
2̄.00 5.314 414 28 52 0.712 34 2000 1̄.698 963 1 0.235 20
2̄.01 5.314 413 76 53 0.732 34 2000 1̄.698 962 0 0.255 20
2̄.02 5.314 413 23 56 0.752 34 2000 1̄.698 962 0 0.275 20
2̄.03 5.314 412 67 59 0.772 34 2000 1̄.698 962 1 0.295 20
2̄.04 5.314 412 08 61 0.792 34 2000 1̄.698 961 0 0.315 20
2̄.05 5.314 411 47 65 0.812 34 2000 1̄.698 961 1 0.335 20
2̄.06 5.314 410 82 67 0.832 34 2000 1̄.698 960 0 0.355 20
2̄.07 5.314 410 15 71 0.852 34 1999 1̄.698 960 0 0.375 20
2̄.08 5.314 409 44 74 0.872 33 2000 1̄.698 960 1 0.395 20
2̄.09 5.314 408 70 77 0.892 33 2000 1̄.698 959 0 0.415 20
2̄.10 5.314 407 93 81 0.912 33 2000 1̄.698 959 1 0.435 20
2̄.11 5.314 407 12 85 0.932 33 2000 1̄.698 958 1 0.455 20
2̄.12 5.314 406 27 89 0.952 33 2000 1̄.698 957 0 0.475 20
2̄.13 5.314 405 38 93 0.972 33 1999 1̄.698 957 1 0.495 20
2̄.14 5.314 404 45 98 0.992 32 2000 1̄.698 956 0 0.515 20
2̄.15 5.314 403 47 102 1.012 32 2000 1̄.698 956 1 0.535 20
2̄.16 5.314 402 45 107 1.032 32 2000 1̄.698 955 1 0.555 20
2̄.17 5.314 401 38 112 1.052 32 2000 1̄.698 954 1 0.575 20
2̄.18 5.314 400 26 117 1.072 32 1999 1̄.698 953 0 0.595 20
2̄.19 5.314 399 09 123 1.092 31 2000 1̄.698 953 1 0.615 20
2̄.20 5.314 397 86 128 1.112 31 2000 1̄.698 952 1 0.635 20
2̄.21 5.314 396 58 135 1.132 31 2000 1̄.698 951 1 0.655 20
2̄.22 5.314 395 23 141 1.152 31 1999 1̄.698 950 1 0.675 20
2̄.23 5.314 393 82 147 1.172 30 2000 1̄.698 949 1 0.695 20
2̄.24 5.314 392 35 155 1.192 30 2000 1̄.698 948 1 0.715 20
2̄.25 5.314 390 80 162 1.212 30 1999 4̄.207 40 1̄.698 947 1 0.735 20
2̄.26 5.314 389 18 169 1.232 29 2000 4̄.247 40 1̄.698 946 1 0.755 20
2̄.27 5.314 387 49 177 1.252 29 2000 4̄.287 40 1̄.698 945 1 0.775 20
2̄.28 5.314 385 72 186 1.272 29 1999 4̄.327 40 1̄.698 944 2 0.795 20
2̄.29 5.314 383 86 195 1.292 28 2000 4̄.367 40 1̄.698 942 1 0.815 20
2̄.30 5.314 381 91 203 1.312 28 1999 4̄.407 40 1̄.698 941 1 0.835 20
2̄.31 5.314 379 88 213 1.332 27 2000 4̄.447 40 1̄.698 940 2 0.855 20
2̄.32 5.314 377 75 224 1.352 27 2000 4̄.487 40 1̄.698 938 1 0.875 20
2̄.33 5.314 375 51 234 1.372 27 1999 4̄.527 40 1̄.698 937 2 0.895 20
2̄.34 5.314 373 17 244 1.392 26 2000 4̄.567 40 1̄.698 935 1 0.915 20
2̄.35 5.314 370 73 257 1.412 26 1999 4̄.607 40 1̄.698 934 2 0.935 20
2̄.36 5.314 368 16 268 1.432 25 2000 4̄.647 40 1̄.698 932 2 0.955 20
2̄.37 5.314 365 48 281 1.452 25 1999 4̄.687 40 1̄.698 930 2 0.975 20
2̄.38 5.314 362 67 295 1.472 24 1999 4̄.727 40 1̄.698 928 2 0.995 20
2̄.39 5.314 359 72 308 1.492 23 2000 4̄.767 40 1̄.698 926 2 1.015 20
2̄.40 5.314 356 64 1.512 23 4̄.807 1̄.698 924 1.035
10

TABLES for computing geodesics 3.

Arg log α −∆ log β ∆ log γ ∆ log α′ −∆ log β ′ ∆


2̄.40 5.314 356 64 323 1.512 23 1999 4̄.807 40 1̄.698 924 2 1.035 20
2̄.41 5.314 353 41 338 1.532 22 1999 4̄.847 40 1̄.698 922 2 1.055 20
2̄.42 5.314 350 03 353 1.552 21 2000 4̄.887 40 1̄.698 920 2 1.075 20
2̄.43 5.314 346 50 371 1.572 21 1999 4̄.927 40 1̄.698 918 3 1.095 20
2̄.44 5.314 342 79 388 1.592 20 1999 4̄.967 40 1̄.698 915 2 1.115 20
2̄.45 5.314 338 91 406 1.612 19 1999 3̄.007 40 1̄.698 913 3 1.135 20
2̄.46 5.314 334 85 425 1.632 18 2000 3̄.047 40 1̄.698 910 3 1.155 20
2̄.47 5.314 330 60 446 1.652 18 1999 3̄.087 40 1̄.698 907 3 1.175 20
2̄.48 5.314 326 14 466 1.672 17 1999 3̄.127 40 1̄.698 904 3 1.195 20
2̄.49 5.314 321 48 489 1.692 16 1999 3̄.167 40 1̄.698 901 3 1.215 20
2̄.50 5.314 316 59 511 1.712 15 1999 3̄.207 40 1̄.698 898 4 1.235 20
2̄.51 5.314 311 48 535 1.732 14 1999 3̄.247 40 1̄.698 894 3 1.255 20
2̄.52 5.314 306 13 561 1.752 13 1999 3̄.287 40 1̄.698 891 4 1.275 20
2̄.53 5.314 300 52 587 1.772 12 1998 3̄.327 40 1̄.698 887 4 1.295 20
2̄.54 5.314 294 65 615 1.792 10 1999 3̄.367 40 1̄.698 883 4 1.315 20
2̄.55 5.314 288 50 644 1.812 09 1999 3̄.407 40 1̄.698 879 4 1.335 20
2̄.56 5.314 282 06 674 1.832 08 1999 3̄.447 40 1̄.698 875 5 1.355 20
2̄.57 5.314 275 32 705 1.852 07 1998 3̄.487 40 1̄.698 870 5 1.375 20
2̄.58 5.314 268 27 739 1.872 05 1999 3̄.527 40 1̄.698 865 4 1.395 20
2̄.59 5.314 260 88 774 1.892 04 1998 3̄.567 40 1̄.698 861 6 1.415 20
2̄.60 5.314 253 14 810 1.912 02 1998 3̄.607 39 1̄.698 855 5 1.435 20
2̄.61 5.314 245 04 848 1.932 00 1999 3̄.646 40 1̄.698 850 6 1.455 20
2̄.62 5.314 236 56 889 1.951 99 1998 3̄.686 40 1̄.698 844 6 1.475 20
2̄.63 5.314 227 67 930 1.971 97 1998 3̄.726 40 1̄.698 838 6 1.495 20
2̄.64 5.314 218 37 973 1.991 95 1998 3̄.766 40 1̄.698 832 6 1.515 20
2̄.65 5.314 208 64 1020 2.011 93 1998 3̄.806 40 1̄.698 826 7 1.535 20
2̄.66 5.314 198 44 1068 2.031 91 1998 3̄.846 40 1̄.698 819 7 1.555 20
2̄.67 5.314 187 76 1118 2.051 89 1998 3̄.886 40 1̄.698 812 8 1.575 20
2̄.68 5.314 176 58 1170 2.071 87 1997 3̄.926 40 1̄.698 804 7 1.595 20
2̄.69 5.314 164 88 1226 2.091 84 1998 3̄.966 40 1̄.698 797 9 1.615 20
2̄.70 5.314 152 62 1283 2.111 82 1997 2̄.006 40 1̄.698 788 8 1.635 19
2̄.71 5.314 139 79 1344 2.131 79 1998 2̄.046 40 1̄.698 780 9 1.654 20
2̄.72 5.314 126 35 1406 2.151 77 1997 2̄.086 40 1̄.698 771 9 1.674 20
2̄.73 5.314 112 29 1473 2.171 74 1997 2̄.126 40 1̄.698 762 10 1.694 20
2̄.74 5.314 097 56 1543 2.191 71 1997 2̄.166 40 1̄.698 752 11 1.714 20
2̄.75 5.314 082 13 1615 2.211 68 1997 2̄.206 40 1̄.698 741 10 1.734 20
2̄.76 5.314 065 98 1690 2.231 65 1996 2̄.246 40 1̄.698 731 12 1.754 20
2̄.77 5.314 049 08 1771 2.251 61 1997 2̄.286 40 1̄.698 719 11 1.774 20
2̄.78 5.314 031 37 1853 2.271 58 1996 2̄.326 40 1̄.698 708 13 1.794 20
2̄.79 5.314 012 84 1941 2.291 54 1996 2̄.366 39 1̄.698 695 13 1.814 20
2̄.800 5.313 993 43 1004 2.311 50 998 2̄.405 20 1̄.698 682 6 1.834 10
2̄.805 5.313 983 39 1028 2.321 48 998 2̄.425 20 1̄.698 676 7 1.844 10
2̄.810 5.313 973 11 1051 2.331 46 998 2̄.445 20 1̄.698 669 7 1.854 10
2̄.815 5.313 962 60 1076 2.341 44 998 2̄.465 20 1̄.698 662 7 1.864 10
2̄.820 5.313 951 84 1101 2.351 42 998 2̄.485 20 1̄.698 655 8 1.874 10
2̄.825 5.313 940 83 1127 2.361 40 997 2̄.505 20 1̄.698 647 7 1.884 10
2̄.830 5.313 929 56 1152 2.371 37 998 2̄.525 20 1̄.698 640 8 1.894 10
2̄.835 5.313 918 04 1180 2.381 35 998 2̄.545 20 1̄.698 632 8 1.904 10
2̄.840 5.313 906 24 1207 2.391 33 997 2̄.565 20 1̄.698 624 8 1.914 10
2̄.845 5.313 894 17 1234 2.401 30 998 2̄.585 20 1̄.698 616 8 1.924 10
2̄.850 5.313 881 83 2.411 28 2̄.605 1̄.698 608 1.934
11

TABLES for computing geodesics 4.

Arg log α −∆ log β ∆ log γ ∆ log α′ −∆ log β ′ ∆


2̄.850 5.313 881 83 1264 2.411 279 9974 2̄.605 20 1̄.698 608 8 1.934 10
2̄.855 5.313 869 19 1293 2.421 253 9974 2̄.625 20 1̄.698 600 9 1.944 10
2̄.860 5.313 856 26 1323 2.431 227 9974 2̄.645 20 1̄.698 591 9 1.954 10
2̄.865 5.313 843 03 1353 2.441 201 9973 2̄.665 20 1̄.698 582 9 1.964 10
2̄.870 5.313 829 50 1385 2.451 174 9972 2̄.685 20 1̄.698 573 9 1.974 10
2̄.875 5.313 815 65 1417 2.461 146 9972 2̄.705 20 1̄.698 564 10 1.984 10
2̄.880 5.313 801 48 1450 2.471 118 9971 2̄.725 20 1̄.698 554 9 1.994 10
2̄.885 5.313 786 98 1484 2.481 089 9970 2̄.745 20 1̄.698 545 10 2.004 10
2̄.890 5.313 772 14 1518 2.491 059 9970 2̄.765 20 1̄.698 535 10 2.014 9
2̄.895 5.313 756 96 1553 2.501 029 9969 2̄.785 19 1̄.698 525 11 2.023 10
2̄.900 5.313 741 43 1590 2.510 998 9968 2̄.804 20 1̄.698 514 10 2.033 10
2̄.905 5.313 725 53 1626 2.520 966 9968 2̄.824 20 1̄.698 504 11 2.043 10
2̄.910 5.313 709 27 1664 2.530 934 9966 2̄.844 20 1̄.698 493 11 2.053 10
2̄.915 5.313 692 63 1702 2.540 900 9966 2̄.864 20 1̄.698 482 11 2.063 10
2̄.920 5.313 675 61 1742 2.550 866 9965 2̄.884 20 1̄.698 471 12 2.073 10
2̄.925 5.313 658 19 1783 2.560 831 9965 2̄.904 20 1̄.698 459 12 2.083 10
2̄.930 5.313 640 36 1824 2.570 796 9963 2̄.924 20 1̄.698 447 12 2.093 10
2̄.935 5.313 622 12 1866 2.580 759 9963 2̄.944 20 1̄.698 435 12 2.103 10
2̄.940 5.313 603 46 1909 2.590 722 9962 2̄.964 20 1̄.698 423 13 2.113 10
2̄.945 5.313 584 37 1953 2.600 684 9961 2̄.984 20 1̄.698 410 13 2.123 10
2̄.950 5.313 564 84 1999 2.610 645 9960 1̄.004 20 1̄.698 397 13 2.133 10
2̄.955 5.313 544 85 2045 2.620 605 9959 1̄.024 20 1̄.698 384 14 2.143 10
2̄.960 5.313 524 40 2093 2.630 564 9958 1̄.044 20 1̄.698 370 14 2.153 10
2̄.965 5.313 503 47 2141 2.640 522 9957 1̄.064 19 1̄.698 356 14 2.163 10
2̄.970 5.313 482 06 2191 2.650 479 9956 1̄.083 20 1̄.698 342 15 2.173 10
2̄.975 5.313 460 15 2241 2.660 435 9956 1̄.103 20 1̄.698 327 15 2.183 10
2̄.980 5.313 437 74 2293 2.670 391 9954 1̄.123 20 1̄.698 312 15 2.193 10
2̄.985 5.313 414 81 2347 2.680 345 9953 1̄.143 20 1̄.698 297 16 2.203 9
2̄.990 5.313 391 34 2400 2.690 298 9952 1̄.163 20 1̄.698 281 15 2.212 10
2̄.995 5.313 367 34 2457 2.700 250 9951 1̄.183 20 1̄.698 266 17 2.222 10
1̄.000 5.313 342 77 2513 2.710 201 9950 1̄.203 20 1̄.698 249 17 2.232 10
1̄.005 5.313 317 64 2571 2.720 151 9948 1̄.223 20 1̄.698 232 17 2.242 10
1̄.010 5.313 291 93 2631 2.730 099 9948 1̄.243 20 1̄.698 215 17 2.252 10
1̄.015 5.313 265 62 2691 2.740 047 9946 1̄.263 19 1̄.698 198 18 2.262 10
1̄.020 5.313 238 71 2754 2.749 993 9945 1̄.282 20 1̄.698 180 18 2.272 10
1̄.025 5.313 211 17 2818 2.759 938 9943 1̄.302 20 1̄.698 162 19 2.282 10
1̄.030 5.313 182 99 2883 2.769 881 9943 1̄.322 20 1̄.698 143 19 2.292 10
1̄.035 5.313 154 16 2949 2.779 824 9941 1̄.342 20 1̄.698 124 20 2.302 10
1̄.040 5.313 124 67 3018 2.789 765 9939 1̄.362 20 1̄.698 104 20 2.312 10
1̄.045 5.313 094 49 3087 2.799 704 9939 1̄.382 20 1̄.698 084 20 2.322 10
1̄.050 5.313 063 62 3159 2.809 643 9936 1̄.402 20 1̄.698 064 21 2.332 10
1̄.055 5.313 032 03 3232 2.819 579 9936 1̄.422 20 1̄.698 043 22 2.342 9
1̄.060 5.312 999 71 3306 2.829 515 9934 1̄.442 19 1̄.698 021 22 2.351 10
1̄.065 5.312 966 65 3383 2.839 449 9932 1̄.461 20 1̄.697 999 22 2.361 10
1̄.070 5.312 932 82 3460 2.849 381 9931 1̄.481 20 1̄.697 977 23 2.371 10
1̄.075 5.312 898 22 3541 2.859 312 9929 1̄.501 20 1̄.697 954 24 2.381 10
1̄.080 5.312 862 81 3623 2.869 241 9928 1̄.521 20 1̄.697 930 24 2.391 10
1̄.085 5.312 826 58 3706 2.879 169 9926 1̄.541 20 1̄.697 906 25 2.401 10
1̄.090 5.312 789 52 3791 2.889 095 9924 1̄.561 20 1̄.697 881 25 2.411 10
1̄.095 5.312 751 61 3879 2.899 019 9922 1̄.581 19 1̄.697 856 26 2.421 10
1̄.100 5.312 712 82 2.908 941 1̄.600 1̄.697 830 2.431
GEODESICS ON AN ELLIPSOID - BESSEL'S METHOD

R. E. Deakin and M. N. Hunter


School of Mathematical & Geospatial Sciences,
RMIT University,
GPO Box 2476V, MELBOURNE, Australia
email: [email protected]
1st edition: January 2007
This edition with minor amendments: October 2009

ABSTRACT

These notes provide a detailed derivation of the equations for computing the direct and
inverse problems on the ellipsoid. These equations could be called Bessel's method and
have a history dating back to F. W. Bessel's original paper on the topic titled: 'On the
computation of geographical longitude and latitude from geodetic measurements',
published in Astronomische Nachrichten (Astronomical Notes), Band 4 (Volume 4),
Number 86, Speiten 241-254 (Columns 241-254), Altona 1826. The equations developed
here are of a slightly different form than those presented by Bessel, but they lead directly
to equations presented by Rainsford (1955) and Vincenty (1975) and the method of
development closely follows that shown in Geometric Geodesy (Rapp, 1981). An
understanding of the methods introduced in the following pages, in particular the
evaluation of elliptic integrals by series expansion, will give the student an insight into
other geodetic calculations.

INTRODUCTION

The direct and inverse problems on the ellipsoid are fundamental geodetic operations and
can be likened to the equivalent operations of plane surveying; radiations (computing
coordinates of points given bearings and distances radiating from a point of known
coordinates) and joins (computing bearings and distances between points having known
coordinates). In plane surveying, the coordinates are 2-Dimensional (2D) rectangular
coordinates, usually designated East and North and the reference surface is a plane, either
a local horizontal plane or a map projection plane.

Geodesics – Bessel's method 1


In geodesy, the reference surface is an ellipsoid, the coordinates are latitudes and
longitudes, directions are known as azimuths and distances are geodesic arc lengths.
N

n vertex φmax

ia
C

rid
• B

me
•α
αAB desic BA
g eo

Greenwich

al
A
b

rm
• no
r ma

no
φA l O φB

a HA • H a
B
equator
λB
λA

Fig. 1: Geodesic curve on an ellipsoid

The geodesic is a unique curve on the surface of an ellipsoid defining the shortest distance
between two points. A geodesic will cut meridians of an ellipsoid at angles α , known as
azimuths and measured clockwise from north 0º to 360D . Figure 1 shows a geodesic curve
C between two points A (φA, λA ) and B (φB , λB ) on an ellipsoid. φ, λ are latitude and
longitude respectively and an ellipsoid is taken to mean a surface of revolution created by
rotating an ellipse about its minor axis, NS. The geodesic curve C of length s from A to B
has a forward azimuth αAB measured at A and a reverse azimuth αBA measured at B.

The direct problem on an ellipsoid is: given latitude and longitude of A and azimuth αAB
and geodesic distance s, compute the latitude and longitude of B and the reverse azimuth
αBA .

The inverse problem is: given the latitudes and longitudes of A and B, compute the
forward and reverse azimuths αAB , αBA and the geodesic distance s.

Formula for computing geodesic distances and longitude differences between points
connected by geodesic curves are derived from solutions of elliptic integrals and in Bessel's
method, these elliptic integrals are solutions of equations connecting differential elements
on the ellipsoid with corresponding elements on an auxiliary sphere. These integrals do
not have direct solutions but instead are solved by expanding them into trigonometric
series and integrating term-by-term. Hence the equations developed here are series-type

Geodesics – Bessel's method 2


formula truncated at a certain number of terms that give millimetre precision for any
length of line not exceeding 180º in longitude difference.

These formulae were first developed by Bessel (1826) who gave examples of their use using
10-place logarithms. A similar development is given in Handbuch der Vermessungskunde
(Handbook of Geodesy) by Jordan/Eggert/Kneissl, 1958.

The British geodesist Hume Rainsford (1955) presented equations and computational
methods for the direct and inverse problems that were applicable to machine computation
of the mid 20th century. His formulae and iterative method for the inverse case were
similar to Bessel's, although his equations contained different ellipsoid constants and
geodesic curve parameters, but his equations for the direct case, different from Bessel's,
were based on a direct technique given by G.T. McCaw (1932-33) which avoided iteration.
For many years Rainsford's (and McCaw's) equations were the standard method of solving
the direct and inverse problems on the ellipsoid when millimetre precision was required,
even though they involved iteration and lengthy long-hand machine computation. In 1975,
Thaddeus (Tom) Vincenty (1975-76), then working for the Geodetic Survey Squadron of
the US Air Force, presented a set of compact nested equations that could be conveniently
programmed on the then new electronic computers. His method and equations were based
on Rainsford's inverse method combined with techniques developed by Professor Richard
H. Rapp of the Ohio State University. Vincenty's equations for the direct and inverse
problems on the ellipsoid have become a standard method of solution.

Vincenty's method (following on from Rainsford and Bessel) is not the only method of
solving the direct and inverse problems on the ellipsoid. There are other techniques; some
involving elegant solutions to integrals using recurrence relationships, e.g., Pittman (1986)
and others using numerical integration techniques, e.g., Kivioja (1971) and Jank & Kivioja
(1980).

In this paper, we present a development following Rapp (1981) and based on Bessel's
method which yields Rainsford's equations for the inverse problem. We then show how
Vincenty's equations are obtained and how they are used in practice. In addition, certain
ellipsoid relationships are given, the mathematical definition of a geodesic is discussed and
the characteristic equation of a geodesic derived. The characteristic equation of a geodesic
is fundamental to all solutions of the direct and inverse problems on the ellipsoid.

Geodesics – Bessel's method 3


SOME ELLIPSOID RELATIONSHIPS

The size and shape of an ellipsoid is defined by one of three pairs of parameters: (i) a, b
where a and b are the semi-major and semi-minor axes lengths of an ellipsoid respectively,
or (ii) a, f where f is the flattening of an ellipsoid, or (iii) a, e 2 where e 2 is the square of
the first eccentricity of an ellipsoid. The ellipsoid parameters a, b, f , e 2 are related by the
following equations
a −b b
f = = 1− (1)
a a
b = a (1 − f ) (2)

a 2 − b2 b2
e2 = = 1 − = f (2 − f ) (3)
a2 a2
b2 2
1 − e2 = 2
= 1 − f (2 − f ) = (1 − f ) (4)
a
The second eccentricity e ′ of an ellipsoid is also of use and

a 2 − b2 a2 e2 f (2 − f )
e ′2 = 2
= 2
− 1 = 2
= 2 (5)
b b 1 −e (1 − f )
e ′2
e2 = (6)
1 + e ′2
In Figure 1 the normals to the surface at A and B intersect the rotational axis of the
ellipsoid (NS line) at H A and H B making angles φA , φB with the equatorial plane of the
ellipsoid. These are the latitudes of A and B respectively. The longitudes λA , λB are the
angles between the Greenwich meridian plane (a reference plane) and the meridian planes
ONAH A and ONBH B containing the normals through A and B. φ and λ are curvilinear
coordinates and meridians of longitude (curves of constant λ ) and parallels of latitude
(curves of constant φ ) are parametric curves on the ellipsoidal surface.

For a general point P on the surface of the ellipsoid (see Fig. 2), planes containing the
normal to the ellipsoid intersect the surface creating elliptical sections known as normal
sections. Amongst the infinite number of possible normal sections at a point, each having
a certain radius of curvature, two are of interest: (i) the meridian section, containing the
axis of revolution of the ellipsoid and having the least radius of curvature, denoted by ρ ,
and (ii) the prime vertical section, perpendicular to the meridian plane and having the
greatest radius of curvature, denoted by ν .

Geodesics – Bessel's method 4


a (1 − e 2 ) a (1 − e 2 )
ρ= 3 = (7)
(1 − e 2 sin2 φ) 2
W3

a a
ν= 1 = (8)
(1 − e sin φ)
2 2 2
W

W 2 = 1 − e 2 sin2 φ (9)

The centres of the radii of curvature of the prime vertical sections at A and B are at H A
and H B , where H A and H B are the intersections of the normals at A and B and the
rotational axis, and νA = PH A , νB = PH B . The centres of the radii of curvature of the
meridian sections at A and B lie on the normals between P and H A and P and H B .

Alternative equations for the radii of curvature ρ and ν are given by

a2 c
ρ= 3 = (10)
b (1 + e ′2 cos2 φ) 2
V3

a2 c
ν= 1 = (11)
b (1 + e ′2 cos2 φ) 2
V

a2 a
c = = (12)
b 1− f

V 2 = 1 + e ′2 cos2 φ (13)

and c is the polar radius of curvature of the ellipsoid.

The latitude functions W and V are related as follows

V2 V b
W2 = and W = = V (14)
1 + e ′2
1

(1 + e ′ )2 2
a

Points on the ellipsoidal surface have curvilinear coordinates φ, λ and Cartesian


coordinates x,y,z where the x-z plane is the Greenwich meridian plane, the x-y plane is the
equatorial plane and the y-z plane is a meridian plane 90º east of the Greenwich meridian
plane. Cartesian and curvilinear coordinates are related by
x = ν cos φ cos λ
y = ν cos φ cos λ (15)
z = ν (1 − e 2 ) sin φ

Note that ν (1 − e 2 ) is the distance along the normal from a point on the surface to the
point where the normal cuts the equatorial plane.

Geodesics – Bessel's method 5


THE DIFFERENTIAL RECTANGLE ON THE ELLIPSOID

The derivation of equations relating to the geodesic requires an understanding of the


connection between differentially small quantities on the surface of the ellipsoid. These
relationships can be derived from the differential rectangle, with diagonal PQ in Figure 2
which shows P and Q on an ellipsoid, having semi-major axis a, flattening f, separated by
differential changes in latitude dφ and longitude dλ . P and Q are connected by a curve
of length ds making an angle α (the azimuth) with the meridian through P. The
meridians λ and λ + d λ , and the parallels φ and φ + d φ form a differential rectangle on
the surface of the ellipsoid. The differential distances dp along the parallel φ and dm
along the meridian λ are

dp = w d λ = ν cos φ d λ (16)

dm = ρ d φ (17)

where ρ and ν are radii of curvature in the meridian and prime vertical planes
respectively and w = ν cos φ is the perpendicular distance from the rotational axis.


φ +d φ
Q
α • φ
• w
P no parallel α + dα
rm
meridian

al O Q
φ • φ + dφ
ρ dφ

a H α
P ds
equator •
ν cos φ d λ φ
λ λ+ d λ

λ
λ+d λ

Figure 2: Differential rectangle on the ellipsoid

The differential distance ds is given by

( ) ( )
2 2
ds = dp 2 + dm 2 = ν cos φ d λ + ρ d φ (18)

Geodesics – Bessel's method 6


and so
2
ds ⎛d λ ⎞ ds ⎛d φ ⎞
2

= ν 2 cos2 φ ⎜⎜ ⎟⎟⎟ + ρ 2 or = ν 2 cos2 φ + ρ 2 ⎜⎜ ⎟⎟⎟


dφ ⎜⎝d φ ⎠⎟ dλ ⎝d λ ⎠

while
dλ dφ
sin α = ν cos φ and cos α = ρ (19)
ds ds

MATHEMATICAL DEFINITION OF A GEODESIC

C A geodesic can be defined mathematically by considering


δr
curve P concepts associated with space curves and surfaces. A
ce s •

spa

Q space curve may be defined as the locus of the terminal


r points P of a position vector r (t ) defined by a single
z r +δr scalar parameter t,
k r (t ) = x (t ) i + y (t ) j + z (t ) k (20)
i j
x y
i, j, k are fixed unit Cartesian vectors in the directions of
the x,y,z coordinate axes. As the parameter t varies the
Figure 3: Space curve C
terminal point P of the vector sweeps out the space
curve C.

Let s be the arc-length of C measured from some convenient point on C, so that


2 2 2
ds ⎛dx ⎞ ⎛dy ⎞ ⎛dz ⎞ dr dr
= ⎜⎜ ⎟⎟⎟ + ⎜⎜ ⎟⎟⎟ + ⎜⎜ ⎟⎟⎟ or s = ∫ • dt . Hence s is a function of t and x,y,z are
dt ⎝ dt ⎠ ⎝ dt ⎠ ⎝ dt ⎠ dt dt
functions of s. Let Q, a small distance δs along the curve from P, have a position vector
δr
r + δ r . Then δ r = PQ and δ r δs . Both when δs is positive or negative
δs
dr
approximates to a unit vector in the direction of s increasing and is a tangent vector of
ds
unit length denoted by t̂ ; hence

ˆt = dr = dx i + dy j + dz k (21)
ds ds ds ds
Since t̂ is a unit vector then ˆt • ˆt = 1 and differentiating with respect to s leads to
ˆ ˆ
ˆt • dt = 0 from which we deduce that dt is orthogonal to t̂ and write
ds ds
dˆt
= κn
ˆ, κ>0 (22)
ds

Geodesics – Bessel's method 7


dˆt
is called the curvature vector k, n̂ is a unit vector called the principal normal vector,
ds
1
κ the curvature and = ρ is the radius of curvature. The circle through P, tangent to t̂
κ
dˆt
with this radius ρ is called the osculating circle. Also nˆ• = κ ; i.e., n̂ is the unit
ds
vector in the direction of k. Let b̂ be a third unit vector defined by the vector cross
product
ˆ = ˆt × n
b ˆ (23)
ˆ and n
thus ˆt, b ˆ form a right-handed triad. Differentiating equation (23) with respect to s
gives
ˆ d
db dˆt ˆ
dn ˆ ˆ dn
dn ˆ
= (ˆt × n
ˆ) = × nˆ + ˆt × = κn ˆ + ˆt ×
ˆ×n = t×
ds ds ds ds ds ds
then
ˆ
ˆt • db = ˆt • ⎛⎜ˆt × dn
ˆ ⎞⎟ dn
⎟ =
ˆ ˆ ˆ
• (t × t) = 0
ds ⎜
⎝ ds ⎠ ds ⎟

ˆ
db ˆ ˆ
so that is orthogonal to t̂ . But from bˆ•bˆ = 1 it follows that b ˆ • db = 0 so that db is
ds ds ds
dbˆ
orthogonal to b̂ and so is in the plane containing t̂ and n̂ . Since is in the plane of t̂
ds
ˆ
db
and n̂ and is orthogonal to t̂ , it must be parallel to n̂ . The direction of is opposite n̂
ds
ˆ
db
as it must be to ensure the cross product × ˆt is in the direction of b̂ . Hence
ds
ˆ
db
= −τ n
ˆ, τ>0 (24)
ds
1
We call b̂ the unit binormal vector, τ the torsion, and the radius of torsion. t̂ , n̂ and
τ
b̂ form a right-handed set of orthogonal unit vectors along a space curve.

The plane containing t̂ and n̂ is the osculating plane, the plane containing n̂ and b̂ is
the normal plane and the plane containing t̂ and b̂ is the rectifying plane. Figure 4 shows
these orthogonal unit vectors for a space curve.

Geodesics – Bessel's method 8


osculating plane
rectifying
plane normal plane
^
b ^
P t

z r ^
n
k
i j
x y

Figure 4: The tangent t̂ , principal normal n̂ and binormal b̂ to a space curve

ˆ × ˆt and the derivative with respect to s is


ˆ=b
Also n

ˆ d ˆ ˆ
dn ˆ
db ˆ
= (b × t) = ˆ × dt = −τ n
× ˆt + b ˆ × κn
ˆ × ˆt + b ˆ − κˆt
ˆ = τb (25)
ds ds ds ds
Equations (22), (24) and (25) are known as the Frenet-Serret formulae.

dˆt
= κn
ˆ
ds
dbˆ
= −τ n
ˆ (26)
ds
dnˆ ˆ − κˆt
= τb
ds
These formulae, derived independently by the French mathematicians Jean-Frédéric
Frenet (1816–1900) and Joseph Alfred Serret (1819–1885) describe the dynamics of a point
moving along a continuous and differentiable curve in three-dimensional space. Frenet
derived these formulae in his doctoral thesis at the University of Toulouse; the latter part
of which was published as 'Sur quelques propriétés des courbes à double courbure', (Some
properties of curves with double curvature) in the Journal de mathématiques pures et
appliqués (Journal of pure and applied mathematics), Vol. 17, pp.437-447, 1852. Frenet
also explained their use in a paper titled 'Théorèmes sur les courbes gauches' (Theorems on
awkward curves) published in 1853. Serret presented an independent derivation of the
same formulae in 'Sur quelques formules relatives à la théorie des courbes à double
courbure' (Some formulas relating to the theory of curves with double curvature) published
in the J. de Math. Vol. 16, pp.241-254, 1851 (DSB 1971).

Geodesics – Bessel's method 9


A geodesic may be defined in the following manner:

A curve drawn on a surface so that its osculating plane at any point contains the
normal to the surface at the point is a geodesic. It follows that the principal normal
at any point on the curve is the normal to the surface and the geodesic is the shortest
distance between two points on a surface.

osculating
plane normal section
plane

^
t
^
b P Q
• B
S CN
Q' A
C

ξ
^
N ^
n

Figure 5: The osculating plane of a geodesic

To understand that the geodesic is the shortest path on a surface requires the use of
Meusnier's theorem, a fundamental theorem on the nature of surfaces. Jean-Baptiste-
Marie-Charles Meusnier de la Place (1754 - 1793) was a French mathematician who, in a
paper titled Mémoire sur la corbure des surfaces (Memoir on the curvature of surfaces),
read at the Paris Academy of Sciences in 1776 and published in 1785, derived his theorem
on the curvature, at a point of a surface, of plane sections with a common tangent (DSB
1971). His theorem can be stated as:

Between the radius ρ of the osculating circle of a plane slice C and the radius
ρN of the osculating circle of a normal slice C N , where both slices have the
same tangent at P, there exists the relation

ρ = ρN cos ξ

where ξ is the angle between the unit principal normals n̂ and N̂ to curves C
and C N at P.

Geodesics – Bessel's method 10


In Figure 5, an infinitesimal arc PQ of a geodesic coincides with the section of the surface
S by a plane containing t̂ and N̂ where N̂ is a unit vector normal to the surface at P.

This plane is a normal section plane through P and by Meusnier's theorem, the geodesic
arc PQ is the arc of least curvature through P and Q; or the shortest distance on the
surface between two adjacent points P and Q is along the geodesic through the points. In
Figure 5, curve C (the arc APB) will have a smaller radius of curvature at P than curve
C N the normal section arc Q'PQ.

THE CHARACTERISTIC EQUATION OF A GEODESIC USING DIRECTION


COSINES
z
r 3 = r cos γ

2
γ •
r
1• r
β r 2 = r cos β
α

x y
r 1 = r cos α

Figure 6: Direction cosines


The characteristic equation of a geodesic can be derived from relationships between the
direction cosines of the principal normal to a curve and the normal to the surface. In
Figure 6, r = r1 i + r2 j + r3 k is a vector between two points in space having a magnitude
r r r r
r = r12 + r22 + r32 . ˆr = = 1 i + 2 j + 3 k is a unit vector and the scalar components
r r r r
r1 r2 r3
= cos α , = cos β and = cos γ . l = cos α , m = cos β and n = cos γ are known as
r r r
direction cosines and the unit vector can be expressed as ˆr = l i + m j + n k .

From equations (20) and (22) we may write the unit principal normal vector n̂ of a curve
C as

1 d 2 r x ′′ y ′′ z ′′
ˆ=
n 2
= i+ j + k = ρ x ′′ i + ρ y ′′ j + ρ z ′′ k (27)
κ ds κ κ κ

Geodesics – Bessel's method 11


1 dx d 2x
where ρ = . x = ′ ′′
and x = 2 are first and second derivatives with respect to arc
κ ds ds
length respectively and similarly for y ′, z ′, y ′′, z ′′ .

The unit normal N̂ to the ellipsoid surface is Nˆ = N 1 i + N 2 j + N 3 k where N , N , N are


1 2 3
ν ν ν
N1
the Cartesian components of the normal vector PH and ν is the magnitude. = cos α ,
ν
N2 N
= cos β and 3 = cos γ are the direction cosines l, m and n. Note that the direction
ν ν
of the unit normal to the ellipsoid is towards the centre of curvature of normal sections
passing through P.
z

λ
n
ia
erid

P
^ •
Greenwich m

N
ν l
a
rm

O
no

φ y
H•
x equator

Figure 7: The unit normal N̂ to the ellipsoid

The unit normal N̂ to the ellipsoid surface is given by

ˆ = ⎜⎛ −x ⎟⎞ i + ⎛⎜ −y ⎞⎟ j + ⎛⎜ −ν sin φ ⎞⎟⎟ k
N (28)
⎜⎝ ν ⎟⎠ ⎝⎜ ν ⎠⎟ ⎜⎝ ν ⎠⎟

To ensure that the curve C is a geodesic, i.e., the unit principal normal n̂ to the curve
must be coincident with the unit normal N̂ to the surface, the coefficients in equations
(27) and (28) must be equal, thus
−x −y −ν sin φ
= ρ x ′′ ; = ρ y ′′ ; = ρ z ′′
ν ν ν
This leads to

ρ x ′′ ρ y ′′ ρ z ′′
= y = (29)
xν ν ν sin φ
ν

Geodesics – Bessel's method 12


ν ν
From the first two equations of (29) we have ρ x ′′ = ρ y ′′ giving the second-order
x y
differential equation (provided ρν ≠ 0 )

xy ′′ − yx ′′ = 0
d
which can be written as (xy ′ − yx ′) = 0 and so a first integral is
ds
xy ′ − yx ′ = C (30)

where C is an arbitrary constant. Now, from equations (15), x and y are functions of φ
and λ , and the chain rule gives
∂x d φ ∂x d λ
x′ = +
∂φ ds ∂λ ds
(31)
∂y d φ ∂y d λ
y′ = +
∂φ ds ∂λ ds

Differentiating the first two equations of (15) with respect to φ , bearing in mind that ν is
a function of φ gives
∂x dν
= −ν sin φ cos λ + cos φ cos λ
∂φ dφ
ae 2 sin φ cos φ
= −ν sin φ cos λ + cos φ cos λ 3

(1 − e 2 sin2 φ) 2

Using equation (8) and simplifying yields


∂x
= −ρ sin φ cos λ
∂φ

Similarly
∂y dν
= −ν sin φ sin λ + cos φ sin λ = −ρ sin φ sin λ
∂φ dφ
∂x ∂y
Placing these results, together with the derivatives and into equations (31) gives
∂λ ∂λ
dφ dλ
x ′ = −ρ sin φ cos λ − ν cos φ sin λ
ds ds
dφ dλ
y ′ = −ρ sin φ sin λ + ν cos φ cos λ
ds ds
These values of x ′ and y ′ together with x and y from equations (15) substituted into
equation (30) gives

ν 2 cos2 φ =C (32)
ds

Geodesics – Bessel's method 13


which can be re-arranged to give an expression for the differential distance ds

ν 2 cos2 φ
ds = dλ
C
ds is also given by equation (18) and equating the two and simplifying gives the
differential equation of the geodesic (Thomas 1952)

C 2ρ 2d φ 2 + ν 2 cos2 φ (C 2 − ν 2 cos2 φ )d λ 2 = 0 (33)



From equation (19), sin α = ν cos φ and substituting into equation (32) gives the
ds
characteristic equation of the geodesic on the ellipsoid

ν cos φ sin α = C (34)

Equation (34) is also known as Clairaut's equation in honour of the French mathematical
physicist Alexis-Claude Clairaut (1713-1765). In a paper in 1733 titled Détermination
géométrique de la perpendiculaire à la méridienne, tracée par M. Cassini, avec plusieurs
methods d’en tirer la grandeur et la figure de la terre (Geometric determination of the
perpendicular to the meridian, traced by Mr. Cassini, … on the figure of the Earth.)
Clairaut made an elegant study of the geodesics of quadrics of rotation. It included the
property already pointed out by Johann Bernoulli: the osculating plane of the geodesic is
normal to the surface (DSB 1971).

The characteristic equation of a geodesic shows that the geodesic on the ellipsoid has the
intrinsic property that at any point, the product of the radius w of the parallel of latitude
and the sine of the azimuth of the geodesic at that point is a constant. This means that as
w = ν cos φ decreases in higher latitudes, in both the northern and southern hemispheres,
sin α increases until it reaches a maximum or minimum of ±1 , noting that the azimuth of
a geodesic at a point will vary between 0° and 180° if the point is moving along a geodesic
in an easterly direction or between 180° and 360° if the point is moving along a geodesic in
a westerly direction. At the point when sin α = ±1 , which is known as the vertex, w is a
minimum and the latitude φ will be a maximum value φ0 , known as the geodetic latitude
of the vertex. Thus the geodesic oscillates over the surface of the ellipsoid between two
parallels of latitude having a maximum in the northern and southern hemispheres and
crossing the equator at nodes; but as we will demonstrate later, due to the eccentricity of
the ellipsoid the geodesic will not repeat after a complete cycle.

Geodesics – Bessel's method 14


vertex

vertex

• node

node •
• vertex
node •

Figure 8a Figure 8b Figure 8c

Figure 8: A single cycle of a geodesic on the Earth

Figures 8a, 8b and 8c show a single cycle of a geodesic on the Earth. This particular
geodesic reaches maximum latitudes of approximately ±45º and has an azimuth of
approximately 45º as it crosses the equator at longitude 0º.

Figure 9 shows a schematic representation of the oscillation of a geodesic on an ellipsoid.


P is a point on a geodesic that crosses the equator at A, heading in a north-easterly
direction reaching a maximum northerly latitude φmax at the vertex P0 (north), then
descends in a south-easterly direction crossing the equator at B, reaching a maximum
southerly latitude φmin at P0 (south), then ascends in a north-easterly direction crossing
the equator again at A'. This is one complete cycle of the geodesic, but λA′ does not equal
λA due to the eccentricity of the ellipsoid, hence we say that the geodesic curve does not
repeat after a complete cycle.

P0 vertex
φmax •

P
φ •

A B equator A'
• • •
node λ node node A

φmin •
vertex

Figure 9: Schematic representation of the oscillation of a geodesic on an ellipsoid

Geodesics – Bessel's method 15


RELATIONSHIPS BETWEEN PARAMETRIC LATITUDE ψ AND GEODETIC
LATITUDE φ

The development of formulae is simplified if parametric latitude ψ is used rather than


geodetic latitude φ . The connection between the two latitudes can be obtained from the
following relationships.
z
Figure 10 shows a portion of a meridian NPE of an auxiliary circle
N'
ellipsoid having semi-major axis OE = a and semi-
N P'
minor axis ON = b . P is a point on the ellipsoid w

• P
and P ′ is a point on an auxiliary circle centred on O tan
b ge
nt
of radius a. P and P ′ have the same perpendicular

al
rm
no ν
a
distance w from the axis of revolution ON. The
normal to the ellipsoid at P cuts the major axis at O ψ φ M E
a w
an angle φ (the geodetic latitude) and intersects the
H•
rotational axis at H. The distance PH = ν . The
angle P ′OE = ψ is the parametric latitude
Figure 10: Meridian section of ellipsoid
The Cartesian equation of the ellipse and the
w2 z2
auxiliary circle of Figure 10 are + 2 = 1 and w 2 + z 2 = a 2 respectively. Now, since
a2 b
a2
the w-coordinate of P and P ′ are the same then a 2 − 2 z P2 = w P2 = wP2 ′ = a 2 − z P2 ′ which
b
b
leads to z P = z P ′ . Using this relationship
a
w = OM = a cos ψ
(35)
z = MP = b sin ψ
w z
Note that writing equations (35) as = cos ψ and = sin ψ then squaring and adding
a b
w2 z2
gives 2
+ 2 = cos2 ψ + sin 2 ψ = 1 which is the Cartesian equation of an ellipse.
a b

From Figure 10

w = ν cos φ = a cos ψ (36)

and from the third of equations (15) z = ν (1 − e 2 ) sin φ , hence using equations (35) we
may write

Geodesics – Bessel's method 16


w = a cos ψ = ν cos φ
(37)
z = b sin ψ = ν (1 − e 2 ) sin φ

from which the following ratios are obtained


z b
= tan ψ = (1 − e 2 ) tan φ
w a
a 2 − b2 b2 b2
Since e 2 = = 1 − then 1 − e 2
= and we may define parametric latitude ψ by
a2 a2 a2
b 1

tan ψ = tan φ = (1 − e 2 )2 tan φ = (1 − f ) tan φ (38)


a
Alternatively, using equations (36) and (8) we may define the parametric latitude ψ by
cos φ
cos ψ = 1 (39)
(1 − e 2 sin2 φ)
2

or equivalently by
sin ψ
sin φ = 1 (40)
(1 − e 2 cos2 ψ)
2

These three relationships are useful in the derivation of formulae for geodesic distance and
longitude difference that follow.

THE LATITUDES φ0 AND ψ0 OF THE GEODESIC VERTEX


a
Now Clairaut's equation (34) is ν cos φ sin α = constant = C , where ν = 1 .
(1 − e 2 sin2 φ)2
The term ν cos φ will be a minimum (and the latitude φ will be a maximum in the
northern and southern hemispheres) when sin α is a maximum of 1, and this occurs when
α = 90 or 270 . This point is known as the geodesic vertex.

Let ν 0 cos φ0 be this smallest value, then

ν 0 cos φ0 = C = ν cos φ sin α (41)

φ0 is called the maximum geodetic latitude and the value of ψ corresponding to φ0 is


called the maximum parametric latitude and is denoted by ψ0 . Using this correspondence
and equations (36) and (41) gives

a cos ψ0 = ν cos φ sin α = a cos ψ sin α (42)

Geodesics – Bessel's method 17


From this we may define the parametric latitude of the vertex ψ0 as

cos ψ0 = cos ψ sin α (43)

and the azimuth α of the geodesic as

cos2 ψ − cos2 ψ0
cos α = (44)
cos ψ

From equation (43) we see that if the azimuth α of a geodesic is known at a point P
having parametric latitude ψ , the parametric latitude ψ0 of the vertex P0 can be
computed. Conversely, given ψ and ψ0 of points P and P0 the azimuth of the geodesic
between them may be computed from equation (44).

THE ELLIPSOID, THE AUXILIARY SPHERE AND THE DIFFERENTIAL


EQUATIONS

The derivation of Bessel's formulae (or Rainsford's and Vincenty's equations) begins by
developing relationships between the ellipsoid and a sphere. The sphere is an auxiliary
surface and not an approximation of the ellipsoid; its radius therefore is immaterial and
can be taken to be 1 (unit radius).

90°− ψ2 90°− ψ0
N'
N vertex vertex
α = 90° 90°− ψ 1 A = 90°
α2 A2 H
• •
at cir cl
α 1 s •P A1 σ • P' ( gre e)
90°

sic 2 sic 2
P1 ode P'1 ode
• e • e
αE AE
g

• •
node λ1 node E ω
λ 2 equator 1 ω2 equator

ellipsoid
auxiliary
sphere
S

Figure 11a: The geodesic passing through Figure 11b: The great circle passing through
P1 and P2 on the ellipsoid. P'
1 and P'
2 on the auxiliary sphere.

Geodesics – Bessel's method 18


Figure 11a shows a geodesic passing through P1 and P2 on an ellipsoid. The geodesic has
azimuths αE where it crosses the equator (a node), α1 and α2 at P1 and P2 respectively
and reaches a maximum latitude at the vertex where its azimuth is α = 90 . The length
of the geodesic between P1 and P2 is s and the longitudes of P1 and P2 are λ1 and λ2 .
Using equation (43) we may write

cos ψ1 sin α1 = cos ψ2 sin α2 = cos ψ0 (45)

Figure 11b shows P1′ and P2′ on an auxiliary sphere (of unit radius) where latitudes on
this sphere are defined to be equal to parametric latitudes on the ellipsoid. The geodesic, a
great circle on a sphere, passing through P1′ and P2′ has azimuths AE at the equator E, A1
and A2 at P1′ and P2′ respectively and A = 90 at the vertex H. The length of the great
circle between P1′ and P2′ is σ and the longitudes of P1′ and P2′ are ω1 and ω2 . Again,
using equation (43), which holds for all geodesics (or great circles on auxiliary spheres) we
may write

cos ψ1 sin A1 = cos ψ2 sin A2 = cos ψ0 (46)

Now, since parametric latitudes are defined to be equal on the auxiliary sphere and the
ellipsoid, equations (45) and (46) show that on these two surfaces A = α , i.e., azimuths of
great circles on the auxiliary sphere are equal to azimuths of geodesics on the ellipsoid.

Now, consider the differential rectangle on the ellipsoid and sphere shown in Figures 12a
and 12b below
α + dα α + dα

• φ + dφ • ψ+ d ψ
ρ dφ

α α

ds dσ
• •
ν cos φ d λ φ cos ψ dω ψ

λ ω
λ +d λ ω+ d ω

Figure 12a: Differential rectangle Figure 12b: Differential rectangle


on ellipsoid on sphere

We have for the ellipsoid [see Figure 2 and equations (19)]


ds cos α = ρ d φ
(47)
ds sin α = ν cos φ d λ

Geodesics – Bessel's method 19


and for the sphere
d σ cos α = d ψ
(48)
d σ sin α = cos ψ d ω

Dividing equations (47) by equations (48) gives

ds cos α ρ dφ ds sin α ν cos φ d λ


= ; =
d σ cos α dψ d σ sin α cos ψ d ω

and noting from equation (36) that ν cos φ = a cos ψ , then cancelling terms gives
ds dφ dλ
=ρ =a (49)
dσ dψ dω

We may write these equations as two separate relationships


ds dφ
=ρ (50)
dσ dψ
dλ 1 ds
= (51)
d ω a dσ

and if we can obtain an expression for then we may develop two relatively simple

ds
differential equations; one involving distance (s ellipsoid and σ sphere) and the other


involving longitude ( λ ellipsoid and ω sphere). Integration yields equations that will

enable us to compute geodesic lengths s on the ellipsoid given great circle distances σ on
an auxiliary sphere, and equations to compute longitude differences Δλ on the ellipsoid
given longitude differences Δω on the auxiliary sphere.


An expression for can be determined as follows.

From equation (38) we have


1

tan ψ = (1 − e 2 )2 tan φ

and differentiating with respect to ψ gives


d d
{ dφ
}
1

(tan ψ ) = (1 − e 2 )2 tan φ
dψ dφ dψ
1

and sec2 ψ = (1 − e 2 )2 sec2 φ

Geodesics – Bessel's method 20


dφ 1 cos2 φ
giving = 1 (52)
d ψ (1 − e 2 )2 cos2 ψ

Substituting equation (52) into equation (50) gives

ds ρ cos2 φ
= 1 (53)
d σ (1 − e 2 )2 cos2 ψ

and substituting equation (53) into equation (51) gives

dλ ρ cos2 φ
= 1 (54)
d ω a (1 − e 2 )2 cos2 ψ

Now from equation (36) we may write

cos φ a cos2 φ a2
= and = 2
cos ψ ν cos2 ψ ν

and using the relationships given in equations (4), (10), (11) and (12) we may write

cos2 φ a2 b 2V 2 ρ c a a3 ρ a2
= = ; 1 = = ; 1 = (55)
cos2 ψ ν2 a2 (1 − e 2 ) 2
V 3 b b 2V 3 a (1 − e 2 )2 b 2V 3

Substituting these results into equations (53) and (54) gives


ds a
= (56)
dσ V
dλ 1
and = (57)
dω V
Now from equation (13) we may write V 2 = 1 + e ′2 cos2 φ and also from equation (55) we
b 2V 2
may write cos2 φ = cos2 ψ . Using these gives
a2
b 2V 2
V = 1 + e ′2
2
2
cos2 ψ
a
Now using equations (4) and (5) gives

e2
2 (
2
V =1+ 1 − e 2 )V 2 cos2 ψ
1 −e
= 1 + e 2V 2 cos2 ψ

and V 2 (1 − e 2 cos2 ψ) = 1 from which we obtain


1
V = 1 (58)
(1 − e 2
cos2 ψ)2

Geodesics – Bessel's method 21


Substituting equation (58) into equations (56) and (57) gives

ds 1

= a (1 − e 2 cos2 ψ)2 (59)



and

dλ 1

= (1 − e 2 cos2 ψ)2 (60)



Equations (59) and (60) are the two differential equations from which we obtain distance s
and longitude difference ω − λ .

FORMULA FOR COMPUTATION OF GEODESIC DISTANCE s

N'

vertex
90

α = 90°
°−
ψ2
90°−

ψ0
1
ψ

esic
90°−

α2 geod •
H
90°

P'2 − σ1
• 90°
σ
α1
P'1 •
σ1

αE

node •
E
ω1
ω2 equator auxiliary
sphere

Figure 13: Geodesic on auxiliary sphere

Figure 13 shows P1′ and P2′ on an auxiliary sphere (of unit radius) where latitudes on this
sphere are defined to be equal to parametric latitudes on the ellipsoid. The geodesic, a
great circle on a sphere, passing through P1′ and P2′ has azimuths αE at the equator E, α1
at P1′ , α2 at P2′ and α = 90 at the vertex H.

Geodesics – Bessel's method 22


Note here that we have shown previously that for our auxiliary sphere, the azimuth of a
great circle on the sphere is equal to the azimuth of the geodesic on the ellipsoid. The
length of the great circle arc between P1′ and P2′ is σ and the longitudes of P1′ and P2′
are ω1 and ω2 . Also note that σ1 and σ2 are angular distances along the great circle from
the node E to P1′ and E to P2′ respectively and the angular distance from E to the vertex
H is 90º. ψ1 , ψ2 and ψ0 are the parametric latitudes of P1 , P2 and the vertex
respectively, and they are also the latitudes of P1′ , P2′ and the vertex H on the auxiliary
sphere.

From the spherical triangle P1′N ′ H with the right- N'

angle at H, using the sine rule (for spherical

90
°−
trigonometry)

ψ0
1
sin (90 )

ψ
sin α1
=
90°−
sin (90 − ψ0 ) sin (90 − ψ1 ) H
− σ1
sin α1 1 90°
or =
cos ψ0 cos ψ1 α1

so sin α1 cos ψ1 = cos ψ0 (61) P'1 •

Note that equation (61) can also be obtained from equation (43) and at the equator where
ψ = 90 and cos ψ = 1 we have

sin αE = cos ψ0 (62)

Using Napier's Rules for circular parts in the right-angled spherical triangle P1′N ′ H

sin (mid-part) = product of tan (adjacent-parts)


90°− ψ0 sin (90 − α1 ) = tan ψ1 tan (90 − σ1 )
90°− ( 90°− ψ1 )
ψ1 cos α1 = tan ψ1 cot σ1
90°− σ1 tan ψ1
90°− α1 =
tan σ1

and

tan ψ1
tan σ1 = (63)
cos α1

Geodesics – Bessel's method 23


Using Napier's Rules for circular parts in the right-angled spherical triangle P2′ N ′ H

N'

90°− ψ0

90
°−
ψ2

90°− ( 90°− ψ 2 ) ψ2
90° −

ψ0
• 90°− α 2 90°− (σ 1 + σ )
α2 σ) H
P'2 °−(σ 1 +
• 90
sin (mid-part) = product of cos (opposite-parts)
sin ψ2 = cos (90 − (σ1 + σ )) cos (90 − ψ0 )
sin ψ2 = sin (σ1 + σ ) sin ψ0 (64)

Note: The subscript 2 can be dropped and we can just refer to a general point P' and the
distance from P1′ to P' is σ , hence

sin ψ = sin (σ1 + σ ) sin ψ0 (65)

Referring to equations (59) and (60), we need to develop an expression for cos2 ψ . This
can be achieved in the following manner.

Squaring both sides of equation (65) and using the trigonometric identity
sin2 ψ + cos2 ψ = 1 we have

sin2 ψ = 1 − cos2 ψ = sin2 (σ1 + σ ) sin2 ψ0

so that

cos2 ψ = 1 − sin2 (σ1 + σ ) sin2 ψ0 (66)

Let

x = σ1 + σ (67)

and equation (66) becomes

cos2 ψ = 1 − sin2 x sin2 ψ0 (68)

We may now write equation (59) with dx = d σ since σ1 is constant, as


1

ds = a (1 − e 2 cos2 ψ)2 d σ
1

= a (1 − e 2 ⎡⎣1 − sin2 x sin2 ψ0 ⎤⎦ ) dx


2

= a (1 − e 2 + e 2 sin2 x sin2 ψ0 )2 dx

Geodesics – Bessel's method 24


Now using equations (4), (5) and (6)
1
⎛ 1 e ′2 ⎟⎞⎟ dx
2

ds = a ⎜⎜ + sin 2
x sin 2
ψ0⎟
⎝⎜1 + e ′2 1 + e ′2 ⎠
a 1

1 (1 + e
= ′2 sin2 x sin2 ψ0 )2 dx
(1 + e ′2 )2
1

= b (1 + e ′2 sin2 x sin2 ψ0 )2 dx

Now, since e ′2 is a constant for the ellipsoid and ψ0 is a constant for a particular geodesic
we may write

u 2 = e ′2 sin2 ψ0 = e ′2 cos2 αE (69)

where αE is the azimuth of the geodesic at the node or equator crossing, and
1

ds = b (1 + u 2 sin2 x )2 dx (70)

The length of the geodesic arc s between P1 and P2 is found by integration as


x =σ1 +σ
1

∫ (1 + u sin x )
2 2
s =b 2
dx (71)
x =σ1

where the integration terminals are x = σ1 and x = σ1 + σ remembering that at P1′ ,


σ = 0 and x = σ1 , and at P2′ , x = σ1 + σ .

Equation (71) is an elliptic integral and does not have a simple closed-form solution.
1

However, the integrand (1 + u 2 sin2 x )2 can be expanded in a series and then evaluated by
term-by-term integration.

The integrand in equation (71) can be expanded by use of the binomial series

(1 + x ) = ∑ Bnβ x n
β
(72)
n =0

An infinite series where n is a positive integer, β is any real number and the binomial
coefficients Bnβ are given by

β (β − 1)(β − 2)(β − 3) (β − n + 1)
Bnβ = (73)
n!
The binomial series (72) is convergent when −1 < x < 1 . In equation (73) n! denotes n-
factorial and n ! = n (n − 1)(n − 2)(n − 3) 3 ⋅ 2 ⋅ 1 . zero-factorial is defined as 0 ! = 1 and
the binomial coefficient B0β = 1 .

Geodesics – Bessel's method 25


In the case where β is a positive integer, say k, the binomial series (72) can be expressed
as the finite sum
k
(1 + x ) = ∑ Bnk x n
k
(74)
n =0

where the binomial coefficients Bnk in series (74) are given by


k!
Bnk = (75)
n ! (k − n ) !
1
The binomial coefficients Bn2 for the series (72) are given by equation (73) with the
following results for n = 0, 1, 2 and 3
1
n=0 B02 = 1
1 1
n =1 B12 =
2
1 ( 21 )(− 21 ) 1
n=2 B22 = =−
2! 8
1 ( 21 )(− 21 )(− 23 ) 1
n=3 B32 = =
3! 16
1
Inspecting the results above, we can see that the binomial coefficients Bn2 form a sequence
1 1⋅1 1⋅1⋅ 3 1⋅1⋅ 3 ⋅ 5 1⋅1⋅ 3 ⋅ 5 ⋅ 7 1⋅ 1⋅ 3 ⋅ 5 ⋅ 7 ⋅ 9
1, , − , , − , , − ,
2 2⋅4 2⋅4⋅6 2 ⋅ 4 ⋅ 6 ⋅ 8 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10 ⋅ 12
Using these results
1
1 1⋅1 4 1⋅1⋅ 3 6
(1 + u 2 sin2 x ) 2
= 1 + u 2 sin2 x − u sin 4 x + u sin6 x
2 2⋅4 2⋅4⋅6
1⋅1⋅ 3 ⋅ 5 8 1 ⋅ 1 ⋅ 3 ⋅ 5 ⋅ 7 10 10
− u sin 8 x + u sin x + (76)
2⋅4⋅6⋅8 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10
To simplify this expression, and make the eventual integration easier, the powers of sin x
can be expressed in terms of multiple angles using the standard form

1 ⎛2n ⎞⎟ (−1)n ⎧⎪ ⎛2n ⎞⎟ ⎛2n ⎞⎟


⎜ ⎟ ⎪ ⎜ ⎜
⎨cos 2nx − ⎜⎜ ⎟⎟⎟ cos (2n − 2) x + ⎜⎜ ⎟⎟⎟ cos (2n − 4) x
2n
sin x = 2n ⎜⎜⎝⎜ n ⎟⎟⎠ + 22n −1
2 ⎪⎪ ⎝⎜ 1 ⎠⎟ ⎝⎜ 2 ⎠⎟
⎪⎩
⎛2n ⎞⎟ ⎛ 2n ⎞⎟ ⎫

− ⎜⎜⎜ ⎟⎟ cos (2n − 6) x + (−1) ⎜⎜⎜
n
⎟⎟ cos 2x ⎬⎪ (77)
⎜⎝ 3 ⎠⎟⎟ ⎝⎜n − 1⎠⎟⎟ ⎪⎪


⎛2n ⎞
Using equation (77) and the binomial coefficients Bn2n = ⎜⎜⎜ ⎟⎟⎟ computed using equation
⎜⎝ n ⎟⎠
(75) gives

Geodesics – Bessel's method 26


1 1
sin2 x = − cos 2x
2 2
3 1 1
sin 4 x = + cos 4x − cos 2x
8 8 2
5 1 3 15
sin6 x = − cos 6x + cos 4x − cos 2x
16 32 16 32
35 1 1 7 7
sin 8 x = + cos 8x − cos 6x + cos 4x − cos 2x
128 128 16 32 16
63 1 5 45 15 105
sin10 x = − cos10x + cos 8x − cos 6x + cos 4x − cos 2x (78)
256 512 256 512 64 256
Substituting equations (78) into equation (76) and arranging according to cos 2x , cos 4x ,
etc, we obtain (Rapp 1981, p. 7-8)
1

(1 + u 2 sin2 x ) 2
= A + B cos 2x + C cos 4x + D cos 6x + E cos 8x + F cos10x + (79)

where the coefficients A, B, C, etc., are


1 3 5 6 175 8 441 10
A = 1 + u2 − u4 + u − u + u −
4 64 256 16384 65536
1 1 15 6 35 8 735 10
B = − u2 + u4− u + u − u +
4 16 512 2048 65536
1 3 6 35 8 105 10
C = − u4+ u − u + u −
64 256 4096 16384
(80)
1 6 5 35
D= − u + u8 − u 10 +
512 2048 131072
5 35
E= − u8 + u 10 −
16384 65536
7
F= − u 10 +
131072
Substituting equation (79) into equation (71) gives
σ1 +σ

s =b ∫ {A + B cos 2x + C cos 4x + D cos 6x + E cos 8x + F cos10x + }dx (81)


σ1

or
σ1 +σ σ1 +σ σ1 +σ σ1 +σ
s
= A ∫ dx + B ∫ cos 2x dx + C ∫ cos 4x dx + D ∫ cos 6x dx
b σ σ1 σ1 σ1
1

σ1 +σ σ1 +σ
(82)
+E ∫ cos 8x dx + F ∫ cos10x dx
σ1 σ1

Geodesics – Bessel's method 27


The evaluation of the integral
σ1 +σ
1 1
∫ [ sin nx ]σ11 = {sin n (σ1 + σ ) − sin n σ1 }
σ +σ
cos nx dx = (83)
σ1
n n

combined with the trigonometric identity


⎡n ⎤ ⎡n ⎤
sin nX − sin nY = 2 cos ⎢ (X + Y )⎥ sin ⎢ (X −Y )⎥
⎣⎢ 2 ⎦⎥ ⎣⎢ 2 ⎦⎥
where X = σ1 + σ and Y = σ1 so that X + Y = 2σ1 + σ and X −Y = σ gives
σ1 +σ
2 n
∫ cos nx dx =
n
cos n σm sin σ
2
(84)
σ1

Noting that
n n
sin n (σ1 + σ ) − sin n σ1 = 2 cos (2σ1 + σ ) sin σ
2 2
and with σ = σ2 − σ1 , then 2σ1 + σ = 2σ1 + (σ2 − σ1 ) = σ1 + σ2
σ1 + σ2
and putting σm = (85)
2
then

2σm = 2σ1 + σ (86)

and
n
sin n (σ1 + σ ) − sin n σ1 = 2 cos n σm sin σ (87)
2
Using this result, equation (82) becomes
s
= Aσ +B (cos 2σm sin σ ) + C ( 12 cos 4σm sin 2σ ) + D ( 13 cos 6σm sin 3σ )
b
+E ( 14 cos 8σm sin 4σ ) + F ( 51 cos10σm sin 5σ ) +

or re-arranged as (Rapp 1981, equation 39, p. 9)

{
s = b Aσ + B cos 2σm sin σ +
C
2
D
cos 4σm sin 2σ + cos 6σm sin 3σ
3
(88)
E F
+ cos 8σm sin 4σ + cos10σm sin 5σ +
4 5 }
Equation (88) may be modified by adopting another set of constants; defined as
C D E F
B0 = A; B2 = B; B4 = ; B6 = ; B8 = ; B10 = (89)
2 3 4 5

Geodesics – Bessel's method 28


to give

s = b {B0σ + B2 cos 2σm sin σ + B4 cos 4σm sin 2σ + B6 cos 6σm sin 3σ
+ B8 cos 8σm sin 4σ + B10 cos10σm sin 5σ + (90)
+ B2n cos 2n σm sin n σ + }

where the coefficients B0 , B2 , B4 , … are

1 2 3 5 6 175 8 441 10
B0 = 1 + u − u4 + u − u + u −
4 64 256 16384 65536
1 1 15 6 35 8 735 10
B2 = − u2 + u 4 − u + u − u +
4 16 512 2048 65536
1 4 3 6 35 8 105 10
B4 = − u + u − u + u −
128 512 8192 32768
1 5 35
B6 = − u6 + u8 − u 10 +
1536 6144 393216
5 35
B8 = − u8 + u 10 −
65536 262144
7
B10 = − u 10 +
655360
Since each of these convergent series is alternating, an upper bound of the error committed
in truncating the series is the first term omitted – keeping terms up to u 8 only commits an
error of order u 10 – and equation (90) can be approximated by

s = b {B0σ + B2 cos 2σm sin σ + B4 cos 4σm sin 2σ + B6 cos 6σm sin 3σ
(91)
+B8 cos 8σm sin 4σ }

where
1 2 3 5 6 175 8
B0 = 1 + u − u4 + u − u
4 64 256 16384
1 1 15 6 35 8
B2 = − u2 + u 4 − u + u
4 16 512 2048
1 4 3 6 35 8
B4 = − u + u − u (92)
128 512 8192
1 5
B6 = − u6 + u8
1536 6144
5
B8 = − u8
65536
The approximation (91) and the coefficients given by equations (92) are the same as
Rainsford (1955, equations 18 and 19, p.15) and also Rapp (1981, equations 40 and 41, p.
9).

Geodesics – Bessel's method 29


Equation (91) can be used in two ways which will be discussed in detail later. Briefly,
however, the first way is in the direct problem – where s, u 2 and σ1 are known – to solve
iteratively for σ (and hence σm from 2σm = 2σ1 + σ ; and x = σ1 + σ ) by using Newton-
Raphson iteration for the real roots of the equation f (σ ) = 0 given in the form of an
iterative equation

f (σ n )
σ(n +1) = σ n − (93)
( )

f ′ (σ n )
( )

( )

where n denotes the nth iteration and f (σ ) can be obtained from equation (91) as
f (σ ) = B0σ +B2 cos 2σm sin σ + B4 cos 4σm sin 2σ + B6 cos 6σm sin 3σ
s (94)
+B8 cos 8σm sin 4σ −
b
d
and the derivative f ′ (σ ) = {f (σ )} is given by

( )
1

f ′ (σ ) = 1 + u 2 sin2 x
2
(95)
1

(
[Note here that f (σ ) is the result of integrating the function 1 + u 2 sin2 x ) 2
with respect
to dx; so then the derivative f ′ (σ ) must be the original function.]
s
An initial value, σ(1) ( σ for n = 1 ) can be computed from σ(1) = and the functions
B0b
f (σ(1) ) and f ′ (σ(1) ) evaluated from equations (94) and (95) using σ(1) . σ(2) (σ for n = 2)
can now be computed from equation (93) and this process repeated to obtain values
σ(3), σ(4), … . This iterative process can be concluded when the difference between σ(n +1)
and σ n reaches an acceptably small value.
( )

The second application of equation (91) is in the inverse problem where s is computed once
σ has been determined by spherical trigonometry.

Geodesics – Bessel's method 30


FORMULA FOR COMPUTATION OF LONGITUDE DIFFERENCE BETWEEN TWO
POINTS ON A GEODESIC
N'

vertex

90
α = 90°

°−

ψ0
1
ψ P'2
90°−

• H
9 0°

c
αi desi
• geo
• P'i+1
α1 P'i

P'1 •
σ1

αE

node •
E
ω1
equ ator auxiliary
sphere

Figure 14: Geodesic on auxiliary sphere

Figure 14 shows P1′ and P2′ on an auxiliary sphere (of unit radius) where latitudes on this
sphere are defined to be equal to parametric latitudes on the ellipsoid. Pi ′ and Pi +′ 1 are
arbitrary points on the geodesic (a great circle) between P1′ and P2′ separated by the
angular distance d σ .
N′


ψi
°−
90

cos ψi dω
ic
Q geodes
αi •
P'i+1
• dσ
P'i

Figure 15

Geodesics – Bessel's method 31


Figure 15 shows the differential spherical triangle Pi ′N ′ Pi +′ 1 broken into two right-angled
spherical triangles Pi ′Q Pi +′ 1 and QN ′ Pi +′ 1 . The great circle arc Q Pi +′ 1 is defined as
cos ψ1 d ω , which is the differential arc length of the parallel of parametric latitude ψ1 .
Approximating the spherical triangle Pi ′Q Pi +′ 1 with a plane right-angled triangle gives
cos ψi d ω = d σ sin αi and

sin αi
dω = dσ (96)
cos ψi

From equation (43)


cos ψ0
sin αi = (97)
cos ψi

and substituting equation (97) into (96) gives the relationship (dropping the subscript i)
cos ψ0
dω = dσ (98)
cos2 ψ

Substituting equation (98) into equation (60) and re-arranging gives


1

(1 − e 2 cos2 ψ) 2

d λ = cos ψ0 dσ (99)
cos2 ψ

Subtracting equation (98) from equation (99) gives an expression for the difference
between differentials of two measures of longitude; dω on the auxiliary sphere and d λ on
the ellipsoid
⎡ 1 − e 2 cos2 ψ 21 ⎤
⎢( ) 1 ⎥
d λ − d ω = cos ψ0 ⎢ − ⎥ dσ (100)
⎢ cos2 ψ cos2 ψ ⎥
⎣ ⎦
1

Equation (100) can be simplified by expanding (1 − e 2 cos2 ψ)2 using the binomial series
(72)
1 ∞
(1 − e 2 cos2 ψ)2 = ∑ Bn2 (−e 2 cos2 ψ)
1 n

n =0

1
and from the previous development, the binomial coefficients Bn2 form a sequence
1 1⋅1 1⋅1⋅ 3 1⋅1⋅ 3 ⋅ 5 1⋅1⋅ 3 ⋅ 5 ⋅ 7 1⋅1⋅ 3 ⋅ 5 ⋅ 7 ⋅ 9
1, , − , , − , , − ,
2 2⋅4 2⋅4⋅6 2 ⋅ 4 ⋅ 6 ⋅ 8 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10 ⋅ 12

Geodesics – Bessel's method 32


Using these results
1
1 1⋅1 4 1⋅1⋅ 3 6
(1 − e 2 cos2 ψ) 2
= 1 − e 2 cos2 ψ − e cos4 ψ − e cos6 ψ
2 2⋅4 2⋅4⋅6
1⋅1⋅ 3 ⋅ 5 8 1 ⋅ 1 ⋅ 3 ⋅ 5 ⋅ 7 10
− e cos 8 ψ − e cos10 ψ + (101)
2⋅4⋅6⋅8 2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10
so that
1

(1 − e 2 cos2 ψ) 2
1 1 1 1
2
= 2
− e 2 − e 4 cos2 ψ − e 6 cos4 ψ
cos ψ cos ψ 2 8 16
5 8 7 10
− e cos6 ψ − e cos8 ψ + (102)
128 256
1
Now, subtracting from both sides of equation (102) gives a new equation whose
cos2 ψ
left-hand-side is the term inside the brackets [ ] in equation (100), and using this result we
may write equation (100) as
1 1
{ 1
d λ − d ω = cos ψ0 − e 2 − e 4 cos2 ψ − e 6 cos4 ψ
2 8 16

5 8
128
e cos6 ψ −
7 10
256
e cos8 ψ + }d σ (103)

which can be re-arranged as

d ω − d λ− =
e2
2
1
{ 1
cos ψ0 1 + e 2 cos2 ψ + e 4 cos4 ψ
4 8
5
+ e 6 cos6 ψ +
64
7 8
128
e cos8 ψ + }d σ (104)

From equations (65) and (67) we have sin ψ = sin (σ1 + σ ) sin ψ0 and x = σ1 + σ
respectively, which gives sin ψ = sin x sin ψ0 and sin2 ψ = sin2 x sin2 ψ0 = 1 − cos2 ψ . This
result can be re-arranged as

cos2 ψ = 1 − sin2 ψ0 sin2 x


2 3 4
Now cos4 ψ = (1 − sin2 ψ0 sin2 x ) , cos6 ψ = (1 − sin2 ψ0 sin2 x ) , cos8 ψ = (1 − sin2 ψ0 sin2 x ) ,
etc., and using the binomial series (74) we may write

cos4 ψ = 1 − 2 sin2 ψ0 sin2 x + sin 4 ψ0 sin 4 x

cos6 ψ = 1 − 3 sin2 ψ0 sin2 x + 3 sin 4 ψ0 sin 4 x − sin6 ψ0 sin6 x

cos8 ψ = 1 − 4 sin2 ψ0 sin2 x + 6 sin 4 ψ0 sin 4 x − 4 sin6 ψ0 sin6 x + sin 8 ψ0 sin 8 x

Geodesics – Bessel's method 33


Substituting these relationships into equation (104) and noting that dx = d σ gives

d ω − d λ− =
e2
2 {1
cos ψ0 1 + e 2 (1 − sin2 ψ0 sin2 x )
4
1 4
+ e (1 − 2 sin2 ψ0 sin2 x + sin 4 ψ0 sin 4 x )
8
5
+ e 6 (1 − 3 sin2 ψ0 sin2 x + 3 sin 4 ψ0 sin 4 x − sin6 ψ0 sin6 x )
64
7 8
+ e (1 − 4 sin2 ψ0 sin2 x + 6 sin 4 ψ0 sin 4 x
128
−4 sin6 ψ0 sin6 x + sin 8 ψ0 sin 8 x )
+ } dx (105)

Now, expressions for sin2 x , sin 4 x , … have been developed previously and are given in
equations (78). These even powers of sin x may be substituted into equation (105) to give

e2 ⎧⎪ 1 ⎛ ⎡1 1 ⎤⎞
d ω − d λ− = cos ψ0 ⎨⎪1 + e 2 ⎜⎜⎜1 − sin2 ψ0 ⎢ − cos 2x ⎥ ⎟⎟⎟
2 ⎩⎪
⎪ 4 ⎝ ⎣⎢ 2 2 ⎦⎥ ⎠
1 ⎡1 1 ⎤
+ e 4 (1 − 2 sin2 ψ0 ⎢ − cos 2x ⎥
8 ⎢⎣ 2 2 ⎥⎦
⎡3 1 1 ⎤⎞
+ sin 4 ψ0 ⎢ + cos 4x − cos 2x ⎥ ⎟⎟⎟
⎣⎢ 8 8 2 ⎦⎥ ⎠
5 ⎡1 1 ⎤
+ e 6 (1 − 3 sin2 ψ0 ⎢ − cos 2x ⎥
64 ⎢⎣ 2 2 ⎥⎦
⎡3 1 1 ⎤
+ 3 sin 4 ψ0 ⎢ + cos 4x − cos 2x ⎥
⎣⎢ 8 8 2 ⎥⎦
⎡5 1 3 15 ⎤⎞
− sin 6 ψ0 ⎢ − cos 6x + cos 4x − cos 2x ⎥⎟⎟⎟
⎢⎣ 16 32 16 32 ⎥⎦ ⎠
7 8 ⎛⎜ ⎡1 1 ⎤
+ e ⎜⎜1 − 4 sin2 ψ0 ⎢ − cos 2x ⎥
128 ⎝ ⎣⎢ 2 2 ⎦⎥
⎡3 1 1 ⎤
+ 6 sin 4 ψ0 ⎢ + cos 4x − cos 2x ⎥
⎢⎣ 8 8 2 ⎥⎦
⎡5 1 3 15 ⎤
− 4 sin6 ψ0 ⎢ − cos 6x + cos 4x − cos 2x ⎥
⎣⎢ 16 32 16 32 ⎦⎥
⎡ 35 1 1
+ sin 8 ψ0 ⎢ + cos 8x − cos 6x
⎢⎣ 128 128 16
7 7 ⎤
+ cos 4x − cos 2x ⎥
32 16 ⎥⎦
+ } dx (106)

Geodesics – Bessel's method 34


Expanding the components of equation (106) associated with the even powers of e we have
1 2⎛ 1 1 ⎞
e ⎜⎜1 − sin2 ψ0 + sin2 ψ0 cos 2x ⎟⎟ (107)
4 ⎝ 2 2 ⎠
1 4
e (1 − sin2 ψ0 + sin2 ψ0 cos 2x
8
3 1 1 ⎞
+ sin 4 ψ0 + sin 4 ψ0 cos 4x − sin 4 ψ0 cos 2x ⎟⎟ (108)
8 8 2 ⎠
5 6
e (1 − sin2 ψ0 + sin2 ψ0 cos 2x
64
9 3 3
+ sin 4 ψ0 + sin 4 ψ0 cos 4x − sin 4 ψ0 cos 2x
8 8 2
5 1 3 15 ⎞
− sin6 ψ0 + sin6 ψ0 cos 6x − sin6 ψ0 cos 4x + sin6 ψ0 cos 2x ⎟⎟ (109)
16 32 16 32 ⎠
7 8
e (1 − sin2 ψ0 + sin2 ψ0 cos 2x
128
9 3
+ sin 4 ψ0 + sin 4 ψ0 cos 4x − 3 sin 4 ψ0 cos 2x
4 4
5 1 3
− sin6 ψ0 + sin6 ψ0 cos 6x − sin6 ψ0 cos 4x
4 8 4
15 6
+ sin ψ0 cos 2x
8
35 1 1
+ sin 8 ψ0 + sin 8 ψ0 cos 8x − sin 8 ψ0 cos 6x
128 128 16
7 7 ⎞
+ sin 8 ψ0 cos 4x − sin 8 ψ0 cos 2x ⎟⎟ (110)
132 16 ⎠

Gathering together the constant terms and the coefficients of cos 2x , cos 4x , cos 6x, etc. in
equations (107) to (110), we can write equation (106) as

e2
d ω − dλ = cos ψ0 {C 0 + C 2 cos 2x + C 4 cos 4x + C 6 cos 6x + C 8 cos 8x + }dx (111)
2
where the coefficients C 0 , C 2 , C 4 , etc. are

Geodesics – Bessel's method 35


1 1 5 7 8
C 0 = 1 + e2 + e 4 + e6 + e +
4 8 64 128
⎛1 1 15 6 7 ⎞
− ⎜⎜ e 2 + e 4 + e + e 8 + ⎟⎟ sin2 ψ0
⎝8 8 128 64 ⎠
⎛3 45 6 63 8 ⎞
+ ⎜⎜ e 4 + e + e + ⎟⎟ sin 4 ψ0
⎝ 64 512 512 ⎠
⎛ 25 6 35 8 ⎞
− ⎜⎜ e + e + ⎟⎟ sin 6 ψ0
⎝1024 512 ⎠
⎛ 245 8 ⎞⎟ 8
+ ⎜⎜ e + sin ψ0
⎝16384 ⎠⎟
− (112)
⎛1 1 15 6 7 ⎞
C 2 = ⎜⎜ e 2 + e 4 + e + e 8 + ⎟⎟ sin2 ψ0
⎝8 8 128 64 ⎠
⎛1 15 6 21 8 ⎞
− ⎜⎜ e 4 + e + e + ⎟⎟ sin 4 ψ0
⎝16 128 128 ⎠
⎛ 75 6 105 8 ⎞
+ ⎜⎜ e + e + ⎟⎟ sin6 ψ0
⎝ 2048 1024 ⎠
⎛ 49 8 ⎞
+ ⎜⎜ e + ⎟⎟ sin 8 ψ0
⎝ 2048 ⎠
− (113)
⎛1 15 6 21 8 ⎞
C 4 = ⎜⎜ e 4 + e + e + ⎟⎟ sin 4 ψ0
⎝ 64 512 512 ⎠
⎛ 15 6 21 8 ⎞
− ⎜⎜ e + e + ⎟⎟ sin 6 ψ0
⎝1024 512 ⎠
⎛ 49 8 ⎞
+ ⎜⎜ e + ⎟⎟ sin 8 ψ0
⎝1096 ⎠
− (114)
⎛ 5 6 7 8 ⎞
C 6 = ⎜⎜ e + e + ⎟⎟ sin6 ψ0
⎝ 2048 1024 ⎠
⎛ 7 8 ⎞
− ⎜⎜ e + ⎟⎟ sin 8 ψ0
⎝ 2048 ⎠
+ (115)
⎛ 7 ⎟⎞⎟ sin 8 ψ0 −
C 8 = ⎜⎜ e8 + (116)
⎝16384 ⎠

The longitude differences (spherical ω minus geodetic λ ) are given by the integral
x =σ1 +σ
e2
Δω − Δλ =
2
cos ψ0 ∫ {C 0 + C 2 cos 2x + C 4 cos 4x + C 6 cos 6x + C 8 cos 8x + }dx (117)
x =σ1

where Δω = ω2 − ω1 is the difference in longitudes of P1′ and P2′ on the auxiliary sphere
and Δλ = λ2 − λ1 is the difference in longitudes of P1 and P2 on the ellipsoid.

Geodesics – Bessel's method 36


Equation (117) has a similar form to equation (81) and the solution of the integral in
equation (117) can be achieved by the same method used to solve the integral in equation
(81). Hence, similarly to equation (88) and also Rapp (1981 equation (55), p. 13)

e2
{ C
Δω − Δλ = cos ψ0 C 0σ + C 2 cos 2σm sin σ + 4 cos 4σm sin 2σ
2 2
(118)
C C
+ 6 cos 6σm sin 3σ + 8 cos 8σm sin 4σ +
3 4 }
Rainsford (1955, p. 14, equations 10 and 11) has the differences in longitudes Δω − Δλ as
a function of the flattening f and the azimuth of the geodesic at the equator αE ; noting
that from either equations (61) or (69) we may obtain the relationships

sin αE = cos ψ0 (119)

1 − sin2 αE = sin2 ψ0 (120)

Also, since e 2 = f (2 − f ) = 2 f − f 2 , even powers of the eccentricity e can be expressed as


functions of the flattening f

e2 = 2f − f 2
e4 = 4f 2 − 4f 3 + f 4
(121)
e 6 = 8 f 3 − 12 f 4 + 6 f 5 − f 6
e 8 = 16 f 4 − 32 f 5 + 24 f 6 − 8 f 7 + f 8

Re-arranging equation (118) and using equation (119) gives



⎪e 2 e2 e2
Δω − Δλ = sin αE ⎨⎪ C 0σ + C 2 cos 2σm sin σ + C 4 cos 4σm sin 2σ

⎩2
⎪ 2 4
e2 e2 ⎫

+ C 6 cos 6σm sin 3σ + C 8 cos 8σm sin 4σ + ⎪⎬ (122)
6 8 ⎪


e2
Now, with equations (112) and (120) the coefficient C 0 can be written as
2
e2 e2 1 1 5 8
C 0 = + e4 + e6 + e +
2 2 8 16 128
⎛1 1 15 8 ⎞⎟
− ⎜⎜ e 4 + e 6 + e ⎟ (1 − sin2 αE )
⎝16 16 256 ⎠
⎛ 3 6 45 8 ⎞ 2
+ ⎜⎜ e + e + ⎟⎟ (1 − sin2 αE )
⎝128 1024 ⎠
⎛ 25 8 ⎞ 3
− ⎜⎜ e + ⎟⎟ (1 − sin2 αE )
⎝ 2048 ⎠
+ (123)

Geodesics – Bessel's method 37


noting here that terms greater than e 8 have been ignored.

Using equations (121) in equation (123) with the trigonometric identity


cos2 αE + sin2 αE = 1 gives

e2 7
C0 = f − f 5 +
2 8
⎛1 1 1 3 ⎞
− ⎜⎜ f 2 + f 3 + f 4 − f 5 + ⎟⎟ cos2 αE
⎝4 4 4 2 ⎠
⎛3 27 4 81 5 ⎞
+ ⎜⎜ f 3 + f − f + ⎟⎟ cos 4 αE
⎝16 64 64 ⎠
⎛ 25 4 25 5 ⎞
− ⎜⎜ f − f + ⎟⎟ cos6 αE
⎝128 64 ⎠
+ (124)

Now for any geodetic ellipsoid e 8 2.01e-009 and f 4 1.26e-010 , and since terms greater
8
than e have been ignored in the development of equation (123) then no additional errors
will be induced by ignoring terms greater than f 4 in equation (124). Hence we define

e2
2 {1
C 0 ≡ f 1 − f (1 + f + f 2 ) cos2 αE
4
3 ⎛ 9 ⎞
+ f 2 ⎜⎜1 + f ⎟⎟ cos 4 αE
16 ⎝ 4 ⎠

25 3
128
f cos6 αE } (125)

Using similar reasoning we also define

e2 ⎧1 1 2⎛ 9 ⎞ 4 75 3 ⎫
C2 ≡ f ⎪
⎨ f (1 + f + f ) cos αE − f ⎜⎜1 + f ⎟⎟ cos αE +
2 2
f cos6 αE ⎪
⎬ (126)
2 ⎪
⎪4
⎩ 4 ⎝ 4 ⎠ 256 ⎪


e2 ⎧ 1 2⎛ 9 ⎞ 4 15 3 ⎫
C4 ≡ f ⎪
⎨ f ⎜⎜1 + f ⎟⎟ cos αE − f cos6 αE ⎪
⎬ (127)
4 ⎪ 32 ⎝

⎩ 4 ⎠ 256 ⎪


e2
6
C6 ≡ f {5 3
768
f cos6 αE } (128)

Using equations (125) to (128) enables equation (122) to be approximated by

Δω − Δλ = f sin αE {A0σ + A2 cos 2σm sin σ + A4 cos 4σm sin 2σ + A6 cos 6σm sin 3σ } (129)

where Δω = ω2 − ω1 is the difference in longitudes of P1′ and P2′ on the auxiliary sphere
and Δλ = λ2 − λ1 is the difference in longitudes of P1 and P2 on the ellipsoid, and the
coefficients are

Geodesics – Bessel's method 38


1 3 2⎛ 9 ⎞ 25 3
A0 = 1 − f (1 + f + f 2 ) cos2 αE + f ⎜⎜1 + f ⎟⎟ cos4 αE − f cos6 αE
4 16 ⎝ 4 ⎠ 128
1 1 ⎛ 9 ⎞ 75 3
A2 = f (1 + f + f 2 ) cos2 αE − f 2 ⎜⎜1 + f ⎟⎟ cos4 αE + f cos6 αE
4 4 ⎝ 4 ⎠ 256
(130)
1 2⎛ 9 ⎞ 15 3
A4 = f ⎜⎜1 + f ⎟⎟⎟ cos 4 αE − f cos6 αE
32 ⎝ 4 ⎠ 256
5 3
A6 = f cos6 αE
768
The approximation (129) and the coefficients (130) are the same as Rainsford (1955,
equations 10 and 11, p. 14) and also Rapp (1981, equation 56, p. 13).

Equation (129) can be used in two ways which will be discussed in detail later. Briefly,
however, the first way is in the direct problem – after σ (and σm from 2σm = 2σ1 + σ )
has been solved iteratively – to compute the difference Δω − Δλ . And in the inverse
problem to compute the longitude difference iteratively.

VINCENTY'S MODIFICATIONS OF RAINSFORD'S EQUATIONS

In 1975, T. Vincenty (1975) produced other forms of equations (91) and (129) more suited
to computer evaluation and requiring a minimum of trigonometric function evaluations.
These equations may be obtained in the following manner.

Vincenty's modification of Rainsford's equation for distance

The starting point here is equation (91) [Rainsford's equation for distance] that can be re-
arranged as
s B B B
σ = − 2 cos 2σm sin σ − 4 cos 4σm sin 2σ − 6 cos 6σm sin 3σ
bB0 B0 B0 B0
B
− 8 cos 8σm sin 4σ (131)
B0

or
s
σ = +Δσ (132)
bB0

where

Geodesics – Bessel's method 39


B2 B B
Δσ = − cos 2σm sin σ − 4 cos 4σm sin 2σ − 6 cos 6σm sin 3σ
B0 B0 B0
B
− 8 cos 8σm sin 4σ (133)
B0
1 3 5 6 175 8
Now, from equations (92) B0 = 1 + u 2 − u 4 + u − u = 1 + x and
4 64 256 16384
1 −1
= (1 + x ) . Using a special case of the binomial series [equation (72) with β = −1 and
B0
with x < 1 ]
−1
(1 + x ) = 1 − x + x2 − x3 + x4 −

allows us to write
2 3
1 ⎛1 3 ⎞⎟ ⎛ 1 2 3 ⎞⎟ ⎛ 1 2 3 ⎟⎟⎞
= 1− ⎜⎜ u 2 − u 4 + + ⎜ u − u4 + − ⎜ u − u4 +
B0 ⎝ 4 64 ⎠⎟ ⎝⎜ 4 64 ⎠⎟ ⎝⎜ 4 64 ⎠
4
⎛1 3 ⎞⎟
+ ⎜⎜ u 2 − u 4 + ⎟⎠ −
⎝4 64
1 7 15 6 579 8
= 1 − u2 + u4 − u + u −
4 64 256 16384
and using this result gives
B2 ⎛ 1 1 15 6 35 8 ⎞⎛
⎟ ⎜⎜1 − 1 u 2 + 7 u 4 − 15 u 6 + 579 u 8 − ⎟⎞
= ⎜⎜− u 2 + u 4 − u + u − ⎟ ⎟⎠
B0 ⎝ 4 16 512 2048 ⎠⎝ 4 64 256 16384
1 1 37 6 47 8
= − u2 + u4 − u + u −
4 8 512 1024
Similarly, the other ratios are obtained and
B2 1 1 37 6 47 8
= − u2 + u4 − u + u −
B0 4 8 512 1024
B4 1 4 1 6 27 8
= − u + u − u +
B0 128 128 4096
(134)
B6 1 1
= − u6 + u8 −
B0 1536 1024
B8 5
= − u8 +
B0 65536

For a geodesic on the GRS80 ellipsoid, having αE = 0 (which makes u 2 a maximum) and
with σ = 22.5 , σm = 22.5 (which makes cos 8σm sin 4σ = 1 ) the maximum value of the
B8
last term in equations (131) and (133) is cos 8σm sin 4σ = 1.5739827e-013 radians .
B0

Geodesics – Bessel's method 40


This is equivalent to an arc length of 0.000001 m on a sphere of radius 6378137 m. This
term will be ignored and Δσ is defined as
B2 B B
Δσ ≡ − cos 2σm sin σ − 4 cos 4σm sin 2σ − 6 cos 6σm sin 3σ (135)
B0 B0 B0

Now, using the trigonometric identities

sin 2A = 2 sin A cos A cos 2A = 2 cos2 A − 1


sin 3A = 3 sin A − 4 sin 3 A cos 3A = 4 cos3 A − 3 cos A
then

cos 4A = 2 cos2 2A − 1
cos 6A = 4 cos3 2A − 3 cos 2A
and using these identities in equation (135) gives
B2 B
Δσ = − cos 2σm sin σ − 4 (2 cos2 2σm − 1) (2 sin σ cos σ )
B0 B0
B
− 6 (4 cos3 2σm − 3 cos 2σm )(3 sin σ − 4 sin 3 σ )
B0

which may be written as



⎪ B2 B
Δσ = sin σ ⎪
⎨− cos 2σm − 2 4 cos σ (2 cos 2σm − 1)
2

⎩ B0
⎪ B0
(136)
B ⎫

− 6 cos 2σm (3 − 4 sin2 σ )(4 cos2 2σm − 3)⎪

B0 ⎪


Now
2
⎛ −B2 ⎟⎞ 1 4 1 6 53 8
⎜⎜ ⎟⎟ = u − u + u −
⎜⎝ B0 ⎟⎠ 16 16 1024
3
(137)
⎛ −B ⎞ 1 6 3 8
⎜⎜ 2 ⎟⎟⎟ = u − u +
⎜⎝ B ⎟⎠
0 64 128

Comparing equations (137) with equations (134) we have


⎛B ⎞ 1 4 1 6 54 8
−2 ⎜⎜ 4 ⎟⎟⎟ = u − u + u
⎜⎝ B ⎠⎟ 64 64 4096
0
2
1 ⎛⎜ −B2 ⎞⎟ 1 4 1 6 53 8
⎜⎜ ⎟⎟ = u − u + u
4 ⎝ B0 ⎟⎠ 64 64 4096

Geodesics – Bessel's method 41


1
and these two equations differ by u 8 which would be equivalent to a maximum error
4096
of 5.0367e-013 radians or 0.000003 m on a sphere of radius 6378137 m. Ignoring this small
difference, we define
2
⎛ B ⎞ 1 ⎛ −B ⎞
−2 ⎜⎜ 4 ⎟⎟⎟ ≡ ⎜⎜ 2 ⎟⎟⎟ (138)
⎜⎝ B ⎠⎟ 4 ⎜⎝ B ⎠⎟
0 0

Again, comparing equations (137) with equations (134) we have


⎛B ⎞ 1 1
− ⎜⎜ 6 ⎟⎟⎟ = u6 + u8
⎜⎝ B0 ⎠⎟ 1536 1024
2
1 ⎛⎜ −B2 ⎞⎟ 1 3
⎜ ⎟⎟ = u6 + u8

24 ⎝ B0 ⎠ ⎟ 1536 3072
1 3
and noting that u8 = u 8 we may say
1024 3072
3
⎛B ⎞ 1 ⎜⎛ −B2 ⎟⎞
− ⎜⎜ 6 ⎟⎟⎟ = ⎟ (139)
⎜⎝ B ⎠⎟ 24 ⎜⎜⎝ B ⎟⎟⎠
0 0

Using equations (138) and (139) we may write equation (136) as



⎪⎛ −B ⎞ 1 ⎜⎛ −B2 ⎞⎟
2
⎪ ⎜ 2⎟
Δσ = sin σ ⎨⎜ ⎟⎟ cos 2σm + ⎜ ⎟⎟ cos σ (2 cos2 2σm − 1)
⎪ ⎜ B ⎟ ⎜
4 ⎝ B0 ⎠⎟
⎩⎝ 0 ⎠


1 ⎛⎜ −B2 ⎟⎞
3 ⎫

+ ⎜ ⎟⎟ cos 2σm (3 − 4 sin σ )(4 cos 2σm − 3)⎪⎬
2 2

24 ⎜⎝ B0 ⎠⎟ ⎪



We may now express the great circle arc length σ as

s
σ = +Δσ (140)
bA′

where

{
Δσ = B ′ sin σ cos 2σm +
1 ⎡
4
B ′ ⎢⎣ cos σ (2 cos2 2σm − 1)
(141)
1 ⎤⎪ ⎫
− B ′ cos 2σm (−3 + 4 sin2 σ )(−3 + 4 cos2 2σm )⎥⎬
6 ⎥⎦ ⎪

and

Geodesics – Bessel's method 42


1 3 5 6 175 8
A′ = B0 = 1 + u 2 − u 4 + u − u
4 64 256 16384
4096 2 768 4 320 6 175 8
=1+ u − u + u − u
16384 16384 16384 16384
u2
=1+
16384
(
4096 + u 2 (−768 + u 2 (320 − 175u 2 )) ) (142)

−B2 1 1 37 6 47 8
B′ = = u2− u 4 + u − u
B0 4 8 512 1024
256 2 128 4 74 6 47 8
= u − u + u − u
1024 1024 1024 1024
u2
=
1024
( )
256 + u 2 (−128 + u 2 (74 − 47u 2 )) (143)

Equations (140) to (143) are the same as those given by Vincenty (1975, equations 7, 6, 3
and 4, p. 89). Vincenty notes in his paper that these equations were derived from
Rainsford's inverse formula and that most significant terms in u 8 were retained, but he
gave no outline of his method.

Vincenty's modification of Rainsford's equation for longitude difference

The starting point here is equation (129) [Rainsford's equation for longitude differences]
with coefficients A0 , A2 , A4 and A6 . Referring to this equation, Rainsford (1955, p. 14)
states:

“The A coefficients are given as functions of f since they converge more rapidly than when
given as functions of e 2 . The maximum value of any term in f 4 (i.e. f 3 in the A's) is less
than 0′′.00001 even for a line half round the world. Thus the A6 term may be omitted
altogether and the following simplified forms used even for precise results:”

Rainsford's simplified formula is

Δω − Δλ = f sin αE {A0′σ + A2′ cos 2σm sin σ + A4′ cos 4σm sin 2σ} (144)

where Δω = ω2 − ω1 is the difference in longitudes of P1′ and P2′ on the auxiliary sphere
and Δλ = λ2 − λ1 is the difference in longitudes of P1 and P2 on the ellipsoid, and the
coefficients are

Geodesics – Bessel's method 43


1 3
A0′ = 1 − f (1 + f ) cos2 αE − f 2 cos4 αE
4 16
1 1
A2′ = f (1 + f ) cos2 αE − f 2 cos4 αE (145)
4 4
1 2
A4′ = f cos 4 αE
32
Equation (144) can be written as
⎧⎪ A′ A′ ⎫

Δω − Δλ = A0′ f sin αE ⎪⎨σ + 2 cos 2σm sin σ + 4 cos 4σm sin 2σ⎪⎬ (146)


⎩ A0′ A0′ ⎪


Using the trigonometric double angle formulas sin 2A = 2 sin A cos A , cos 2A = 2 cos2 A − 1
we can write
sin 2σ = 2 sin σ cos σ
cos 4σm = 2 cos2 2σm − 1

and equation (146) becomes



⎪ A′ A′ ⎫

Δω − Δλ = A0′ f sin αE ⎪⎨σ + 2 cos 2σm sin σ + 4 (2 cos2 2σm − 1) (2 sin σ cos σ )⎪⎬


⎩ A0′ A0′ ⎪


⎪⎧ ⎡ A′ A′ ⎤ ⎪⎫
= A0′ f sin αE ⎪⎨σ + sin σ ⎢ 2 cos 2σm + 2 4 cos σ (2 cos2 2σm − 1)⎥ ⎪⎬ (147)
⎪⎪ ⎢ A0′ A ′ ⎥⎪
⎩ ⎣ 0 ⎦ ⎭⎪
Now the coefficient A0′ may be re-arranged as follows
1 3 2
A0′ = 1 − f (1 + f ) cos2 αE + f cos4 αE
4 16
⎛4 3 ⎞
= 1 − ⎜⎜ f (1 + f ) cos2 αE − f 2 cos4 αE ⎟⎟
⎝16 16 ⎠
f
= 1 − cos2 αE (4 (1 + f ) − 3 f cos2 αE )
16
f
= 1 − cos2 αE (4 + f (4 − 3 cos2 αE ))
16
or

A0′ = 1 − C

where
f
C = cos2 αE (4 + f (4 − 3 cos2 αE ))
16
Now using these relationships and a special result of the binomial series [equation (72)
with x = −C and β = −1 ] we may write

Geodesics – Bessel's method 44


1 1 −1
= = (1 − C ) = 1 + C + C 2 + C 3 +
A0′ 1 − C

and

A2′ 1 1 3 1
= f cos2 αE + f 2 cos2 αE − f 2 cos4 αE + f 3 cos4 αE +
A0′ 4 4 16 8

A2′
Ignoring terms greater than f 3 (greater than f 2 in ) we have
A0′
A2′ 1 1 3
≡ f cos2 αE + f 2 cos2 αE − f 2 cos4 αE
A0′ 4 4 16
f
= cos2 αE (4 + f (4 − 3 cos2 αE ))
16
=C
Also

A4′ 1 2 1 3
= f cos 4 αE + f cos6 αE +
A0′ 32 128

A4′
and ignoring terms greater than f 3 (greater than f 2 in ) we have
A0′

A4′ 1 2 A4′ 1 2
≡ f cos 4 αE and 2 = f cos 4 αE
A0′ 32 A0′ 16

Now
1 2 1 3 3
C2 = f cos4 αE + f 3 cos 4 αE − f cos6 αE +
16 8 32
and ignoring terms greater than f 3 (greater than f 2 in C 2 ) we have

1 2 A′
C2 ≡ f cos 4 αE = 2 4
16 A0′

Using these results we may write equation (147) as

{
Δλ = Δω − (1 − C ) f sin αE σ + C sin σ ⎡⎢⎣ cos 2σm + C cos σ (−1 + 2 cos2 2σm )⎤⎥⎦ } (148)

where Δω = ω2 − ω1 is the difference in longitudes of P1′ and P2′ on the auxiliary sphere
and Δλ = λ2 − λ1 is the difference in longitudes of P1 and P2 on the ellipsoid, and
f
C = cos2 αE (4 + f (4 − 3 cos2 αE )) (149)
16

Geodesics – Bessel's method 45


Equations (148) and (149) are essentially the same as Vincenty (1975, equations 11 and 10,
p.89) – Vincenty uses L and λ where we have used Δλ and Δω respectively – although
he gives no outline of his method of deriving his equations from Rainsford's.

SOLVING THE DIRECT AND INVERSE PROBLEMS ON THE ELLIPSOID USING


VINCENTY'S EQUATIONS

Vincenty (1975) set out methods of solving the direct and inverse problems on the
ellipsoid. His methods were different from those proposed by Rainsford (1955) even
though his equations (140) to (143) for spherical arc length σ and (148) and (149) for
longitude λ were simplifications of Rainsford's equations. His approach was to develop
solutions more applicable to computer programming rather than the mechanical methods
used by Rainsford. Vincenty's method relies upon the auxiliary sphere and there are
several equations using spherical trigonometry. Since distances are often small when
compared with the Earth's circumference, resulting spherical triangles can have very small
sides and angles. In such cases, usual spherical trigonometry formula, e.g., sine rule and
cosine rule, may not furnish accurate results and other, less common formula, are used.
Vincenty's equations and his methods are now widely used in geodetic computations.

In the solutions of the direct and inverse problems set out in subsequent sections, the
following notation and relationships are used.

a, f semi-major axis length and flattening of ellipsoid.

b semi-minor axis length of the ellipsoid, b = a (1 − f )

e 2 eccentricity of ellipsoid squared, e 2 = f (2 − f )

e2
e ′2 2nd-eccentricity of ellipsoid squared, e ′2 =
1 − e2
φ, λ latitude and longitude on ellipsoid: φ measured 0 to ± 90 (north latitudes
positive and south latitudes negative) and λ measured 0 to ± 180 (east
longitudes positive and west longitudes negative).

s length of the geodesic on the ellipsoid.

α1, α2 azimuths of the geodesic, clockwise from north 0 to 360 ; α2 in the direction
P1P2 produced.

Geodesics – Bessel's method 46


α12 azimuth of geodesic P1P2 ; α12 = α1

α21 reverse azimuth; azimuth of geodesic P2P1 ; α21 = α2 ± 180

αE azimuth of geodesic at the equator, sin αE = cos ψ0

u 2 = e ′2 sin2 ψ0

ψ parametric latitude, tan ψ = (1 − f ) tan φ

ψ0 parametric latitude of geodesic vertex, cos ψ0 = cos ψ sin α = sin αE

ψ, ω latitude and longitude on auxiliary sphere: ψ measured 0 to ± 90 (north


latitudes positive and south latitudes negative) and ω measured 0 to ± 180
(east longitudes positive and west longitudes negative).

Δλ, Δω longitude differences; Δλ = λ2 − λ1 (ellipsoid) and Δω = ω2 − ω1 (spherical)

σ angular distance (great circle arc) P1′P2′ on the auxiliary sphere.

tan ψ1
σ1 angular distance from equator to P1′ on the auxiliary sphere, tan σ1 =
cos α1

σm angular distance from equator to mid-point of great circle arc P1′P2′ on the
auxiliary sphere, 2σm = 2σ1 + σ

THE DIRECT PROBLEM ON THE ELLIPSOID USING VINCENTY'S EQUATIONS

Using Vincenty's equations the direct problem on the ellipsoid

[given latitude and longitude of P1 on the ellipsoid and azimuth α12 and geodesic
distance s to P2 on the ellipsoid, compute the latitude and longitude of P2 and the
reverse azimuth α21 ]

may be solved by the following sequence.

e2
With the ellipsoid constants a, f , b = a (1 − f ), e 2 = f (2 − f ) and e ′2 = and given
1 − e2
φ1, λ1, α1 = α12 and s

1. Compute parametric latitude ψ1 of P1 from

tan ψ1 = (1 − f ) tan φ1

Geodesics – Bessel's method 47


2. Compute the parametric latitude of the geodesic vertex ψ0 from

cos ψ0 = cos ψ1 sin α1

3. Compute the geodesic constant u 2 from

u 2 = e ′2 sin2 ψ0

4. Compute angular distance σ1 on the auxiliary sphere from the equator to P1′ from
tan ψ1
tan σ1 =
cos α1

5. Compute the azimuth of the geodesic at the equator αE from

sin αE = cos ψ0 = cos ψ1 sin α1

6. Compute Vincenty's constants A′ and B ′ from

u2
A′ = 1 +
16384
(
4096 + u 2 (−768 + u 2 (320 − 175u 2 )) )
u2
B′ =
1024
(
256 + u 2 (−128 + u 2 (74 − 47u 2 )) )
7. Compute angular distance σ on the auxiliary sphere from P1′ to P2′ by iteration
using the following sequence of equations until there is negligible change in σ
2σm = 2σ1 + σ

{
Δσ = B ′ sin σ cos 2σm +
1 ⎡
B ′ cos σ (2 cos2 2σm − 1)
4 ⎢⎣
1 ⎤ ⎫⎪
− B ′ cos 2σm (−3 + 4 sin2 σ )(−3 + 4 cos2 2σm )⎥⎬
6 ⎥⎦ ⎪⎭⎪
s
σ = + Δσ
bA′
s
The first approximation for σ in this iterative solution can be taken as σ
bA′
8. After computing the spherical arc length σ the latitude of P2 can be computed using
tan ψ2
spherical trigonometry and the relationship tan φ2 =
(1 − f )
sin ψ1 cos σ + cos ψ1 sin σ cos α1
tan φ2 = 2
(1 − f ) sin2 αE + (sin ψ1 sin σ − cos ψ1 cos σ cos α1 )

9. Compute the longitude difference Δω on the auxiliary sphere from


sin σ sin α1
tan Δω =
cos ψ1 cos σ − sin ψ1 sin σ cos α1

Geodesics – Bessel's method 48


10. Compute Vincenty's constant C from
f
C = cos2 αE (4 + f (4 − 3 cos2 αE ))
16
11. Compute the longitude difference Δλ on the ellipsoid from

{
Δλ = Δω − (1 − C ) f sin αE σ + C sin σ ⎡⎢⎣ cos 2σm + C cos σ (−1 + 2 cos2 2σm )⎤⎥⎦ }
12. Compute azimuth α2 from
sin αE
tan α2 =
cos ψ1 cos σ cos α1 − sin ψ1 sin σ

13. Compute reverse azimuth α21

α21 = α2 ± 180

Shown below is the output of a MATLAB function Vincenty_Direct.m that solves the
direct problem on the ellipsoid.

The ellipsoid is the GRS80 ellipsoid and φ, λ for P1 are −45 and 132 respectively with
α12 = 1 43′ 25.876544′′ and s = 3880 275.684153 m . φ, λ computed for P2 are −10 and
133 respectively with the reverse azimuth α21 = 181 14 ′ 22.613213′′

>> Vincenty_Direct

/////////////////////////////////////////////////
// DIRECT CASE on ellipsoid: Vincenty's method //
/////////////////////////////////////////////////

ellipsoid parameters
a = 6378137.000000000
f = 1/298.257222101000
b = 6356752.314140356100
e2 = 6.694380022901e-003
ep2 = 6.739496775479e-003

Latitude & Longitude of P1


latP1 = -45 0 0.000000 (D M S)
lonP1 = 132 0 0.000000 (D M S)

Azimuth & Distance P1-P2


az12 = 1 43 25.876544 (D M S)
s = 3880275.684153

Parametric Latitude of P1
psiP1 = -44 54 13.636256 (D M S)

Parametric Latitude of vertex P0


psiP0 = 88 46 44.750547 (D M S)

Geodesic constant u2 (u-squared)


u2 = 6.736437077728e-003

Geodesics – Bessel's method 49


angular distance on auxiliary sphere from equator to P1'
sigma1 = -7.839452835875e-001 radians

Vincenty's constants A and B


A = 1.001681988050e+000
B = 1.678458818215e-003

angular distance sigma on auxiliary sphere from P1' to P2'


sigma = 6.099458753810e-001 radians
iterations = 5

Latitude of P2
latP2 = -10 0 0.000000 (D M S)

Vincenty's constant C
C = 8.385253517062e-004

Longitude difference P1-P2


dlon = 1 0 0.000000 (D M S)

Longitude of P2
lon2 = 133 0 0.000000 (D M S)

Reverse azimuth
alpha21 = 181 14 22.613213 (D M S)

>>

THE INVERSE PROBLEM ON THE ELLIPSOID USING VINCENTY'S EQUATIONS

Using Vincenty's equations the inverse problem on the ellipsoid

[given latitudes and longitudes of P1 and P2 on the ellipsoid compute the forward
and reverse azimuths α12 and α21 and the geodesic distance s]

may be solved by the following sequence.

e2
With the ellipsoid constants a, f , b = a (1 − f ), e 2 = f (2 − f ) and e ′2 = and given
1 − e2
φ1, λ1 and φ2 , λ2

1. Compute parametric latitudes ψ1 and ψ2 of P1 and P2 from

tan ψ = (1 − f ) tan φ

2. Compute the longitude difference Δλ on the ellipsoid

Δλ = λ2 − λ1

Geodesics – Bessel's method 50


3. Compute the longitude difference Δω on the auxiliary sphere between P1′ to P2′ by
iteration using the following sequence of equations until there is negligible change in
Δω . Note that σ should be computed using the atan2 function after evaluating
sin σ = sin2 σ and cos σ . This will give −180 < σ ≤ 180 .
2 2
sin2 σ = (cos ψ2 sin Δω ) + (cos ψ1 sin ψ2 − sin ψ1 cos ψ2 cos Δω )
cos σ = sin ψ1 sin ψ2 + cos ψ1 cos ψ2 cos Δω
sin σ
tan σ =
cos σ
cos ψ1 cos ψ2 sin Δω
sin αE =
sin σ
2 sin ψ1 sin ψ2
cos 2σm = cos σ −
cos2 αE
f
C= cos2 αE (4 + f (4 − 3 cos2 αE ))
16
{
Δω = Δλ + (1 − C ) f sin αE σ + C sin σ ⎡⎢⎣ cos 2σm + C cos σ (−1 + 2 cos2 2σm )⎤⎥⎦ }
The first approximation for Δω in this iterative solution can be taken as Δω Δλ

4. Compute the parametric latitude of the geodesic vertex ψ0 from

cos ψ0 = sin αE

5. Compute the geodesic constant u 2 from

u 2 = e ′2 sin2 ψ0

6. Compute Vincenty's constants A′ and B ′ from

u2
A′ = 1 +
16384
(
4096 + u 2 (−768 + u 2 (320 − 175u 2 )) )
u2
B′ =
1024
(
256 + u 2 (−128 + u 2 (74 − 47u 2 )) )
7. Compute geodesic distance s from

{
Δσ = B ′ sin σ cos 2σm +
1 ⎡
4
B ′ ⎢⎣ cos σ (2 cos2 2σm − 1)

1 ⎤⎫⎪
− B ′ cos 2σm (−3 + 4 sin2 σ )(−3 + 4 cos2 2σm )⎥⎬
6 ⎦⎪
⎥ ⎪

s = bA (σ − Δσ )

8. Compute the forward azimuth α12 = α1 from


cos ψ2 sin Δω
tan α1 =
cos ψ1 sin ψ2 − sin ψ1 cos ψ2 cos Δω

Geodesics – Bessel's method 51


9. Compute azimuth α2 from
cos ψ1 sin Δω
tan α2 =
− sin ψ1 cos ψ2 + cos ψ1 sin ψ2 cos Δω

10. Compute reverse azimuth α21

α21 = α2 ± 180

Shown below is the output of a MATLAB function Vincenty_Inverse.m that solves the
inverse problem on the ellipsoid.

The ellipsoid is the GRS80 ellipsoid. φ, λ for P1 are −10 and 110 respectively and φ, λ
for P2 are −45 and 155 respectively. Computed azimuths are α12 = 140 30′ 03.017703′′
and α21 = 297 48 ′ 47.310738 ′′ , and geodesic distance s = 5783 228.548429 m .

>> Vincenty_Inverse

////////////////////////////////////////////////////
// INVERSE CASE on ellipsoid: Vincenty's method //
////////////////////////////////////////////////////

ellipsoid parameters
a = 6378137.000000000
f = 1/298.257222101000
b = 6356752.314140356100
e2 = 6.694380022901e-003
ep2 = 6.739496775479e-003

Latitude & Longitude of P1


latP1 = -10 0 0.000000 (D M S)
lonP1 = 110 0 0.000000 (D M S)

Latitude & Longitude of P2


latP2 = -45 0 0.000000 (D M S)
lonP2 = 155 0 0.000000 (D M S)

Parametric Latitudes of P1 and P2


psiP1 = -9 58 1.723159 (D M S)
psiP2 = -44 54 13.636256 (D M S)

Longitude difference on ellipsoid P1-P2


dlon = 45 0 0.000000 (D M S)

Longitude difference on auxiliary sphere P1'-P2'


domega = 9.090186019005e-001 radians
iterations = 5

Parametric Latitude of vertex P0


psiP0 = 51 12 36.239192 (D M S)

Geodesic constant u2 (u-squared)


u2 = 4.094508823114e-003

Vincenty's constants A and B


A = 1.001022842684e+000
B = 1.021536528199e-003

Geodesics – Bessel's method 52


Azimuth & Distance P1-P2
az12 = 140 30 3.017703 (D M S)
s = 5783228.548429

Reverse azimuth
alpha21 = 297 48 47.310738 (D M S)

>>

EXCEL WORKBOOK vincenty.xls FROM GEOSCIENCE AUSTRALIA

Geoscience Australia has made available an Excel workbook vincenty.xls containing four
spreadsheets labelled Ellipsoids, Direct Solution, Inverse Solution and Test Data. The Direct Solution
and Inverse Solution spreadsheets are implementations of Vincenty's equations. The Excel
workbook vincenty.xls can be downloaded via the Internet at the Geoscience Australia
website (http://www.ga.gov.au/) following the links to Geodetic Calculations then Calculate
Bearing Distance from Latitude Longitude. At this web page the spreadsheet vincenty.xls is
available for use or downloading. Alternatively, the Intergovernmental Committee on
Surveying and Mapping (ICSM) has produced an on-line publication Geocentric Datum of
Australia Technical Manual Version 2.2 (GDA Technical Manual, ICSM 2002) with a link
to vincenty.xls.

The operation of vincenty.xls is relatively simple, but since the spreadsheets use the Excel
solver for the iterative solutions of certain equations then the Iteration box must be checked
on the Calculation sheet. The Calculation sheet is found under Tools/Options on the Excel
toolbar. Also, on the Calculation sheet make sure the Maximum change box has a value of
0.000000000001.

The Direct Solution and Inverse Solution spreadsheets have statements that the spreadsheets
have been tested in the Australian region but not exhaustively tested worldwide.

To test vincenty.xls, direct and inverse solutions between points on a geographic rectangle
ABCD covering Australia were computed using vincenty.xls and MATLAB functions
Vincenty_Direct.m and Vincenty_Inverse.m. Figure 16 shows the geographic rectangle
ABCD whose sides are the meridians of longitude 110 and 155 and parallels of latitude
−10 and −45 . Several lines were chosen on and across this rectangle.

Geodesics – Bessel's method 53


Figure 16: Geographic rectangle covering Australia

P1 P2 azimuth α distance s

φ = −10 φ = −10 α12 = 94 06′ 55.752182′′


s = 4 929 703.675 416 m
λ = 110 λ = 155 α21 = 265 53′ 04.247 818 ′′

φ = −10 φ = −45 α12 = 140 30′ 03.017 703′′


s = 5 783 228.548 429 m
λ = 110 λ = 155 α21 = 297 48 ′ 47.310 738 ′′

φ = −10 φ = −45 α12 = 180 00′ 00.000 000′′


s = 3 879 089.544 659 m
λ = 110 λ = 110 α21 = 0 00′ 00.000 000′′

φ = −10 φ = −45 α12 = 219 29′ 56.982 297 ′′


s = 5 783 228.548 429 m
λ = 155 λ = 110 α21 = 62 11′ 12.689 262′′

φ = −45 φ = −10 α12 = 1 43′ 25.876 544 ′′


s = 3 880 275.684153 m
λ = 132 λ = 133 α21 = 181 14 ′ 22.613 213′′

φ = −35 φ = −36 α12 = 105 00′ 10.107 712′′


s = 4 047 421.887 193 m
λ = 110 λ = 155 α21 = 257 56′ 53.869 209′′

Table 1: Geodesic curves between P1 and P2 on the GRS80 ellipsoid

Geodesics – Bessel's method 54


Table 1 shows a number of long geodesics that are either bounding meridians of the
rectangle or geodesics crossing the rectangle. All of these results have been computed
using the MATLAB function Vincenty_Inverse.m and verified by using the MATLAB
function Vincenty_Direct.m. Each of the lines were then computed using the Inverse
Solution spreadsheet of the Excel workbook vincenty.xls; all azimuths were identical and the
differences between distances were 0.000002 m on one line and 0.000001 m on two other
lines. Each of the lines were then verified by using the Direct Solution spreadsheet (all
computed latitudes and longitudes we in exact agreement). It could be concluded that the
Excel workbook vincenty.xls gives results accurate to at least the 5th decimal of distance and
the 6th decimal of seconds of azimuth for any geodesic in Australia.

Vincenty (1975) verifies his equations by comparing his results with Rainsford's over five
test lines (Rainsford 1955). On one of these lines – line (a) φ1 = 55 45′ , λ1 = 0 00′ ,
α12 = 96 36′ 08.79960′′ , s = 14110 526.170 m on Bessel's ellipsoid a = 6377397.155 m
1 f = 299.1528128 – Vincenty finds his direct solution gives φ2 = −33 26′ 00.000012′′ ,
λ2 = 108 13′ 00.000 007 ′′ and α21 = 137 52′ 22.014 528 ′′ . We can confirm that the
MATLAB function Vincenty_Direct.m also gives these results, but it is interesting to note
that the Direct Solution spreadsheet of the Excel workbook vincenty.xls does not give these
results. This is due to the Excel solver – used to determine a value by iteration –
returning an incorrect value. Whilst the error in the Excel solver result is small, it is,
nonetheless, significant and users should be aware of the likelihood or erroneous results
over very long geodesics using vincenty.xls.

MATLAB FUNCTIONS

Shown below are two MATLAB functions Vincenty_Direct.m and Vincenty_Inverse.m


that have been written to test Vincenty's equations and his direct and inverse methods of
solution. Both functions call another function DMS.m that is also shown.

Geodesics – Bessel's method 55


MATLAB function Vincenty_Direct.m

function Vincenty_Direct
% Vincenty_Direct computes the "direct case" on the ellipsoid using
% Vinventy's method.
% Given the size and shape of the ellipsoid and the latitude and
% longitude of P1 and the azimuth and geodesic distance of P1 to P2,
% this function computes the latitude and longitude of P2 and the
% reverse azimuth P2 to P1.

%============================================================================
% Function: Vincenty_Direct
%
% Useage: Vincenty_Direct;
%
% Author:
% Rod Deakin,
% Department of Mathematical and Geospatial Sciences,
% RMIT University,
% GPO Box 2476V, MELBOURNE VIC 3001
% AUSTRALIA
% email: [email protected]
%
% Date:
% Version 1.0 2 March 2008
%
% Functions Required:
% [D,M,S] = DMS(DecDeg)
%
% Remarks:
% This function computes the DIRECT CASE on the ellipsoid. Given the size
% and shape of an ellipsoid (defined by parameters a and f, semi-major
% axis and flattening respectively) and the latitude and longitude of P1
% and the azimuth (az12) P1 to P2 and the geodesic distance (s) P1 to P2,
% the function computes the latitude and longitude of P2 and the reverse
% azimuth (az21) P2 to P1. Latitudes and longitudes of the geodesic
% vertices P0 and P0' are also output as well as distances and longitude
% difference from P1 and P2 to the relevant vertices.
%
% References:
% [1] Deakin, R.E, and Hunter, M.N., 2007. 'Geodesics on an Ellipsoid -
% Bessels' Method', School of Mathematical and Geospatial Sciences,
% RMIT University, January 2007.
% [2] Vincenty, T., 1975. 'Direct and Inverse solutions of geodesics on
% the ellipsoid with application of nested equations', Survey
% Review, Vol. 23, No. 176, pp.88-93, April 1975.
%
% Variables:
% a - semi-major axis of ellipsoid
% A - Vincenty's constant for computation of sigma
% alpha1 - azimuth P1-P2 (radians)
% az12 - azimuth P1-P2 (degrees)
% az21 - azimuth P2-P1 (degrees)
% b - semi-minor axis of ellipsoid
% A - Vincenty's constant for computation of sigma
% cos_alpha1 - cosine of azimuth of geodesic P1-P2 at P1
% dlambda - longitude difference P1 to P2 (radians)
% domega - longitude difference P1' to P2' (radians)
% d2r - degree to radian conversion factor
% e2 - eccentricity of ellipsoid squared
% ep2 - 2nd eccentricity squared
% f - flattening of ellipsoid
% flat - denominator of flattening, f = 1/flat
% lambda1 - longitude of P1 (radians)
% lambda2 - longitude of P2 (radians)
% lat1 - latitude of P1 (degrees)

Geodesics – Bessel's method 56


% lat2 - latitude of P2 (degrees)
% lon1 - longitude of P1 (degrees)
% lon2 - longitude of P2 (degrees)
% phi1 - latitude of P1 (radians)
% phi2 - latitude of P2 (radians)
% pion2 - pi/2
% psi0 - parametric latitude of P0 (radians)
% psi1 - parametric latitude of P1 (radians)
% psi2 - parametric latitude of P2 (radians)
% s - geodesic distance P1 to P2
% sigma1 - angular distance (radians) on auxiliary sphere from
% equator to P1'
% sin_alpha1 - sine of azimuth of geodesic P1-P2 at P1
% twopi - 2*pi
% u2 - geodesic constant u-squared
%
%
%============================================================================

% Define some constants


d2r = 180/pi;
twopi = 2*pi;
pion2 = pi/2;

% Set defining ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;
% a = 6377397.155; % Bessel (see Ref [2], p.91)
% flat = 299.1528128;

% Compute derived ellipsoid constants


f = 1/flat;
b = a*(1-f);
e2 = f*(2-f);
ep2 = e2/(1-e2);

%---------------------------------------
% latitude and longitude of P1 (degrees)
%---------------------------------------
lat1 = -45;
lon1 = 132;

% lat and lon of P1 (radians)


phi1 = lat1/d2r;
lambda1 = lon1/d2r;

%------------------------------------
% azimuth of geodesic P1-P2 (degrees)
%------------------------------------
az12 = 1 + 43/60 + 25.876544/3600;
%
% azimuth of geodesic P1-P2 (radians)
alpha1 = az12/d2r;

% sine and cosine of azimuth P1-P2


sin_alpha1 = sin(alpha1);
cos_alpha1 = cos(alpha1);

%------------------
% geodesic distance
%------------------
s = 3880275.684153;

% [1] Compute parametric latitude psi1 of P1


psi1 = atan((1-f)*tan(phi1));

% [2] Compute parametric latitude of vertex


psi0 = acos(cos(psi1)*sin_alpha1);

Geodesics – Bessel's method 57


% [3] Compute geodesic constant u2 (u-squared)
u2 = ep2*(sin(psi0)^2);

% [4] Compute angular distance sigma1 on the auxiliary sphere from equator
% to P1'
sigma1 = atan2(tan(psi1),cos_alpha1);

% [5] Compute the sine of the azimuth of the geodesic at the equator
sin_alphaE = cos(psi0);

% [6] Compute Vincenty's constants A and B


A = 1 + u2/16384*(4096 + u2*(-768 + u2*(320-175*u2)));
B = u2/1024*(256 + u2*(-128 + u2*(74-47*u2)));

% [7] Compute sigma by iteration


sigma = s/(b*A);
iter = 1;
while 1
two_sigma_m = 2*sigma1 + sigma;
s1 = sin(sigma);
s2 = s1*s1;
c1 = cos(sigma);
c1_2m = cos(two_sigma_m);
c2_2m = c1_2m*c1_2m;
t1 = 2*c2_2m-1;
t2 = -3+4*s2;
t3 = -3+4*c2_2m;
delta_sigma = B*s1*(c1_2m+B/4*(c1*t1-B/6*c1_2m*t2*t3));
sigma_new = s/(b*A)+delta_sigma;
if abs(sigma_new-sigma)<1e-12
break;
end;
sigma = sigma_new;
iter = iter + 1;
end;
s1 = sin(sigma);
c1 = cos(sigma);

% [8] Compute latitude of P2


y = sin(psi1)*c1+cos(psi1)*s1*cos_alpha1;
x = (1-f)*sqrt(sin_alphaE^2+(sin(psi1)*s1-cos(psi1)*c1*cos_alpha1)^2);
phi2 = atan2(y,x);
lat2 = phi2*d2r;

% [9] Compute longitude difference domega on the auxiliary sphere


y = s1*sin_alpha1;
x = cos(psi1)*c1-sin(psi1)*s1*cos_alpha1;
domega = atan2(y,x);

% [10] Compute Vincenty's constant C


x = 1-sin_alphaE^2;
C = f/16*x*(4+f*(4-3*x));

% [11] Compute longitude difference on ellipsoid


two_sigma_m = 2*sigma1 + sigma;
c1_2m = cos(two_sigma_m);
c2_2m = c1_2m*c1_2m;
dlambda = domega-(1-C)*f*sin_alphaE*(sigma+C*s1*(c1_2m+C*c1*(-1+2*c2_2m)));
dlon = dlambda*d2r;
lon2 = lon1+dlon;

% [12] Compute azimuth alpha2


y = sin_alphaE;
x = cos(psi1)*c1*cos_alpha1-sin(psi1)*s1;
alpha2 = atan2(y,x);

% [13] Compute reverse azimuth az21

Geodesics – Bessel's method 58


az21 = alpha2*d2r + 180;
if az21 > 360
az21 = az21-360;
end;

%-------------------------------------------------
% Print computed quantities, latitudes and azimuth
%-------------------------------------------------

fprintf('\n/////////////////////////////////////////////////');
fprintf('\n// DIRECT CASE on ellipsoid: Vincenty''s method //');
fprintf('\n/////////////////////////////////////////////////');
fprintf('\n\nellipsoid parameters');
fprintf('\na = %18.9f',a);
fprintf('\nf = 1/%16.12f',flat);
fprintf('\nb = %21.12f',b);
fprintf('\ne2 = %20.12e',e2);
fprintf('\nep2 = %20.12e',ep2);

fprintf('\n\nLatitude & Longitude of P1');


[D,M,S] = DMS(lat1);
if D==0 && lat1<0
fprintf('\nlatP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlatP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;
[D,M,S] = DMS(lon1);
if D==0 && lon1<0
fprintf('\nlonP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlonP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;
fprintf('\n\nAzimuth & Distance P1-P2');
[D,M,S] = DMS(az12);
fprintf('\naz12 = %4d %2d %9.6f (D M S)',D,M,S);
fprintf('\ns = %17.6f',s);

fprintf('\n\nParametric Latitude of P1');


[D,M,S] = DMS(psi1*d2r);
if D==0 && psi1<0
fprintf('\npsiP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\npsiP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nParametric Latitude of vertex P0');


[D,M,S] = DMS(psi0*d2r);
if D==0 && psi0<0
fprintf('\npsiP0 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\npsiP0 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nGeodesic constant u2 (u-squared)');


fprintf('\nu2 = %20.12e',u2);

fprintf('\n\nangular distance on auxiliary sphere from equator to P1''');


fprintf('\nsigma1 = %20.12e radians',sigma1);

fprintf('\n\nVincenty''s constants A and B');


fprintf('\nA = %20.12e',A);
fprintf('\nB = %20.12e',B);

fprintf('\n\nangular distance sigma on auxiliary sphere from P1'' to P2''');


fprintf('\nsigma = %20.12e radians',sigma);

Geodesics – Bessel's method 59


fprintf('\niterations = %2d',iter);

fprintf('\n\nLatitude of P2');
[D,M,S] = DMS(lat2);
if D==0 && lat2<0
fprintf('\nlatP2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlatP2 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nVincenty''s constant C');


fprintf('\nC = %20.12e',C);

fprintf('\n\nLongitude difference P1-P2');


[D,M,S] = DMS(dlon);
if D==0 && dlon<0
fprintf('\ndlon = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ndlon = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nLongitude of P2');
[D,M,S] = DMS(lon2);
if D==0 && lon2<0
fprintf('\nlon2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlon2 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nReverse azimuth');
[D,M,S] = DMS(az21);
fprintf('\nalpha21 = %3d %2d %9.6f (D M S)',D,M,S);

fprintf('\n\n');

MATLAB function Vincenty_Inverse.m

function Vincenty_Inverse
% Vincenty_Inverse computes the "inverse case" on the ellipsoid using
% Vinventy's method.
% Given the size and shape of the ellipsoid and the latitudes and
% longitudes of P1 and P2 this function computes the geodesic distance
% P1 to P2 and the forward and reverse azimuths

%============================================================================
% Function: Vincenty_Inverse
%
% Useage: Vincenty_Inverse;
%
% Author:
% Rod Deakin,
% Department of Mathematical and Geospatial Sciences,
% RMIT University,
% GPO Box 2476V, MELBOURNE VIC 3001
% AUSTRALIA
% email: [email protected]
%
% Date:
% Version 1.0 7 March 2008
%
% Functions Required:
% [D,M,S] = DMS(DecDeg)
%
% Remarks:
% This function computes the INVERSE CASE on the ellipsoid. Given the size

Geodesics – Bessel's method 60


% and shape of an ellipsoid (defined by parameters a and f, semi-major
% axis and flattening respectively) and the latitudes and longitudes of P1
% this function computes the forward azimuth (az12) P1 to P2, the reverse
% azimuth (az21) P2 to P1 and the geodesic distance (s) P1 to P2.
%
% References:
% [1] Deakin, R.E, and Hunter, M.N., 2007. 'Geodesics on an Ellipsoid -
% Bessels' Method', School of Mathematical and Geospatial Sciences,
% RMIT University, January 2007.
% [2] Vincenty, T., 1975. 'Direct and Inverse solutions of geodesics on
% the ellipsoid with application of nested equations', Survey
% Review, Vol. 23, No. 176, pp.88-93, April 1975.
%
% Variables:
% A - Vincenty's constant for computation of sigma
% a - semi-major axis of ellipsoid
% alpha1 - azimuth at P1 for the line P1-P2 (radians)
% alpha2 - azimuth at P2 for the line P1-P2 extended (radians)
% az12 - azimuth P1-P2 (degrees)
% az21 - azimuth P2-P1 (degrees)
% B - Vincenty's constant for computation of sigma
% b - semi-minor axis of ellipsoid
% C - Vincenty's constant for computation of longitude
% difference
% cdo - cos(domega)
% cos_sigma - cos(sigma)
% delta_sigma - small change in sigma
% dlambda - longitude difference P1 to P2 (radians)
% domega - longitude difference P1' to P2' (radians)
% d2r - degree to radian conversion factor
% e2 - eccentricity of ellipsoid squared
% ep2 - 2nd eccentricity squared
% f - flattening of ellipsoid
% flat - denominator of flattening, f = 1/flat
% lambda1 - longitude of P1 (radians)
% lambda2 - longitude of P2 (radians)
% lat1 - latitude of P1 (degrees)
% lat2 - latitude of P2 (degrees)
% lon1 - longitude of P1 (degrees)
% lon2 - longitude of P2 (degrees)
% phi1 - latitude of P1 (radians)
% phi2 - latitude of P2 (radians)
% pion2 - pi/2
% psi0 - parametric latitude of P0 (radians)
% psi1 - parametric latitude of P1 (radians)
% psi2 - parametric latitude of P2 (radians)
% s - geodesic distance P1 to P2
% sdo - sin(domega)
% sigma - angular distance (radians) on auxiliary sphere from P1'
% to P2'
% sin_alphaE - sine of azimuth of geodesic P1-P2 at equator
% sin_sigma - sin(sigma)
% twopi - 2*pi
% u2 - geodesic constant u-squared
%
%
%============================================================================

% Define some constants


d2r = 180/pi;
twopi = 2*pi;
pion2 = pi/2;

% Set defining ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;
% a = 6377397.155; % Bessel (see Ref [2], p.91)
% flat = 299.1528128;

Geodesics – Bessel's method 61


% Compute derived ellipsoid constants
f = 1/flat;
b = a*(1-f);
e2 = f*(2-f);
ep2 = e2/(1-e2);

%---------------------------------------
% latitude and longitude of P1 (degrees)
%---------------------------------------
lat1 = -10;
lon1 = 110;

% lat and lon of P1 (radians)


phi1 = lat1/d2r;
lambda1 = lon1/d2r;

%---------------------------------------
% latitude and longitude of P2 (degrees)
%---------------------------------------
lat2 = -45;
lon2 = 155;

% lat and lon of P2 (radians)


phi2 = lat2/d2r;
lambda2 = lon2/d2r;

% [1] Compute parametric latitudes psi1 and psi2 of P1 and P2


psi1 = atan((1-f)*tan(phi1));
psi2 = atan((1-f)*tan(phi2));

s1 = sin(psi1);
s2 = sin(psi2);
c1 = cos(psi1);
c2 = cos(psi2);

% [2] Compute longitude difference dlambda on the ellipsoid


dlambda = lambda2-lambda1; % (radians)
dlon = lon2-lon1; % (degrees)

% [3] Compute longitude difference domega on the auxiliary sphere by


% iteration
domega = dlambda;
iter = 1;
while 1
sdo = sin(domega);
cdo = cos(domega);
x = c2*sdo;
y = c1*s2 - s1*c2*cdo;
sin_sigma = sqrt(x*x + y*y);
cos_sigma = s1*s2 + c1*c2*cdo;
sigma = atan2(sin_sigma,cos_sigma);
sin_alphaE = c1*c2*sdo/sin_sigma;
% Compute c1_2m = cos(2*sigma_m)
x = 1-(sin_alphaE*sin_alphaE);
c1_2m = cos_sigma - (2*s1*s2/x);
% Compute Vincenty's constant C
C = f/16*x*(4+f*(4-3*x));
% Compute domega
c2_2m = c1_2m*c1_2m;
domega_new = dlambda+(1-C)*f*sin_alphaE*(sigma+C*sin_sigma*(c1_2m+C*cos_sigma*(-
1+2*c2_2m)));
if abs(domega-domega_new)<1e-12
break;
end;
domega = domega_new;
iter = iter + 1;
end;

Geodesics – Bessel's method 62


% [4] Compute parametric latitude of vertex
psi0 = acos(sin_alphaE);

% [5] Compute geodesic constant u2 (u-squared)


u2 = ep2*(sin(psi0)^2);

% [6] Compute Vincenty's constants A and B


A = 1 + u2/16384*(4096 + u2*(-768 + u2*(320-175*u2)));
B = u2/1024*(256 + u2*(-128 + u2*(74-47*u2)));

% [7] Compute geodesic distance s


t1 = 2*c2_2m-1;
t2 = -3+4*sin_sigma*sin_sigma;
t3 = -3+4*c2_2m;
delta_sigma = B*sin_sigma*(c1_2m+B/4*(cos_sigma*t1-B/6*c1_2m*t2*t3));
s = b*A*(sigma-delta_sigma);

% [8] Compute forward azimuth alpha1


y = c2*sdo;
x = c1*s2 - s1*c2*cdo;
alpha1 = atan2(y,x);
if alpha1<0
alpha1 = alpha1+twopi;
end;
az12 = alpha1*d2r;

% [9] Compute azimuth alpha2


y = c1*sdo;
x = -s1*c2 + c1*s2*cdo;
alpha2 = atan2(y,x);

% [10] Compute reverse azimuth az21


az21 = alpha2*d2r + 180;
if az21 > 360
az21 = az21-360;
end;

%-------------------------------------------------
% Print computed quantities, latitudes and azimuth
%-------------------------------------------------

fprintf('\n////////////////////////////////////////////////////');
fprintf('\n// INVERSE CASE on ellipsoid: Vincenty''s method //');
fprintf('\n////////////////////////////////////////////////////');
fprintf('\n\nellipsoid parameters');
fprintf('\na = %18.9f',a);
fprintf('\nf = 1/%16.12f',flat);
fprintf('\nb = %21.12f',b);
fprintf('\ne2 = %20.12e',e2);
fprintf('\nep2 = %20.12e',ep2);

fprintf('\n\nLatitude & Longitude of P1');


[D,M,S] = DMS(lat1);
if D==0 && lat1<0
fprintf('\nlatP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlatP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;
[D,M,S] = DMS(lon1);
if D==0 && lon1<0
fprintf('\nlonP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlonP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;
fprintf('\n\nLatitude & Longitude of P2');
[D,M,S] = DMS(lat2);
if D==0 && lat2<0

Geodesics – Bessel's method 63


fprintf('\nlatP2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlatP2 = %3d %2d %9.6f (D M S)',D,M,S);
end;
[D,M,S] = DMS(lon2);
if D==0 && lon2<0
fprintf('\nlonP2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nlonP2 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nParametric Latitudes of P1 and P2');


[D,M,S] = DMS(psi1*d2r);
if D==0 && psi1<0
fprintf('\npsiP1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\npsiP1 = %3d %2d %9.6f (D M S)',D,M,S);
end;
[D,M,S] = DMS(psi2*d2r);
if D==0 && psi2<0
fprintf('\npsiP2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\npsiP2 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nLongitude difference on ellipsoid P1-P2');


[D,M,S] = DMS(dlon);
if D==0 && dlon<0
fprintf('\ndlon = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ndlon = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nLongitude difference on auxiliary sphere P1''-P2''');


fprintf('\ndomega = %20.12e radians',sigma);
fprintf('\niterations = %2d',iter);

fprintf('\n\nParametric Latitude of vertex P0');


[D,M,S] = DMS(psi0*d2r);
if D==0 && psi0<0
fprintf('\npsiP0 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\npsiP0 = %3d %2d %9.6f (D M S)',D,M,S);
end;

fprintf('\n\nGeodesic constant u2 (u-squared)');


fprintf('\nu2 = %20.12e',u2);

fprintf('\n\nVincenty''s constants A and B');


fprintf('\nA = %20.12e',A);
fprintf('\nB = %20.12e',B);

fprintf('\n\nAzimuth & Distance P1-P2');


[D,M,S] = DMS(az12);
fprintf('\naz12 = %4d %2d %9.6f (D M S)',D,M,S);
fprintf('\ns = %17.6f',s);

fprintf('\n\nReverse azimuth');
[D,M,S] = DMS(az21);
fprintf('\nalpha21 = %3d %2d %9.6f (D M S)',D,M,S);

fprintf('\n\n');

Geodesics – Bessel's method 64


MATLAB function DMS.m

function [D,M,S] = DMS(DecDeg)


% [D,M,S] = DMS(DecDeg) This function takes an angle in decimal degrees and returns
% Degrees, Minutes and Seconds

val = abs(DecDeg);
D = fix(val);
M = fix((val-D)*60);
S = (val-D-M/60)*3600;

if abs(S-60) < 5.0e-10


M = M + 1;
S = 0.0;
end
if M == 60
D = D + 1;
M = 0.0;
end
if D >=360
D = D - 360;
end

if(DecDeg<=0)
D = -D;
end
return

REFERENCES

Bessel, F. W., (1826), 'On the computation of geographical longitude and latitude from
geodetic measurements', Astronomische Nachrichten (Astronomical Notes), Band 4
(Volume 4), Number 86, Spalten 241-254 (Columns 241-254), Altona 1826.

DSB, (1971), Dictionary of Scientific Biography, C.C. Gillispie (Editor in Chief), Charles
Scribner's Sons, New York.

ICSM, (2002). Geocentric Datum of Australia Technical Manual – Version 2.2,


Intergovernmental Committee on Surveying and Mapping (ICSM), February 2002,
available online at: http://www.icsm.gov.au/icsm/gda/gdatm/index.html
(last accessed March 2006)

Jank, W., Kivioja, L. A., (1980), 'Solution of the direct and inverse problems on reference
ellipsoids by point-by-point integration using programmable pocket calculators',
Surveying and Mapping, Vol. 15, No. 3, pp. 325-337.

Jordan/Eggert/Kneissl, (1959), Handbuch der Vermessungskunde, Band IV


Mathematische Geodäsie, J.B. Metzlersche Verlagsbuchnandlung, Stuttgart, pp. 978-
987.

Geodesics – Bessel's method 65


Kivioja, L. A., (1971), 'Computation of geodetic direct and indirect problems by
computers accumulating increments from geodetic line elements', Bulletin
Geodesique, No. 99, pp. 55-63.

McCaw, G. T., (1932-33), 'Long lines on the Earth', Empire Survey Review, Vol. 1, No. 6,
pp. 259-263 and Vol. 2, No. 9, pp. 156-163.

McCaw, G. T., (1934), 'Long lines on the Earth: the direct problem', Empire Survey
Review, Vol. 2, No. 12, pp. 346-352 and Vol. 2, No. 14, pp. 505-508.

Pittman, M. E., (1986), 'Precision direct and inverse solution of the geodesic', Surveying
and Mapping, Vol. 46, No. 1, pp. 47-54.

Rainsford, H. F., (1955), 'Long geodesics on the ellipsoid', Bulletin Geodesique, No. 37, pp.
12-22.

Rapp, R. H., (1981), Geometric Geodesy – Volume II (Advanced Techniques),


Department of Geodetic Science, The Ohio State University, Columbus, Ohio 43210,
March, 1981.

Thomas, P. D., (1952), Conformal Projections in Geodesy and Cartography, Special


Publication No. 251, Coast and Geodetic Survey, United States Department of
Commerce, Washington, D.C.

Thomas, P. D., (1970), Spheroidal Geodesics, Reference Systems, & Local Geometry. SP–
138 U.S. Naval Oceanographic Office, Washington, D.C.

Vincenty, T., (1975), 'Direct and inverse solutions on the ellipsoid with application of
nested equations', Survey Review, Vol. 23, No. 176, pp. 88-93.

Vincenty, T., (1976), 'Correspondence: solutions of geodesics', Survey Review, Vol. 23, No.
180, p. 294.

Geodesics – Bessel's method 66


GEODESICS ON AN ELLIPSOID – PITTMAN'S METHOD

R.E. Deakin and M.N. Hunter


School of Mathematical and Geospatial Sciences, RMIT University
GPO Box 2476V, MELBOURNE, VIC 3001
Email: [email protected]
Presented at the Spatial Sciences Institute Biennial International Conference (SSC2007),
Hobart, Tasmania, 14-18 May 2007.

ABSTRACT
The direct and inverse problems of the geodesic on an ellipsoid are fundamental
geodetic operations. This paper presents a detailed derivation of a set of recurrence
relationships that can be used to obtain solutions to the direct and inverse problems with
sub-millimetre accuracies for any length of line anywhere on an ellipsoid. These
recurrence relationships were first described by Pittman (1986), but since then, little or
nothing about them has appeared in the geodetic literature. This is unusual for such an
elegant technique and it is hoped that this paper can redress this situation. Pittman's
method has much to recommend it.

BIOGRAPHIES OF PRESENTERS
Rod Deakin and Max Hunter are lecturers in the School of Mathematical and Geospatial
Sciences, RMIT University; Rod is a surveyor and Max is a mathematician, and both
have extensive experience teaching undergraduate students.

INTRODUCTION
Twenty-one years ago (March 1986), Michael E. Pittman, an assistant professor
of mathematical physics with the Department of Physics, University of New Orleans,
Louisiana USA, published a paper titled 'Precision Direct and Inverse Solutions of the
Geodesic' in Surveying and Mapping (the journal of the American Congress on
Surveying & Mapping, now called Surveying and Land Information Systems). It was
probably an unusual event – a physicist writing a technical article on geodetic
computation – but even more unusual was Pittman's method; or as he put it in his paper,
"The following method is rather different." And it certainly is.
Usual approaches could be roughly divided into two groups: (i) numerical
integration schemes and (ii) series expansion of elliptic integrals. The first group could
be further divided into integration schemes based on simple differential relationships of
the ellipsoid (e.g., Kivioja 1971, Jank & Kivioja 1980, Thomas & Featherstone 2005),
or numerical integration of elliptic integrals that are usually functions of elements of the
ellipsoid and an auxiliary sphere (e.g., Saito 1970, 1979 and Sjöberg 2006). The second
group includes the original method of F. W. Bessel (1826) that used an auxiliary sphere
and various modifications to his method (e.g., Rainsford 1955, Vincenty 1975, 1976 and
Bowring 1983, 1984).

1
Pittman developed simple recurrence relationships for the evaluation of elliptic
integrals that yield distance and longitude difference between a point on a geodesic and
the geodesic vertex. These equations can then be used to solve the direct and inverse
problems. Pittman's technique is not limited by distance, does not involve any auxiliary
surfaces, does not use arbitrarily truncated series and its accuracy is limited only by
capacity of the computer used.
Pittman's paper was eight pages long and five of those contained a FORTRAN
computer program. In the remaining three pages he presented a very concise
development of two recurrence relationships and how they can be used to solve the
direct and inverse problems of the geodesic on an ellipsoid (more about this later). His
paper, a masterpiece of brevity, contained a single reference and an acknowledgement
to Clifford J. Mugnier – then a lecturer in the Department of Civil Engineering,
University of New Orleans – for numerous discussions. Unlike other published
methods which have been discussed and developed in detail over the years, Pittman's
method seems to have received no further treatment to our knowledge in the academic
literature, excepting brief mentions in bibliographies and reference lists. Our purpose,
in this paper, is to explain Pittman's elegant method as well as provide some useful
information about the properties of the geodesic on an ellipsoid.

The Direct and Inverse problems of the geodesic on an ellipsoid


In geodesy, the geodesic is a unique curve on the surface of an ellipsoid defining
the shortest distance between two points. A geodesic will cut meridians of an ellipsoid
at angles α , known as azimuths and measured clockwise from north 0º to 360 . Figure
1 shows a geodesic curve C between two points A (φ A , λA ) and B (φB , λB ) on an
ellipsoid. φ , λ are geodetic latitude and longitude respectively and an ellipsoid is taken
to mean a surface of revolution created by rotating an ellipse about its minor axis, NS.

n vertex φmax
dia

C
e ri

• B
•α
hm

αAB de s ic BA
geo
Greenwic

al

A
• b
rm

no
rm
no

a
φA l O φB

a HA • H a
B
equator
λB
λA

Fig. 1: Geodesic curve on an ellipsoid

2
The geodesic curve C of length s from A to B has a forward azimuth α AB
measured at A and a reverse azimuth α BA measured at B and α AB ≠ α BA . The direct
problem on an ellipsoid is: given latitude and longitude of A and azimuth α AB and
geodesic distance s, compute the latitude and longitude of B and the reverse azimuth
α BA . The inverse problem is: given the latitudes and longitudes of A and B, compute
the forward and reverse azimuths α AB , α BA and the geodesic distance s.
The geodesic is one of several curves of interest in geodesy. Other curves are: (i)
normal section curves that are plane curves containing the normal at one of the terminal
points; in Figure 1 there would be two normal section curves joining A and B and both
would be of different lengths and also, both longer than the geodesic; (ii) curve of
alignment that is the locus of all points Pk where the normal section plane through Pk
contains the terminal points of the line; and (iii) great elliptic arcs that are plane curves
containing the terminal points of the line and the centre of the ellipsoid. Normal section
curves, curves of alignment and great elliptic arcs are all longer than the geodesic and
Bowring (1972) gives equations for the differences in length between these curves and
the geodesic.

Some ellipsoid relationships


The size and shape of an ellipsoid is defined by one of three pairs of parameters:
(i) a, b where a and b are the semi-major and semi-minor axes lengths of an ellipsoid
respectively, or (ii) a, f where f is the flattening of an ellipsoid, or (iii) a, e 2 where e 2
is the square of the first eccentricity of an ellipsoid. The ellipsoid parameters a, b, f , e 2
are related by the following equations
a −b b a 2 − b2 b2
f = = 1 − ; b = a (1 − f ) ; e 2 = = 1 − = f (2 − f ) (1)
a a a2 a2
The second eccentricity e′ of an ellipsoid is also of use and
a 2 − b2 e2 f (2 − f )
( e′) = = =
2
(2)
1− e (1 − f )
2 2 2
b
In Figure 1, the normals to the surface at A and B intersect the rotational axis of
the ellipsoid (NS line) at H A and H B making angles φ A , φB with the equatorial plane of
the ellipsoid. These are the latitudes of A and B respectively. The longitudes λA , λB are
the angles between the Greenwich meridian plane and the meridian planes ONAH A and
ONBH B containing the normals through A and B. φ and λ are curvilinear coordinates
and meridians of longitude (curves of constant λ ) and parallels of latitude (curves of
constant φ ) are parametric curves on the ellipsoidal surface. Planes containing the
normal to the ellipsoid intersect the surface creating elliptical sections known as normal
sections. Amongst the infinite number of possible normal sections at a point, each
having a certain radius of curvature, two are of interest: (i) the meridian section,
containing the axis of revolution of the ellipsoid and having the least radius of
curvature, denoted by ρ (rho), and (ii) the prime vertical section, perpendicular to the
meridian plane and having the greatest radius of curvature, denoted by ν (nu).

3
a (1 − e 2 ) a
ρ= and ν= (3)
(1 − e sin φ ) (1 − e sin φ )
3 1
2 2 2 2 2 2

In the development that follows, use


will be made of relationships that can be α+dα
obtained from the differential rectangle on Q
• φ+dφ
the ellipsoid shown in Figure 2. Here P

ρ dφ
α
and Q are two points on the surface ds
P
connected by a curve of length ds with •
azimuth α at P. The meridians λ and ν cos φ dλ φ
λ + d λ , and parallels φ and φ + dφ form
λ
a differential rectangle on the surface of λ+dλ
the ellipsoid.
From Figure 2 the following Fig. 2: Differential rectangle on ellipsoid
relationships can be obtained
ds sin α = ν cos φ d λ and ds cos α = ρ dφ (4)

Mathematical definition of a geodesic


A curve drawn on a surface so that its osculating plane at any point on the surface
contains the normal to the surface is a geodesic (Lauf 1983). This definition, including
a definition of the osculating plane, can be explained briefly by the following.
A point P on a curve (on a surface) has a position vector
r ( t ) = x ( t ) i + y ( t ) j + z ( t ) k where i,j,k are unit vectors in the directions of the x,y,z
Cartesian coordinate axes and t is some scalar parameter. As t varies then the vector r
sweeps out the curve C on the surface, hence the distance s along the curve is a function
ds d
of t, given via = r ( t ) . Differentiating the vector r with respect to s gives a unit
dt dt
tangent vector t and differentiating t with respect to s gives the curvature vector κ n ,
perpendicular to t. n is the principal normal vector, κ (kappa) is the curvature and
1
ρ = is the radius of curvature and also the radius of the osculating (kissing) circle
κ
touching P.
The osculating plane at P contains both t and n (and the osculating circle), and
when this plane also contains the normal to the surface then the curvature κ is least and
ρ is a maximum; this is Meunier's theorem (Lauf 1983), a fundamental theorem of
surfaces. Therefore, if P and Q are very close and both lie on the surface and in the
osculating plane, then the distance ds between them is the shortest possible distance on
the suface.

4
The characteristic equation of a geodesic
The mathematical definition of a geodesic does little to help us develop solutions
to the problem of computing distances of geodesics on an ellipsoid. It does lead to the
characteristic equation of a geodesic, and this equation is the basis of all solutions to
computing geodesic distances. This equation
ν cos φ sin α = constant (5)
is known as Clairaut's equation in honour of the French mathematical physicist Alexis-
Claude Clairaut (1713-1765). In a paper in 1733 titled Determination géométric de la
perpendicular à la méridienne tracée par M. Cassini, ... Clairaut made an elegant study
of the geodesics of surfaces of revolution and stated his theorem embodied in the
equation above (Struik 1933). His paper also included the property already pointed out
by Johann Bernoulli (1667-1748): the osculating plane of the geodesic is normal to the
surface (DSB 1971)
The characteristic equation of a geodesic shows that the geodesic on the ellipsoid
has the intrinsic property that at any point, the product of the radius r = ν cos φ of the
parallel of latitude and the sine of the azimuth, sin α , of the geodesic at that point is a
constant. This means that as r decreases in higher latitudes, in both the northern and
southern hemispheres, sin α changes until it reaches a maximum or minimum of ±1 .
Such a point is known as a vertex and the latitude φ will take maximum value φ0 .
P0 vertex
φ max •
s
P
φ •
∆λ
A B A'
• equator •

node λ λ0 node node A
∆ λ4

φ min •
vertex

Fig. 3: Schematic diagram of the oscillation of a geodesic on an ellipsoid


Thus the geodesic oscillates over the surface of the ellipsoid between two
parallels of latitude having a maximum in the Northern and Southern Hemispheres and
crossing the equator at nodes. As we will demonstrate later, due to the eccentricity of
the ellipsoid, the geodesic will not repeat after a complete revolution.
Figure 3 shows a schematic diagram of the oscillation of a geodesic on an
ellipsoid. P is a point on a geodesic that crosses the equator at A, heading in a north-
easterly direction reaching a maximum northerly latitude φmax at the vertex P0 (north),
then descends in a south-easterly direction crossing the equator at B, reaching a
maximum southerly latitude φmin at P0 (south), then ascends in a north-easterly
direction crossing the equator again at A′ . This is one complete revolution of the
geodesic, but λA′ does not equal λA due to the eccentricity of the ellipsoid. Hence we
say that the geodesic curve does not repeat after a complete revolution.

5
EQUATIONS FOR COMPUTATION ALONG GEODESICS
Using Clairaut's equation and simple differential relationships, expressions for
distances s and longitude differences ∆λ (see Figure 3) between P on a geodesic and
the vertex P0 can be obtained. These expressions are in the form of elliptic integrals,
which by their nature do not have exact (or closed) solutions.
Expanding the integrands into infinite series, integrating term-by-term and then
truncating to a finite number of terms is the usual technique to obtain working solutions
for s and ∆λ (e.g., Thomas 1970). In this section, we show how this method can be
simplified by using recurrence relationships to generate solutions to the integrals in the
series. Our relationships are slightly different from Pittman (1986) and our notation is a
little different but in all other respects, we have followed his elegant approach.

Relationships between parametric latitude ψ and geodetic latitude Φ


Development of formulae is simplified if parametric latitude ψ is used rather
than geodetic latitude φ . The connections between the two latitudes can be obtained
from the following relationships.
Figure 4 shows a portion of a meridian
NPE of an ellipsoid having semi-major axis z
auxiliary circle
OE = a and semi-minor axis ON = b . P is a N'
point on the ellipsoid and Q is a point on an Q
N
auxiliary circle centred on O of radius a. P and •
Q have the same perpendicular distance from the • P
ta n
axis of revolution ON. The normal to the b ge
nt
ellipsoid at P cuts the major axis at an angle φ
l
ma
a

(the geodetic latitude) and intersects the


n or

rotational axis at H and the distance PH = ν .


The angle QOE = ψ is the parametric latitude. O ψ φ M E
a w
The Cartesian equation of the ellipse is
w2 z 2 H•
+ = 1 and the Cartesian equation of the
a 2 b2
auxiliary circle is w2 + z 2 = a 2 . We may re- Fig. 4: Meridian section of ellipsoid
arrange both equations so that w2 is on the left-hand side of the equals sign giving
a2
w2 = a 2 − 2 z 2 (ellipse) and w2 = a 2 − z 2 (circle). Now, since the w-coordinates of P
b
a2 2 b
and Q are the same then a − 2 z P = a 2 − zQ2 which leads to z P = zQ .
2

b a
Using this relationship
w = OM = a cosψ and z = MP = b sin ψ (6)
dw dz
and differentiating equations (6) with respect to ψ gives = − a sinψ , = b cosψ
dψ dψ
dz dz dψ b
and the chain rule gives = = − cotψ .
dw dψ dw a

6
dz
Now by definition, is the gradient of the tangent and from Figure 4 we may write
dw
= − tan ( 90 − φ ) = − cot φ . Equating the two expressions for dz dw gives a
dz
dw
relationship between ψ and φ as
b
tanψ = tan φ = (1 − f ) tan φ (7)
a
From equation (6) and Figure 4, w = a cosψ = ν cos φ and using equation (3) gives
cos φ
cosψ = (8)
(1 − e sin 2 φ )
2 12

Alternatively, using the trigonometric identity sin 2 A + cos 2 A = 1 , equation (8) can be
written as
sinψ
sin φ = (9)
(1 − e cos 2 ψ )
2 12

The latitudes Φ0 and ψ0 of the geodesic vertex


Denoting the latitude of the vertex as φ0 (a maximum), Clairaut's equation (5) gives

ν 0 cos φ0 = constant = ν cos φ sin α (10)


Denoting the parametric latitude of the vertex as ψ 0 and using a cosψ = ν cos φ from
before, equation (10) becomes a cosψ 0 = a cosψ sin α and ψ 0 is defined as

cosψ 0 = cosψ sin α (11)


Squaring both sides of equation (11) and using again the identity sin A + cos A = 1 we
2 2

can obtain the azimuth α of a geodesic as

cos 2 ψ − cos 2 ψ 0
cos α = (12)
cosψ
From equation (11) we see that if the azimuth α of a geodesic is known at P having
parametric latitude ψ , the parametric latitude ψ 0 of the vertex P0 can be computed.
Conversely, given ψ and ψ 0 of points P and P0 the azimuth of the geodesic between
them may be computed from equation (12).
ds dλ
In the following sections, two differential equations; one for and the other for ,
dψ dψ
will be developed that will enable solutions for the geodesic distance s and the
longitude difference ∆λ between P and the vertex P0 .

7
ds dλ
Differential equations for distance and longitude difference
dψ dψ
From equation (9) we may write sin 2 ψ = (1 − e 2 cos 2 ψ ) sin 2 φ and differentiating
implicitly and re-arranging gives

dφ (1 − e sin φ ) sinψ cosψ


2 2

= (13)
dψ (1 − e 2 cos 2 ψ ) sin φ cos φ
ds
Using the chain rule and equation (4) gives an expression for the derivative as

ds ds dφ ρ (1 − e sin φ ) sinψ cosψ


2 2

= = (14)
dψ dφ dψ cos α (1 − e 2 cos 2 ψ ) sin φ cos φ
b2
Using equations (7), (8), (9) and the fact that 1 − e 2 = , we may write
a2

(1 − e2 cos2 ψ )
12
ds
= a cosψ (15)
dψ ( cos2 ψ − cos2 ψ 0 )
12

Similarly, the chain rule and equations (4) and (15) gives

(1 − e2 cos2 ψ )
12
d λ d λ ds sin α
= = a cosψ (16)
dψ ds dψ ν cos φ ( cos2 ψ − cos2 ψ 0 )
12

Using equation (10) and the relationship a cosψ = ν cos φ , we may write

d λ cosψ 0 (1 − e cos ψ )
2 2 12

= (17)
dψ cosψ ( cos 2 ψ − cos 2 ψ )1 2
0

Equations (15) and (17) are the basic differential equations that will yield solutions for
distance s and longitude difference ∆λ along the geodesic curve between P and the
vertex P0 .

Formula for computing geodesic distance s between P and the vertex P0


Equation (15) can be simplified by letting u = sinψ and u0 = sinψ 0 , so that
du
= cosψ and cos 2 ψ − cos 2 ψ 0 = u02 − u 2 , hence

du (1 − e cos ψ )
2 2 12
ds
=a (18)
dψ dψ ( u 2 − u 2 )1 2
0

8
du a (1 − e cos ψ )
2 2 12
ds ds
The chain rule gives = = but using cos 2 ψ = 1 − sin 2 ψ
du dψ dψ (u 2 − u 2 )
12
0

and equations (1) and (2) we are able to obtain, after some manipulation

ds b (1 + ε u )
2 12

= (19)
du ( u 2 − u 2 )1 2
0

where ε = ( e′ ) . The geodesic distance s between P and the vertex P0 is given by


2

p = u0
(1 + ε p ) 2 12

s=b ∫ u −p dp (20)
p =u ( )
2
0
2 12

where sinψ ≤ p ≤ sinψ 0 . Equation (20) can be simplified by use of the binomial series
and the numerator of the integrand is given by

(1 + ε p )
2 12
= ∑ Bn2 ( ε p 2 )
1 n
(21)
n=0

1
where Bn2 are binomial coefficients computed from the recurrence relationship
3 − 2n 12
Bn2 =
Bn −1 , n ≥ 1 and B02 = 1
1
1
(22)
2n
Equation (20) can now be written as
u0 ∞ ∞ u0 ∞
1 p 2n
s = b∫ ∑B ε p dp = b∑ Bn ε ∫ dp = b∑ ε n Bn2 I n
1 1 1
n 2n n
2 2
(23)
(u ) (u )
n
2 12 2 12
u
2
0 −p n =0 n =0 u
2
0 −p n =0

u0
p 2n
where In = ∫ dp , for n ≥ 0 (24)
(u − p2 )
2 12
u 0

The solution of the integral I n is fundamental to the computation of the distance s


along the geodesic between P and P0 , and the usual technique is to find solutions for
each integral I n and expand equation (23) into a finite series; e.g. Thomas (1970, pp.
33-34). Pittman's (1986) approach, outlined below, was to developed the integral I n as
a recurrence equation having the general form I n = an −1 + bn −1 I n −1 where the coefficients
an −1 and bn −1 are functions of n, ψ and ψ 0 and an initial value of I 0 is a function of
ψ and ψ 0 only.
−p
u0 u0 u0
p 2n
∫ dp = − ∫ p 2 n −1 dp = − ∫ p 2 n −1
d 2
( u0 − p 2 ) dp
12
Now In =
u (u 2
0 −p )
2 12
u (u 2
0 −p )
2 12
u
dp
and using integration by parts (e.g., Ayres 1972) the integral I n becomes

9
p = u0
I n = − ⎡⎢ p 2 n −1 ( u02 − p 2 ) − ∫ ( u02 − p 2 ) ( 2n − 1) p 2 n − 2 dp ⎤⎥
12 12

⎣ ⎦ p =u
p 2n−2
u0

= u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) ∫ ( u02 − p 2 )
12
dp
u (u 2
0 −p 2 12
)
= u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) ⎡⎣u02 I n −1 − I n ⎤⎦
12
(25)
and

2n I n = u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) u02 I n −1
12
for n = 1, 2,3,… (26)

so that u = Uu0 , u02 − u 2 = u02 (1 − U 2 ) giving


u
Let U =
u0

2n I n = (Uu0 ) u0 (1 − U 2 ) + ( 2n − 1) u02 I n−1


2 n −1 12
for n = 1, 2,3,… (27)
2n I n 2 ( n − 1) u02
Let J n = so that J n −1 = I n −1 and the recurrence formula for I n becomes
u02 n u02 n
a simpler recurrence formula for J n
2n − 1
J n = U 2 n −1 1 − U 2 + J n −1 for n = 2, 3,… (28)
2 ( n − 1)
with initial condition
2 I1
J1 =
= U 1 − U 2 + I0 (29)
u02
I 0 has a simple result derived from equation (24) as follows:

( )
u0
2 −1 2
I 0 = (1 u0 ) ∫ 1 − [ p u0 ] dp (30)
u

and with the transformation p = u0 cos θ , dp dθ = −u0 sin θ and 1 − [ p u0 ] = 1 − cos 2 θ


2

0
⎛u⎞
I0 = ∫ ( −1) dθ = arccos ⎜ ⎟ = arccos U (31)
⎛u ⎞
θ = arccos⎜ ⎟
⎝ u0 ⎠
⎝ u0 ⎠

Using these results, the distance s along the geodesic between P and the vertex P0 is

⎧ 1 ∞ 1 ⎫
s = b ⎨ I 0 + ∑ ε nu02 n Bn2 J n ⎬
1

⎩ 2 n =1 n ⎭
b b b
= bI 0 + ε u02 B12 J1 + ε 2u04 B22 J 2 + ε 3u06 B32 J 3 +
1 1 1

2 4 6
= D0 + D1 + D2 + D3 + (32)

10
Formula for computing difference in longitude ∆λ between P and P0
Using the binomial series we may write equation (17) as
dλ ∞
cos 2 n −1 ψ
= cosψ 0 ∑ ( −1) e 2 n Bn2
n 1
(33)
dψ ( cos2 ψ − cos2 ψ 0 )
12
n=0

and the difference in longitude between P and the vertex P0 is


ψ0
dλ ∞
∆λ = ∫ dθ = cosψ 0 ∑ ( −1) e 2 n Bn2 Ln
n 1
(34)
θ =ψ dθ n=0

where the integral Ln is


ψ0
cos 2 n θ
Ln = ∫
θ =ψ cos θ ( cos 2 θ − cos 2 ψ 0 )
12
dθ , n≥0 (35)

Again, let u = sinψ , u0 = sinψ 0 and put p = sin θ . Then dθ dp = sec θ ,


cos 2 θ = 1 − p 2 , and with

( cos 2 θ ) (1 − p2 )
n n
cos 2 n θ
dp = (1 − p 2 ) dp
n −1
dθ = cos θ dθ =
cos θ cos θ2
1− p 2

and

( cos θ − cos ψ ) (
= 1 − sin 2 θ − (1 − sin 2 ψ 0 ) ) = ( u02 − p 2 )
12 12 12
2 2
0

giving

Ln =∫
(1 − p )
u0 2 n −1

dp, n ≥ 1 (36)
(u − p )
u
2
0
2 12

Using the binomial series, the numerator of the integrand can be expanded into a
n −1
polynomial (1 − p 2 )
n −1
= ∑ ( −1) Bmn −1 p 2m , where the binomial coefficients Bmn −1 are
m

m =0

given by
n − m n −1
Bmn −1 =
Bm −1 for m = 2,3, 4,… (37)
m
with an initial value B1n −1 = n − 1 and noting that B0n −1 = 1 .
Using these results, equation (36) becomes
n −1 u0 n −1
p 2m
Ln = ∑ ( −1) Bmn −1 ∫ dp = ∑ ( −1) Bmn −1 I m
m m
(38)
m=0 u ( u02 − p )
2 12
m =0

u0
p 2m
where Im = ∫ dp , for m ≥ 0 (39)
( u02 − p 2 )
12
u

11
and equation (39) is the same as equation (24) except for a change of index variable.
Using this similarity and the expressions above, the longitude difference given by
equation (34) can be expressed as
⎧ ∞ n −1

∆λ = cosψ 0 ⎨ L0 + ∑ ( −1) e 2 n Bn2 ∑ ( −1) Bmn −1 I m ⎬
n 1 m
(40)
⎩ n =1 m =0 ⎭
Equation (40) can expanded as
⎧ ⎡ ∞
1 ⎤
∆λ = cosψ 0 ⎨ L0 + ⎢ −e2 B12 + ∑ ( −1) e2 n Bn2 ⎥ I 0
1 n

⎩ ⎣ n=2 ⎦
(41)
∞ n −1

+ ∑ ( −1) e Bn ∑ ( −1) n −1
n 1 m
2n 2
B I ⎬
m m
n=2 m =1 ⎭
and then simplified by use of the binomial series, where
∞ ∞ ∞
(1 − e2 ) = ∑ ( −1) e 2 n Bn2 = 1 + ∑ ( −1) e 2 n Bn2 = 1 − e 2 B12 + ∑ ( −1) e 2 n Bn2
12 n 1 n 1 1 n 1
(42)
n=0 n =1 n=2

The terms in [ ] of equation (41) are the last two terms on the right-hand side of
equation (42) and using this equivalence gives

( ) ⎫
∞ n −1
∆λ = cosψ 0 ⎨ L0 + 1 − e 2 − 1 I 0 + ∑ ( −1) e 2 n Bn2 ∑ ( −1) Bmn −1 I m ⎬
n 1 m

⎩ n=2 m =1 ⎭
⎧⎪ ( −1) ⎫⎪
( )
m
∞ n −1
= cosψ 0 ⎨ L0 + 1 − e −1 I0 + ∑ ( −1) e Bn ∑ u02 m Bmn −1 J m ⎬
n 1
2 1 2n
2
2
(43)
⎪⎩ n=2 m =1 m ⎪⎭
where I 0 is obtained from equation (31) and J m are given by equation (28), noting that
2m
as before J m = 2 m I m .
u0
A simple expression for L0 is obtained from equation (35) as follows
ψ0 ψ0
1 sec 2 θ
L0 = ∫ cos θ ( cos 2 θ − cos 2 ψ 0 )
dθ = ∫ dθ (44)
( sin ψ 0 − tan θ cos ψ 0 )
12 2 2 2 12
θ =ψ θ =ψ

Putting x = cotψ 0 tan θ then dθ dx = tanψ 0 cos 2 θ and

⎛ cos 2 ψ 0 ⎞
sin ψ 0 − tan θ cos ψ 0 = sin ψ 0 ⎜ 1 − tan θ
2 2 2 2

2

⎝ sin 2 ψ 0 ⎠
= sin 2 ψ 0 (1 − tan 2 θ cot 2 ψ 0 )
= sin 2 ψ 0 (1 − x 2 )
so that
tanψ 0
1
dx
L0 =
sinψ 0 ∫ψ
tan 1 − x2
(45)
x=
tanψ 0

12
dx ⎧ arcsin x
since ∫ 1− x
= ⎨π
2
⎩ 2 − arccos x
, then using the second result gives

1
dx ⎛ tanψ ⎞
L0 = secψ 0 ∫ψ
tan 1− x
= secψ 0 arccos ⎜
2

⎝ tanψ 0 ⎠
(46)
x=
tanψ 0

Equation (40) can be simplified further to give the longitude difference ∆λ between P
and the vertex P0 as

∆λ = cosψ 0 {M 0 + M 1 + M 2 + M 3 + } (47)

⎧L for n = 0
⎪ 0
where

⎪ 1
(
M n = ⎨ 1 − e2 − 1 I 0 ) for n = 1 (48)

⎩⎪ 2 Bn ( −1) e K n for n ≥ 2
1 n 2n
2

( −1)
m
n −1
and Kn = ∑ u02 m Bmn −1 J m for n = 2,3, 4,… (49)
m =1 m

A GEODESIC ON AN ELLIPSOID DOES NOT REPEAT AFTER A SINGLE


REVOLUTION
Earlier, it was mentioned that due to the eccentricity of the ellipsoid, the geodesic will
not repeat after a complete revolution. Here is a demonstration of that fact.
When P is at the node A of Figure 3 then ∆λ = ∆λ4 and using equation (17) we have

(1 − e cos θ )
12
ψ0 2 2

4 ( ∆λ4 ) = 4 cosψ 0 ∫ cos θ cos θ − cos ψ dθ (50)


( )
2 2 12
θ =0 0

Since this integral is difficult to evaluate, we instead determine upper and lower bounds
for the quantity 4 ( ∆λ4 ) by using the bounds of the integration variable θ . This allows
certain terms within the integral to be disposed of and a simplified integral evaluated.

For 0 ≤ θ ≤ ψ 0 , the bounds on the numerator of the integrand are


(1 − e )2 12
≤ (1 − e2 cos 2 θ ) ≤ (1 − e2 cos 2 ψ 0 )
12 12
so that on the one hand

(1 − e cos ψ )
12
ψ0 2 2

4 ( ∆λ ) ≤ 4 cosψ ∫ dθ
0

cos θ ( cos θ − cos ψ )


4 0 12
2 2
θ =0 0

= 4 cosψ (1 − e cos ψ ) L 2 2 12
0 0 0 ψ =0

= 4 cosψ (1 − e cos ψ ) π secψ 2 2 12


1
0 0 2 0

= 2π (1 − e cos ψ ) 2 2 12
0 (51)

13
while on the other hand

4 ( ∆λ4 ) ≥ 4 cosψ 0
ψ0
(1 − e )
2 12


θ =0 cos θ ( cos 2 θ − cos 2 ψ 0 )
12

= 2π (1 − e 2 )
12
(52)
Combining these inequalities gives the bounds for the quantity 4 ( ∆λ4 ) as

2π (1 − e2 ) ≤ 4 ( ∆λ4 ) ≤ 2π (1 − e 2 cos 2 ψ 0 )
12 12
(53)
Therefore, after a single revolution, 4 ( ∆λ4 ) < 2π when 0 < ψ 0 < 90 . Note that when
ψ 0 = 0 the geodesic is an arc of the equator (a circle) and when ψ 0 = 90 the geodesic
is an arc of the meridian (an ellipse).

NUMERICAL RESULTS FOR DISTANCE AND LONGITUDE EQUATIONS


Equations (32) and (47) for computing distance s and longitude difference ∆λ between
P and the vertex P0 are relatively simple summations of terms. To test the number of
terms required for accurate answers, a geodesic was chosen with an azimuth
α = 43 12′ 36′′ at P having latitude φ = 9 35′ 24′′ on the ellipsoid of the Geodetic
Reference System 1980 (GRS80) (Moritz 1980), defined by a = 6378137 metres and
f = 1 298.257 222101 .

Numerical constants for GRS80 ellipsoid and geodesic


b = a (1 − f ) = 6356752.314140356 metres
ψ = arctan ⎡⎣(1 − f ) tan φ ⎤⎦ = 0.166826262923 radians
ψ 0 = arccos [ cosψ sin α ] = 0.829602797993 radians
u = sinψ = 0.166053515348; u0 = sinψ 0 = 0.737663250899
u sinψ
U = = = 0.225107479796; I 0 = arccos U = 1.343742980976 radians
u0 sinψ 0
tanψ
V = = 0.154125311675; L0 = secψ 0 arccos V = 2.097333540996 radians
tanψ 0

14
Table 1: Ellipsoid and geodesic constants and binomial coefficients for
equations (32) and (47)
1
n e2 n εn u02 n Bn2
1 6.694380022901e-003 6.739496775479e-003 0.544147071727 0.500000000000
2 4.481472389101e-005 4.542081678669e-005 0.296096035669 -0.125000000000
3 3.000067923478e-007 3.061134482735e-007 0.161119790759 0.062500000000
4 2.008359477428e-009 2.063050597570e-009 0.087672862339 -0.039062500000
5 1.344472156450e-011 1.390392284997e-011 0.047706931312 0.027343750000
6 9.000407545482e-014 9.370544321391e-014 0.025959586974 -0.020507812500
7 6.025214847044e-016 6.315275323850e-016 0.014125833235 0.016113281250
8 4.033507790574e-018 4.256177768135e-018 0.007686530791 -0.013092041016

Table 2: Recurrence formula values and distance components for equation (32)

n Jn Dn
1 1.563072838216 8.541841303930e+006 8541841.303930 m
2 2.355723441968 9.109578467516e+003 9109.5784675
3 2.945217495733 -6.293571169346e+000 -6.2935712
4 3.436115617261 9.618619108010e-003 0.0096186
5 3.865631515581 -1.929070816523e-005 -0.0000193
6 4.252194740421 4.456897529564e-008 0.0000000
7 4.606544305836 -1.123696751599e-010 -0.0000000
8 4.935583185013 3.006580650377e-013 0.0000000
sum 8.550944598425e+006 s = 8550944.598425 m

Table 3: Recurrence formula values and longitude components for equation (47)
n Mn
Jn
0 2.097333540996e+000
1 1.563072838216 -4.505315819380e-003
2 2.355723441968 2.382298926901e-006
3 2.945217495733 1.267831357153e-008
4 3.436115617261 6.525291638252e-011
5 3.865631515581 3.431821056093e-013
6 4.252194740421 1.852429353592e-015 ∆λ = cosψ 0 ( sum ) ≅ 1.413013969112 radians
7 4.606544305836 1.023576994037e-017
= 80.959736823113 degrees
8 4.935583185013 5.769507252421e-020
sum 2.092830620219e+000 = 80 57′ 35.052563′′

Inspection of these numerical values indicates than an upper limit of N = 8 in the


summations is more than sufficient for accuracies of 0.000001 metre in distances and
0.000001 second of arc for longitude differences. [Results for s and ∆λ can be
confirmed using Vincenty's equations (Vincenty 1975) that have been programmed in a
Microsoft™ Excel workbook that can be downloaded from the website of Geoscience
Australia at http://www.ga.gov.au/]

15
It should be noted here that the distance and longitude equations [equations (32)
and (47)] are not themselves, solutions to the direct or inverse problems. Instead, they
are the basic tools, which if used in certain ways, enable the solution to those problems.
In a computer program, equations (32) and (47) would be embedded in a function
that returned s and ∆λ given the ellipsoid parameters ( a, f ) , parametric latitudes
(ψ ,ψ 0 ) and the upper limit of summations ( N ) . A brief explanation of how such a
function might be used is given below.

USING THE DISTANCE AND LONGITUDE EQUATIONS TO COMPUTE THE


DIRECT AND INVERSE PROBLEM

α2
P2 •
α1 = α12 •
∆λ 2 α21
s2 P0 vertex P1 •
φmax P2 •

s s1
P1 s4
φ1 •
s3
∆λ1
A B equator A'
• • •
node λ1 λ0 node node A

∆λ4

φmin •
vertex

Fig. 5: Schematic diagram of a geodesic between P1 and P2 on an ellipsoid

Direct solution
The key here is to use the distance equation in an iterative computation of sinψ 2 . Once
this is known, then φ2 , λ2 and α 21 follow. The steps in the computation are:

1. Test the azimuth to determine whether the geodesic is heading towards or away
from the nearest vertex P0 , noting that P0 will be in the same hemisphere as P1 .
2. Compute ψ 1 and ψ 0 ; then use the distance and longitude equations to compute s1
and ∆λ1 between P1 and P0 , as well as λ0 . (see Fig. 5).
3. With u = sinψ = 0 , compute s4 and ∆λ4 between the node and P0 .

16
⎧ s − s1 if geodesic is heading towards P0
4. Compute s2 = ⎨ . If s2 > 0 then P2 is
⎩ s + s1 if geodesic is heading away from P0
after P0 and closer to another vertex P0′ in which case s2 is reduced by multiples of
2s4 until s2 < s4 and the number of vertices n determined (vertices are 2s4 apart).
If s2 < 0 then P2 is before P0 . (Note that in Fig. 5, s2 < 0 and P2 is before P0 )
5. Compute ψ 2 by iteration. An approximate value ψ 2′ is found from equations (32)
s ⎛ sinψ ⎞
by taking the first term only; hence = I 0 = arccos ⎜ ⎟
b ⎝ sinψ 0 ⎠
⎛s ⎞
and sinψ 2′ = sinψ 0 cos ⎜ 2 ⎟ .
⎝b⎠
ds u02 − u 2
Now a re-arrangement of the differential equation (19) gives du =
b 1+ ε u2
where u = sinψ 2′ , ds = s2′ − s2 and s2′ is computed from the distance equation with
the approximate parametric latitude ψ 2′ . Equation (19), linking ds and du, is the
basis of the iterative solution for sinψ 2 (and hence φ2 ).
6. After computing ψ 2 the longitude difference ∆λ2 is computed and depending on
the number of vertices and the direction of the geodesic, λ2 is determined. The
azimuth α 2 follows from Clairaut's equation and the reverse azimuth α 21 obtained.

Inverse solution
This is the more difficult of the two solutions since ψ 0 is unknown and must be
determined by iteration, using approximations for s, α1 and α 2 obtained by
approximating the ellipsoid with a sphere and using spherical trigonometry. The steps
in the computation are:

1. Convert longitudes of P1 and P2 to east longitudes in the range 0 < λ1 , λ2 < 360
and determine a longitude difference ∆λ in the range −180 ≤ ∆λ ≤ 180 . ±∆λ
corresponding to east/west direction of the geodesic from P1 .
2. Compute parametric latitudes ψ 1 and ψ 2 then use these and ∆λ as latitudes and
longitude difference on a sphere to compute spherical distance σ and spherical
angles β1 and β 2 . These can be used to determine approximations of s and α12 .
3. Compute ψ 0 by iteration. Approximations ∆λ1′ and ∆λ2′ can be obtained from
⎛ tanψ ⎞
equation (47) noting that M 0 = secψ 0 arccos ⎜ ⎟ and ignoring terms
⎝ tanψ 0 ⎠
M 1 , M 2 , M 3 ,…
⎛ tanψ 1 ⎞ ⎛ tanψ 2 ⎞
This gives ∆λ1′ = arccos ⎜ ⎟ and ∆λ2′ = arccos ⎜ ⎟ , and
⎝ tanψ 0 ⎠ ⎝ tanψ 0 ⎠

17
⎧⎪ ⎛ tanψ 1 ⎞ ⎛ tanψ 2 ⎞ ⎫⎪
f (ψ 0 ) = ∆λ ′ − ∆λ = ⎨± arccos ⎜ ⎟ ± arccos ⎜ ⎟ ± ∆λ4′ ⎬ − ∆λ where the ±
⎪⎩ ⎝ tanψ 0 ⎠ ⎝ tanψ 0 ⎠ ⎪⎭
signs are associated with the east/west direction of the geodesic.
ψ 0 can be found using Newton's iterative method (Williams 1972)
f (ψ 0 )
(ψ 0 )n +1 = (ψ 0 )n − (54)
f ′ (ψ 0 )
where f ′ (ψ 0 ) is the derivative of f (ψ 0 ) . An initial value of ψ 0 can be computed
from equation (11).
4. Once ψ 0 is known then s1 , ∆λ1 ; s2 , ∆λ2 and s4 , ∆λ4 can be computed from the
distance and longitude equations and s obtained. The forward and reverse azimuths
can be found from Clairaut's equation (5).

CONCLUSION
Pittman's (1986) recurrence relationships for evaluating integrals allow beautifully
compact equations for distance s and longitude difference ∆λ along a geodesic between
P and the vertex P0 . These equations can be easily translated into a computer program
function returning s and ∆λ given a, f, u and u0 . Using such a function, algorithms (as
outlined above), can be constructed to solve the direct and inverse problems on the
ellipsoid. Pittman's (1986) paper (which included FORTRAN computer code) has a
concise development of the necessary equations and algorithms. The paper here has a
more detailed development of the recurrence relationships (with a slightly different
formulation) as well as additional information on the definition and properties of a
geodesic.
Interestingly, Pittman's (1986) method is entirely different to other approaches
that fall (roughly) into two groups: (i) numerical integration techniques and (ii) series
expansion of integrals; the latter of these with a history of development extending back
to Bessel's (1826) method. Numerical integration, a technique made practical with the
arrival of computers in the mid to late 20th century, is relatively modern. So too is
Pittman's method.
To our knowledge, this is the first paper (since the original) discussing his elegant
method; a method that has much to recommend it, and one that we hope might become
the object of study in undergraduate surveying courses and discussion in the geodetic
literature.

REFERENCES
Ayres, F., 1972. Calculus, Schaum's Outline Series, Theory and problems of
Differential and Integral Calculus, 2nd edn, McGraw-Hill Book Company, New
York.
Bessel, F. W., 1826, 'Uber die Berechnung der Geographischen Langen und Breiten aus
geodatischen Vermessungen. (On the computation of geographical longitude and
latitude grom geodetic measurements)', Astronomische Nachrichten (Astronomical
Notes), Band 4 (Vol. 4), No. 86, Spalten 241-254 (Columns 241-254).

18
Bowring, B. R., 1972, 'Correspondence: Distance and the spheroid', Survey Review,
Vol. 21, No. 164, pp. 281-284.
Bowring, B. R., 1983, 'The geodesic inverse problem', Bulletin Geodesique, Vol. 57,
No. 2, pp. 109-120.
Bowring, B. R., 1984, 'Note on the geodesic inverse problem', Bulletin Geodesique,
Vol. 58, p. 543.
DSB, 1971. Dictionary of Scientific Biography, C.C. Gillispie (Editor in Chief),
Charles Scribener's Sons, New York.
Jank, W., Kivioja, L.A., 1980, 'Solution of the direct and inverse problems on reference
ellipsoids by point-by-point integration using programmable pocket calculators',
Surveying and Mapping, Vol. 15, No. 3, pp. 325-337.
Kivioja, L. A., 1971, 'Computation of geodetic direct and indirect problems by
computers accumulating increments from geodetic line elements', Bulletin
Geodesique, No. 99, pp. 55-63.
Lauf, G.B., 1983. Geodesy and Map Projections, TAFE Publications Unit,
Collingwood, Australia
Moritz, H., 1980, 'Geodetic reference system 1980', The Geodesists Handbook 1980,
Bulletin Geodesique, Vol. 54, No. 3, pp. 395-407.
Pittman, M.E., 1986. 'Precision direct and inverse solutions of the geodesic', Surveying
and Mapping, Vol. 46, No. 1, pp. 47-54, March 1986.
Rainsford, H. F., 1955, 'Long geodesics on the ellipsoid', Bulletin Geodesique, No. 37,
pp. 12-22.
Saito, T., 1970, 'The computation of long geodesics on the ellipsoid by non-series
expanding procedure', Bulletin Geodesique, No. 98, pp. 341-374.
Saito, T., 1979, 'The computation of long geodesics on the ellipsoid through Gaussian
quadrature', Bulletin Geodesique, Vol. 53, No. 2, pp. 165-177.
Sjöberg, Lars E., 2006, 'New solutions to the direct and indirect geodetic problems on
the ellipsoid', Zeitschrift für Geodäsie, Geoinformation und Landmanagement (zfv),
2006(1):36 pp. 1-5.
Struik, D.J., 1933. 'Outline of a history of differential geometry', Isis, Vol. 19, No.1, pp.
92-120, April 1933. (Isis is an official publication of the History of Science Society and has
been in print since 1912. It is published by the University of Chicago Press - Journals Division:
http://www.journals.uchicargo.edu/)
Thomas, P.D., 1970. Spheroidal Geodesics, Reference Systems, & Local Geometry,
Special Publication No. 138 (SP-138), United States Naval Oceanographic office,
Washington.
Thomas, C. M. and Featherstone, W. E., 2005, 'Validation of Vincenty's formulas for
the geodesic using a new fourth-order extension of Kivioja's formual', Journal of
Surveying Engineering, Vol. 131, No. 1, pp. 20-26.
Vincenty, T., 1975, 'Direct and inverse solutions on the ellipsoid with application of
nested equations', Survey Review, Vol. 22, No. 176, pp. 88-93.
Vincenty, T., 1976, 'Correspondence: solutions of geodesics', Survey Review, Vol. 23,
No. 180, p. 294.
Williams, P. W., 1972, Numerical Computation, Thomas Nelson and Sons Ltd,
London.

19
THE NORMAL SECTION CURVE

ON AN ELLIPSOID

R. E. Deakin
School of Mathematical & Geospatial Sciences, RMIT University,
GPO Box 2476V, MELBOURNE VIC 3001, AUSTRALIA
email: [email protected]
November 2009

ABSTRACT

These notes provide a detailed derivation of the equation for a normal section curve on an
ellipsoid and from this equation a technique for computing the arc length along a normal
section curve is developed. Solutions for the direct and inverse problems of the normal
section on an ellipsoid are given and MATLAB functions are provided showing the
algorithms developed.

INTRODUCTION

In geodesy, the normal section curve is a plane curve created by intersecting a plane
containing the normal to the ellipsoid (a normal section plane) with the surface of the
ellipsoid, and the ellipsoid is a reference surface approximating the true shape of the Earth.
In general, there are two normal section curves between two points on an ellipsoid, a fact
that will be explained below, so the normal section curve is not a unique curve. And the
distance along a normal section curve is not the shortest distance between two points.
The shortest distance is along the geodesic, a unique curve on the surface defining the
shortest distance, but the difference in length between the normal section and a geodesic
can be shown to be negligible in all practical cases.

The azimuth of a normal section plane between two points on an ellipsoid can be easily
determined by coordinate geometry if the latitudes and longitudes of the points are
expressed in a local Cartesian coordinate system – this will be explained in detail below.

The distance along a normal section curve can be determined by numerical integration
once the polar equation of the curve is known. And the derivation of the polar equation of

Normal Section.doc 1
a normal section curve is developed in detail by first proving that normal sections of
ellipsoids are in fact ellipses, then deriving Cartesian equations of the ellipsoid and the
normal section in local Cartesian coordinates and finally transforming the local Cartesian
coordinates to polar coordinates. The differential equation for arc length (as a function of
polar coordinates) is derived and a solution using a numerical technique known as
Romberg integration is developed for the arc length along a normal section curve.

The azimuth of the normal section as a function of Cartesian coordinates); the polar
equation of the normal section curve; and the solution of the arc length using Romberg
integration are the core components of solutions of the direct and inverse cases of the
normal sections on an ellipsoid. These are fundamental geodetic operations and can be
likened to the equivalent operations of plane surveying; radiations (computing coordinates
of points given bearings and distances radiating from a point of known coordinates) and
joins; (computing bearings and distances between points having known coordinates). The
solution of the direct and inverse cases of the normal section are set out in detail and
MATLAB functions are provided.

THE ELLIPSOID
z

np

λ
ch

b
wi
en

P
Gre


O•
a φ a
H• y
x equator
p

Figure 1: The reference ellipsoid

In geodesy, the ellipsoid is a surface of revolution created by rotating an ellipse (whose


major and minor semi-axes lengths are a and b respectively and a > b ) about its minor
axis. The φ, λ curvilinear coordinate system is a set of orthogonal parametric curves on
the surface – parallels of latitude φ and meridians of longitude λ with their respective
reference planes; the equator and the Greenwich meridian.

Normal Section.doc 2
Longitudes are measured 0 to ±180 (east positive, west negative) from the Greenwich
meridian and latitudes are measured 0 to ±90 (north positive, south negative) from the
equator. The x,y,z geocentric Cartesian coordinate system has an origin at O, the centre
of the ellipsoid, and the z-axis is the minor axis (axis of revolution). The xOz plane is the
Greenwich meridian plane (the origin of longitudes) and the xOy plane is the equatorial
plane.

The positive x-axis passes through the intersection of the Greenwich meridian and the
equator, the positive y-axis is advanced 90 east along the equator and the positive z-axis
passes through the north pole of the ellipsoid.

The Cartesian equation of the ellipsoid is

x 2 + y2 z 2
+ 2 =1 (1)
a2 b
where a and b are the semi-axes of the ellipsoid (a > b ) .

The first-eccentricity squared e 2 and the flattening f of the ellipsoid are defined by

a 2 − b2
e2 = = f (2 − f )
a2 (2)
a −b
f =
a
and the polar radius c, and the second-eccentricity squared e ′2 are defined by

a2 a
c = =
b 1− f
a − b2
2 f (2 − f ) e2
(3)

e =2
= =
b2 (1 − f ) 1 − e
2 2

PROOF THAT NORMAL SECTION CURVES ARE ELLIPSES

Normal section curves are plane curves; i.e., curves on the surface of the ellipsoid created
by intersecting the surface with a plane; and this plane (the normal section plane) contains
the normal to the surface at one of the terminal points.

A meridian of longitude is also a normal section curve and all meridians of longitude on
the ellipsoid are ellipses having semi-axes a and b (a > b ) since all meridian planes – e.g.,
Greenwich meridian plane xOz and the meridian plane pOz containing P – contain the z-
axis of the ellipsoid and their curves of intersection are ellipses (planes intersecting surfaces

Normal Section.doc 3
create curves of intersection on the surface). This can be seen if we let p 2 = x 2 + y 2 in
equation (1) which gives the familiar equation of the (meridian) ellipse

p2 z 2
+ =1 (a < b ) (4)
a 2 b2
z

np
• P
b

al
rm
φ p

no
a O


C
H •

Figure 2: Meridian ellipse

In Figure 2, φ is the latitude of P (the angle between the equator and the normal), C is
the centre of curvature and PC is the radius of curvature of the meridian ellipse at P. H is
the intersection of the normal at P and the z-axis (axis of revolution).

The only parallel of latitude that is also a normal section is the equator. And in this
unique case, this normal section curve (the equator) is a circle. All parallels of latitude on
the ellipsoid are circles created by intersecting the ellipsoid with planes parallel to (or
coincident with) the xOy equatorial plane. Replacing z with a constant C in equation (1)
gives the equation for circular parallels of latitude
⎛ C 2 ⎞⎟
2 ⎜
x + y = a ⎜1 − 2 ⎟⎟ = p 2
2
⎜⎝
2

b ⎠
(0 ≤ C ≤ b; a >b ) (5)

All other curves on the surface of the ellipsoid created by intersecting the ellipsoid with a
plane are ellipses. And this general statement covers all normal section planes that are not
meridians or the equator. This can be demonstrated by using another set of coordinates
x ′, y ′, z ′ that are obtained by a rotation of the x,y,z coordinates such that

⎡ ⎤
⎢x ′ ⎥ ⎡x ⎤
⎢ ⎥

⎢r11 r12 r13 ⎥

⎢ ⎥
⎢y ⎥ = R ⎢y ⎥⎥
′ ⎢ where R = ⎢⎢r21 r22 r23 ⎥⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ z r r r
⎢⎣ z ′ ⎦⎥ ⎣⎢ ⎦⎥ ⎣⎢ 31 32 33 ⎦⎥

where R is an orthogonal rotation matrix and R−1 = RT so

Normal Section.doc 4
⎡ ⎤ ⎡x ⎤ ⎡r r r ⎤ ⎢⎡x ′⎥⎤
⎡x ⎤
⎢ ⎥ ⎢x ′⎥ ⎢ ⎥ ⎢ 11 21 31 ⎥ ⎢ ⎥
⎢y ⎥ = R−1 ⎢⎢y ′ ⎥⎥ and ⎢y ⎥ = ⎢r r r ⎥ ⎢y ′ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 12 22 32 ⎥ ⎢ ⎥
⎢ ⎥ ⎢z ′ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ z ⎥⎦ ⎢⎣ ⎥⎦ ⎢⎣ z ⎥⎦ ⎢⎣r13 r23 r33 ⎥⎦ ⎢⎢ z ′ ⎥⎥
⎣ ⎦
x 2 = r112 x ′2 + r212 y ′2 + r312 z ′2 + 2r11r21x ′y ′ + 2r11r31x ′z ′ + 2r21r31y ′z ′
y 2 = r122 x ′2 + r222 y ′2 + r322 z ′2 + 2r12r22x ′y ′ + 2r12r32x ′z ′ + 2r22r32y ′z ′
giving z 2 = r132 x ′2 + r232 y ′2 + r332 z ′2 + 2r13r23x ′y ′ + 2r13r33x ′z ′ + 2r23r33y ′z ′
x 2 + y 2 = (r112 + r122 ) x ′2 + (r212 + r222 ) y ′2 + (r312 + r322 ) z ′2 + 2 (r11r21 + r12r22 ) x ′y ′
+2 (r11r31 + r12r32 ) x ′z ′ + 2 (r21r31 + r22r32 ) y ′z ′

Substituting into equation (1) gives the equation of the ellipsoid in x ′, y ′, z ′ coordinates
⎧(r112 + r122 ) x ′2 + (r212 + r222 ) y ′2 + (r312 + r322 ) z ′2 + 2 (r11r21 + r12r22 ) x ′y ′⎫
1⎪⎪




⎨ ⎬
a ⎪⎪+2 (r11r31 + r12r32 ) x ′z ′ + 2 (r21r31 + r22r32 ) y ′z ′
2
⎪⎪

⎩ ⎪

1
+ 2 {r132 x ′2 + r232 y ′2 + r332 z ′2 + 2r13r23x ′y ′ + 2r13r33x ′z ′ + 2r23r33y ′z ′} = 1 (6)
b
In equation (6) let z ′ = C 1 where C 1 is a constant. The result will be the equation of a
curve created by intersecting an inclined plane with the ellipsoid, i.e.,
⎧⎪





r112 + r122
a 2
+
r132 ⎫⎪
b 2





x ′ 2
+ {
2
r11r21 + r12r22 r13r23
a 2
+
b 2
x ′y }
′ +
⎧⎪⎪r212 + r222


⎩⎪ a 2
+
r232 ⎫⎪⎪ 2
b 2 ⎬

⎪⎭
y′

+ {2C 1 (r11r31 + r12r32 + r13r33 )} x ′ + {2C 1 (r21r31 + r22r32 + r23r33 )} y ′


= 1 − C 12 {r312 + r322 + r332 } (7)

This equation can be expressed as

Ax ′2 + 2Hx ′y ′ + By ′2 + Dx ′ + Ey ′ = 1 (8)

where it can be shown that AB − H 2 > 0 , hence it is the general Cartesian equation of an
ellipse that is offset from the coordinate origin and rotated with respect to the coordinate
axes (Grossman 1981). Equations of a similar form can be obtained for inclined planes
x ′ = C 2 and y ′ = C 3 , hence we may say, in general, inclined planes intersecting the
ellipsoid will create curves of intersection that are ellipses.

Normal Section.doc 5
NORMAL SECTION CURVES BETWEEN P1 AND P2 ON THE ELLIPSOID

north pole

P1
normal section P2 P1 of

rotational axis of ellipsoid


an
ri di
e
m
α12

P1 P2
• α 21

nor
ma
normal section P1P2 l

no r
ma
φ1
O centre of ellipsoid

l
a
φ2
H1
a
H2
equ
a tor
of el
lipsoid

Figure 3: Normal section curves between P1 and P2 on the ellipsoid

Figure 3 shows P1 and P2 on the surface of an ellipsoid. The normals at P1 and P2 (that lie
in the meridian planes ONP1H 1 and ONP2H 2 respectively) cut the rotational axis at H 1
and H 2 , making angles φ1, φ2 with the equatorial plane of the ellipsoid. These are the
latitudes of P1 and P2 respectively.

The plane containing the ellipsoid normal at P1 , and also the point P2 intersects the
surface of the ellipsoid along the normal section curve P1P2 . The reciprocal normal section
curve P2P1 (the intersection of the plane containing the normal at P2 , and also the point
P1 with the ellipsoidal surface) does not in general coincide with the normal section curve
P1P2 although the distances along the two curves are, for all practical purposes, the same.

Hence there is not a unique normal section curve between P1 and P2 , unless both P1 and
P2 are on the same meridian or both are on the equator.

The azimuth α12 , is the clockwise angle ( 0 to 360°) measured at P1 in the local horizon
plane from north (the direction of the meridian) to the normal section plane containing P2 .
The azimuth α21 is the azimuth of the normal section plane P2P1 measured at P2 .

Normal Section.doc 6
LOCAL CARTESIAN COORDINATES

Figure 4 shows a local Cartesian coordinate system E,N,U with an origin at P on the
reference ellipsoid with respect to the geocentric Cartesian system x,y,z whose origin is a
the centre of the ellipsoid
z

np

λ
N U
ch
wi b
en
P
Gre

• E
O•
a φ a
H• y
x equator
p

Figure 4: x,y,z geocentric Cartesian and E,N,U local Cartesian coordinates

Geocentric x,y,z Cartesian coordinates are computed from the following equations
x = ν cos φ cos λ
y = ν cos φ sin λ (9)
(
z = ν 1 − e 2 sin φ)
where ν = PH in Figure 4 is the radius of curvature in the prime vertical plane and
a
ν= (10)
1 − e 2 sin 2 φ

The origin of the local E,N,U system lies at the point P (φ0 , λ0 ) . The positive U-axis is
coincident with the normal to the ellipsoid passing through P and in the direction of
increasing radius of curvature ν . The N-U plane lies in the meridian plane passing
through P and the positive N-axis points in the direction of North. The E-U plane is
perpendicular to the N-U plane and the positive E-axis points East. The E-N plane is
often referred to as the local geodetic horizon plane.

Geocentric and local Cartesian coordinates are related by the matrix equation

⎡U ⎤ ⎡x − x ⎤
⎢ ⎥ ⎢ 0⎥
⎢E ⎥ = R ⎢y − y ⎥ (11)
⎢ ⎥ φλ ⎢ 0⎥
⎢ ⎥ ⎢ ⎥
⎢⎣N ⎥⎦ ⎢⎣ z − z 0 ⎥⎦

Normal Section.doc 7
where x 0 , x 0 , z 0 are the geocentric Cartesian coordinates of the origin of the E,N,U system
and R φλ is a rotation matrix derived from the product of two separate rotation matrices.

⎡ cos φ 0 sin φ0 ⎤⎥ ⎡⎢ cos λ0 sin λ0 0⎤⎥


⎢ 0
⎢ ⎥⎢ ⎥
R φλ = R φRλ = ⎢ 0 1 0 ⎥ ⎢− sin λ0 cos λ0 0⎥ (12)
⎢ ⎥⎢ ⎥
⎢− sin φ0 0 cos φ0 ⎥⎥ ⎢⎢ 0 0 1 ⎥⎥
⎢⎣ ⎦⎣ ⎦
The first, R λ (a positive right-handed rotation about the x-axis by λ ) takes the x,y,z axes
to x ′, y ′, z ′ . The z ′ -axis is coincident with the z-axis and the x ′ -y ′ plane is the Earth's
equatorial plane. The x ′ -y ′ plane is the meridian plane passing through P and the y ′ -axis
is perpendicular to the meridian plane and in the direction of East.

x'


y

co
sin

y λ ⎡x ′⎤ ⎡ cos λ sin λ 0⎤ ⎡x ⎤
sin
λ

z (z')
y ⎢ ⎥ ⎢ ⎥⎢ ⎥
x ⎢y ′ ⎥ = ⎢− sin λ cos λ 0⎥ ⎢y ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
x

λ ⎢ ′⎥ ⎢ ⎥⎢ ⎥
co

⎢⎣ z ⎥⎦ ⎢⎣ 0 0 1⎥ ⎢ z ⎥

•P ⎦⎣ ⎦

x x'

The second R φ (a rotation about the y'-axis by φ ) takes the x ′, y ′, z ′ axes to the x ′′, y ′′, z ′′
axes. The x ′′ -axis is parallel to the U-axis, the y ′′ -axis is parallel to the E-axis and the
z ′′ -axis is parallel to the N-axis.

z'
φ
P s in
x" x'

⎡x ′′⎤ ⎡ cos φ 0 sin φ ⎤ ⎡x ′⎤


z'

z" ⎢ ⎥ ⎢ ⎥⎢ ⎥
x'

si n

⎢y ′′ ⎥ = ⎢ 0 ⎥ ⎢y ′ ⎥
co

⎢ ⎥ ⎢ 1 0 ⎥⎢ ⎥

⎢ ′′ ⎥ ⎢ ⎥⎢ ⎥
φ ⎢⎣ z ⎥⎦ ⎢⎣− sin φ 0 cos φ ⎥⎦ ⎢⎣z ′ ⎥⎦
s
x' φ co Rφ
z'
y'(y")

Normal Section.doc 8
Performing the matrix multiplication in equation (12) gives
⎡ cos φ cos λ cos φ0 sin λ0 sin φ0 ⎤⎥
⎢ 0 0
⎢ ⎥
R φλ = ⎢ − sin λ0 cos λ0 0 ⎥ (13)
⎢ ⎥
⎢− sin φ0 cos λ0 − sin φ0 sin λ0 cos φ0 ⎥⎥
⎣⎢ ⎦
Rotation matrices formed from rotations about coordinate axes are often called Euler
rotation matrices in honour of the Swiss mathematician Léonard Euler (1707-1783). They
are orthogonal, satisfying the condition RT R = I (i.e., R−1 = RT ).

A re-ordering of the rows of the matrix R φλ gives the transformation in the more usual
form E,N,U

⎡E ⎤ ⎡x − x ⎤
⎢ ⎥ ⎢ 0⎥
⎢N ⎥ = R ⎢ y − y ⎥ (14)
⎢ ⎥ ⎢ 0⎥
⎢ ⎥ ⎢ ⎥
U
⎢⎣ ⎥⎦ ⎢⎣ z − z 0 ⎦⎥

⎡ − sin λ cos λ0 0 ⎤⎥
⎢ 0
⎢ ⎥
where R = ⎢− sin φ0 cos λ0 − sin φ0 sin λ0 cos φ0 ⎥ (15)
⎢ ⎥
⎢ cos φ0 cos λ0 cos φ0 sin λ0 sin φ0 ⎥⎥
⎣⎢ ⎦
From equation (14) we can see that coordinate differences ΔE = Ek − Ei , ΔN = N k − N i
and ΔU = U k −U i in the local geodetic horizon plane are given by

⎡ ΔE ⎤ ⎡Δx ⎤
⎢ ⎥ ⎢ ⎥
⎢ΔN ⎥ = R ⎢Δy ⎥ (16)
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ ΔU ⎥⎦ ⎢⎣ Δz ⎥⎦

where Δx = x k − x i , Δy = yk − yi and Δz = z k − z i are geocentric Cartesian coordinate


differences.

NORMAL SECTION AZIMUTH ON THE ELLIPSOID

The matrix relationship given by equation (16) can be used to derive an expression for the
azimuth of a normal section between two points on the reference ellipsoid. The normal
section plane between points P1 and P2 on the Earth's terrestrial surface contains the
normal at point P1 , the intersection of the normal and the rotational axis of the ellipsoid
at H 1 (see Figure 3) and P2 . This plane will intersect the local geodetic horizon plane in a
line having an angle with the north axis, which is the direction of the meridian at P1 .

Normal Section.doc 9
This angle is the azimuth of the normal section plane P1 − P2 denoted as α12 and will have
components ΔE and ΔN in the local geodetic horizon plane. From plane geometry

ΔE
tan α12 = (17)
ΔN
By inspection of equations (15) and (16) we may write the equation for normal section
azimuth between points P1 and P2 as

ΔE −Δx sin λ1 + Δy cos λ1


tan α12 = = (18)
ΔN −Δx sin φ1 cos λ1 − Δy sin φ1 sin λ1 + Δz cos φ1

where Δx = x 2 − x 1 , Δy = y2 − y1 and Δz = z 2 − z 1

EQUATION OF THE ELLIPSOID IN LOCAL CARTESIAN COORDINATES

The Cartesian equation of the ellipsoid is given by equation (1) as

x 2 + y2 z 2
+ 2 =1 (19)
a2 b

and multiplying both sides of equation (19) by a 2 gives

a2 2
x + y + 2 z = a2
2 2
(20)
b
a2
Re-arranging equation (3) gives 2
= e ′2 + 1 and substituting this result into equation (20)
b
and re-arranging gives an alternative expression for the Cartesian equation of an ellipsoid
as

x 2 + y 2 + z 2 + e ′ 2z 2 − a 2 = 0 (21)

We now find expressions for x 2 , y 2 and z 2 in terms of local Cartesian coordinates that
when substituted into equation (21) and simplified will give the equation of the ellipsoid in
local Cartesian coordinates. The relevant substitutions are set out below.

The relationship between geocentric and local Cartesian coordinates is given by equation
(14) as

⎡E ⎤ ⎡x − x ⎤
⎢ ⎥ ⎢ 0⎥
⎢N ⎥ = R ⎢ y − y ⎥ (22)
⎢ ⎥ ⎢ 0⎥
⎢ ⎥ ⎢ ⎥
U
⎢⎣ ⎥⎦ ⎢⎣ z − z 0 ⎥⎦

Normal Section.doc 10
where the orthogonal rotation matrix R is given by equation (15) as

⎡r r ⎤ ⎡ 0 ⎤⎥
⎢ 11 12 r13 ⎥ ⎢ − sin λ0 cos λ0
R = ⎢⎢r21 r22 r23 ⎥⎥ = ⎢⎢− sin φ0 cos λ0 − sin φ0 sin λ0 cos φ0 ⎥⎥ (23)
⎢ ⎥ ⎢ ⎥
⎢⎣r31 r32 r33 ⎥⎦ ⎢⎣ cos φ0 cos λ0 cos φ0 sin λ0 sin φ0 ⎥

and

x 0 = ν 0 cos φ0 cos λ0
y 0 = ν 0 cos φ0 sin λ0 (24)
( 2
z 0 = ν 0 1 − e sin φ0)
with the radius of curvature of the prime vertical section

a
ν0 = (25)
1 − e 2 sin2 φ0

Re-arranging equation (22) gives

⎡x ⎤ ⎡ E ⎤ ⎡x ⎤
⎢ ⎥ ⎢ ⎥ ⎢ 0⎥
⎢y ⎥ = R−1 ⎢N ⎥ + ⎢y ⎥ (26)
⎢ ⎥ ⎢ ⎥ ⎢ 0⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ z ⎥⎦ ⎢⎣U ⎥⎦ ⎢⎣ z 0 ⎦⎥

where
⎡r r r ⎤
⎢ 11 21 31 ⎥
R −1 = RT = ⎢⎢r12 r22 r32 ⎥⎥ (27)
⎢ ⎥
⎢⎣r13 r23 r33 ⎥⎦

Expanding equation (26) gives

x = r11E + r21N + r31U + x 0


y = r12E + r22N + r32U + y 0 (28)
z = r13E + r23N + r33U + z 0

and

x 2 = r112 E 2 + r212 N 2 + r312U 2 + 2r11r21EN + 2r11r31EU + 2r21r31NU


+ x 02 + 2r11Ex 0 + 2r21Nx 0 + 2r31Ux 0
y 2 = r122 E 2 + r222 N 2 + r312U 2 + 2r12r22EN + 2r12r32EU + 2r22r32NU
(29)
+ y 02 + 2r12Ey 0 + 2r22Ny 0 + 2r32Uy 0
z 2 = r132 E 2 + r232 N 2 + r332U 2 + 2r13r23EN + 2r13r33EU + 2r23r33NU
+ z 02 + 2r13Ez 0 + 2r23Nz 0 + 2r33Uz 0

Normal Section.doc 11
with

( ) ( ) (
x 2 + y 2 + z 2 = r112 + r122 + r132 E 2 + r212 + r222 + r232 N 2 + r312 + r322 + r332 U 2 )
+ 2 (r11r21 + r12r22 + r13r23 ) EN
+ 2 (r11r31 + r12r32 + r13r33 ) EU
+ 2 (r21r31 + r22r32 + r23r33 ) NU
+ x 02 + y 02 + z 02
+ 2 (r11x 0 + r12y 0 + r13z 0 ) E
+ 2 (r21x 0 + r22y 0 + r23z 0 ) N
+ 2 (r31x 0 + r32y 0 + r33z 0 )U (30)

Now using the equivalences for r11, r12 , etc given in equation (23), certain terms in equation
(30) can be simplified as

r112 + r122 + r132 = sin2 λ0 + cos2 λ0 = 1


(
r212 + r222 + r232 = sin2 φ0 cos2 λ0 + sin2 λ0 + cos2 φ0 = 1 )
2 2
r + r + r = cos
31 32
2
33
2
φ (cos
0
2
λ0 + sin 2
λ ) + sin
0
2
φ0 = 1

and

r11r21 + r12r22 + r13r23 = sin λ0 sin φ0 cos λ0 − cos λ0 sin φ0 sin λ0 + 0


=0
r11r31 + r12r32 + r13r33 = − sin λ0 cos φ0 cos λ0 + cos λ0 cos φ0 sin λ0 + 0
=0
r21r31 + r22r32 + r23r33 = − sin φ0 cos φ0 cos2 λ0 − sin φ0 cos φ0 sin2 λ0 + cos φ0 sin φ0
(
= − sin φ0 cos φ0 cos2 λ0 + sin2 λ0 + cos φ0 sin φ0 )
=0
Substituting these results into equation (30) gives

x 2 + y 2 + z 2 = E 2 + N 2 + U 2 + x 02 + y 02 + z 02
+ 2 (r11x 0 + r12y 0 + r13z 0 ) E
+ 2 (r21x 0 + r22y 0 + r23z 0 ) N
+ 2 (r31x 0 + r32y 0 + r33z 0 )U (31)

a2
Using equation (24) and noting that equation (25) can be re-arranged as 1 − e 2 sin2 φ0 =
ν 02
we have

Normal Section.doc 12
( ) ( )
2
x 02 + y 02 + z 02 = ν 02 cos2 φ0 cos2 λ0 + sin2 λ0 + ν 02 1 − e 2 sin2 φ0
= ν 02 cos2 φ0 + ν 02 sin2 φ0 1 − 2e 2 + e 4 ( )
= ν cos φ0 + ν sin φ0 − 2ν e sin φ0 + ν 02e 4 sin2 φ0
2
0
2 2
0
2 2 2
0
2

= ν − 2ν 02e 2 sin φ0 + ν 02e 4 sin φ0


2
0
2 2

( )
= ν 1 − e 2 sin2 φ0 − ν 02e 2 sin2 φ0 1 − e 2
2
0 ( )
2
= a − ν −a ( 2
0
2
)(1 − e ) 2

From equations (31), (23) and (24) we have

r11x 0 + r12y 0 + r13z 0 = −ν 0 cos φ0 cos λ0 sin λ0 + ν 0 cos φ0 sin λ0 cos λ0 + 0


=0

r21x 0 + r22y 0 + r23z 0 = −ν 0 cos φ0 sin φ0 cos2 λ0 − ν 0 sin φ0 cos φ0 sin2 λ0


(
+ ν 0 1 − e 2 sin φ0 cos φ0 )
= −ν 0 cos φ0 sin φ0 cos2 λ0 + sin2 λ0 − 1 + e 2 ( )
2
= −ν 0e cos φ0 sin φ0

and

r31x 0 + r32y 0 + r33z 0 = ν 0 cos2 φ0 cos2 λ0 + ν 0 cos2 φ0 sin2 λ0 + ν 0 1 − e 2 sin2 φ0 ( )


2
= ν 0 cos φ0 + ν 0 1 − e sin φ0 ( 2
) 2

= ν 0 cos φ0 + ν 0 sin φ0 − ν 0e 2 sin2 φ0


2 2

(
= ν 0 1 − e 2 sin2 φ0 )
2
=a
Substituting these results into equation (31) gives

(
x 2 + y 2 + z 2 = E 2 + N 2 + U 2 + ν 02 1 − e 2 sin2 φ0 − ν 02e 2 sin2 φ0 1 − e 2 ) ( )
2
− 2ν 0e sin φ0 cos φ0N + 2ν 0 1 − e sin φ0 U ( 2 2
) (32)

Using the expression for z 2 given in equation (29), the term e ′2z 2 in equation (21) can be
expressed as

{
e ′2z 2 = e ′2 r132 E 2 + r232 N 2 + r332U 2 + 2r13r23EN + 2r13r33EU + 2r23r33NU
(33)
+ z 02 + 2r13Ez 0 + 2r23Nz 0 + 2r33Uz 0 }
where

r132 = 0; r232 = cos2 φ; r332 = sin2 φ;


2r13r23 = 0; 2r13r33 = 0; 2r23r33 = 2 cos φ0 sin φ0 ;

( )
2
z 02 = ν 02 1 − e 2 sin2 φ0 ;
( )
2r13z 0 = 0; 2r23z 0 = 2ν 0 1 − e 2 cos φ0 sin φ0 ; 2r33z 0 = 2ν 0 1 − e 2 sin2 φ0 ( )

Normal Section.doc 13
and equation (33) can be expressed as

(
e ′2z 2 = e ′2 cos2 φ0N 2 + sin2 φ0U 2 + 2 cos φ0 sin φ0NU )
⎛ ⎞
( ) ( ) ( )
2
+ e ′2 ⎜⎜ν 02 1 − e 2 sin2 φ0 + 2ν 0 1 − e 2 cos φ0 sin φ0N + 2ν 0 1 − e 2 sin2 φ0U ⎟⎟⎟
⎝ ⎠

e2
But e ′2 = so we may write
1 − e2

( )
2
e ′2z 2 = e ′2 cos φ0 N + sin φ0 U
e2 ⎛ 2 ⎞
( ) ( ) ( )
2
+ ⎜ν 0 1 − e 2 sin2 φ0 + 2ν 0 1 − e 2 cos φ0 sin φ0N + 2ν 0 1 − e 2 sin2 φ0U ⎟⎟
2 ⎜
1 −e ⎝ ⎠⎟
( )
2
= e ′2 cos φ0 N + sin φ0 U

( )
2
+ ν 02 1 − e 2 e 2 sin2 φ0 + 2ν 0e 2 cos φ0 sin φ0N + 2ν 0e 2 sin2 φ0U (34)

Substituting equations (32) and (34) into equation (21) gives

( )
2
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U − a2
+ ν 02 (1 − e 2
)
sin2 φ0 − ν 02e 2 sin2 φ0 1 − e 2 ( )
2
− 2ν 0e sin φ0 cos φ0 N + 2ν 0 1 − e sin φ0 U ( 2 2
)
2 2
+ ν e sin φ0 1 − e
0
2
( 2
) + 2ν e 0
2
sin φ0 cos φ0 N + 2ν 0e 2 sin2 φ0 U = 0

( )
And simplifying and noting that ν 02 1 − e 2 sin2 φ0 = a 2 gives the Cartesian equation of the
ellipsoid in local coordinates E,N,U as

( )
2
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U + 2ν 0U = 0 (35)

The origin of the E,N,U system is at P1 with coordinates φ0 , λ0 where the radius of
a
curvature of the prime vertical section is ν 0 = 1
and the first and second
(1 − e 2 2
sin φ0 ) 2

e2
eccentricities of the ellipsoid (a, f ) are obtained from e 2 = f (2 − f ) and e ′2 =
1 − e2
Equation (35) is similar to an equation given by Bowring (1978, p. 363, equation (10) with
x ≡ N y ≡ −U , z ≡ E ). Bowring does not give a derivation, but notes that his equation
is taken from Tobey (1928).

Normal Section.doc 14
CARTESIAN EQUATION OF THE NORMAL SECTION CURVE

The Cartesian equation of the normal section curve is developed as a function of local
Cartesian coordinates ζ , η, ξ which are rotated from the local E,N,U system by the
azimuth α of the normal section plane.

λ0

ellipsoid
P2
N •
U α
b
E
P1 •
no ν
rm 0 a y
al O•
a φ0 •H
a
x
equator

Figure 5: Normal section plane between P1 and P2 on the ellipsoid

Figure 5 shows a normal section plane having an azimuth α between P1 and P2 on the
ellipsoid and a local Cartesian coordinate system E,N,U with an origin at P1 .

Cartesian equations of the ellipsoid in geocentric and local coordinates given by equations
(1), (21) and (35) are:

x 2 + y2 z 2
+ 2 =1
a2 b
x 2 + y 2 + z 2 + e ′2z 2 − a 2 = 0

( )
2
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U + 2ν 0U = 0

Consider a rotation of the E,N,U system about the U-axis by the azimuth α so that the
rotated N-axis lies in the normal section plane and the rotated E-axis is perpendicular to
the plane. Denote this rotated E,N,U system as ζ , η, ξ shown in Figure 6

Normal Section.doc 15
z

λ0

ellipsoid
P2
N η •
(ξ) U α
b
E
P1 •n
or ν ζ
m 0 a y
al O•
a φ0 • H
a
x
equator

Figure 6: Rotated local coordinate system ζ, η, ξ

These two local Cartesian systems; E,N,U and ζ, η, ξ are related by

N η
N cos α
⎡ζ ⎤ ⎡ cos α − sin α 0⎤ ⎡ E ⎤
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢η ⎥ = ⎢ sin α cos α 0⎥ ⎢N ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥

α ⎢ ⎥ ⎢ ⎥⎢ ⎥
N sin α ⎢⎣ ξ ⎥⎦ ⎢⎣ 0 0 1⎥ ⎢U ⎥
⎦⎣ ⎦
E and
(ξ) U
⎡ E ⎤ ⎡ cos α sin α 0⎤ ⎡ζ ⎤
E sin α
⎢ ⎥ ⎢ ⎥⎢ ⎥
E cos α
⎢N ⎥ = ⎢− sin α cos α 0⎥ ⎢ η ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
ζ ⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢⎣U ⎥⎦ ⎢⎣ 0 0 1⎥ ⎢ ξ ⎥
⎦⎣ ⎦

and we may write

E = ζ cos α + η sin α ; E 2 = ζ 2 cos2 α + η 2 sin2 α + 2ζη cos α sin α


N = η cos α − ζ sin α ; N 2 = ζ 2 sin2 α + η 2 cos2 α − 2ζη cos α sin α (36)
2 2
U =ξ U =ξ

giving

E 2 + N 2 +U 2 = ζ 2 + η2 + ξ2 (37)

Normal Section.doc 16
Substituting equations (36) and (37) into equation (35) gives

ζ 2 + η 2 + ξ 2 + e ′2 (−ζ sin α cos φ0 + η cos α cos φ0 + ξ sin φ0 ) + 2ν 0 ξ = 0


2
(38)

This is the Cartesian equation of an ellipsoid where the local Cartesian coordinates ζ , η, ξ
have an origin at P1 (φ0 , λ0 ) on the ellipsoid (a, f ) with the ξ -axis in the direction of the
outward normal at P1 ; the ξ -η plane is coincident with the normal section plane making
an angle α with the meridian plane of P1 ; and the ξ -ζ plane is perpendicular to the
normal section plane. As before the radius of curvature of the prime vertical section is
a
ν0 = 1
and the first and second eccentricities of the ellipsoid are obtained
(1 − e 2 2
sin φ0 ) 2

e2
from e 2 = f (2 − f ) and e ′2 = .
1 − e2

Setting ζ = 0 in equation (38) will give the equation of the normal section plane as

η 2 + ξ 2 + e ′2 (η cos α cos φ0 + ξ sin φ0 ) + 2ν 0 ξ = 0


2
(39)

Expanding equation (39) gives

η 2 + η 2e ′2 cos2 α cos2 φ0 + ξ 2 + ξ 2e ′2 sin2 φ0 + 2ηξe ′2 cos α cos φ0 sin φ0 + 2ν 0 ξ = 0

which can be simplified to

( ) ( )
ξ 2 1 + g 2 + 2 ξηgh + η 2 1 + h 2 + 2ν 0 ξ = 0 (40)

where g and h are constants of the normal section and

e
g = e ′ sin φ0 = sin φ0
1 − e2 (41)
e
h = e ′ cos α cos φ0 = cos α sin φ0
1 − e2
Equation (40) is similar to Clarke (1880, equation 14, p. 107) although Clarke's derivation
is different and very concise; taking only 11 lines of text and diagrams.

Normal Section.doc 17
POLAR EQUATION OF THE NORMAL SECTION CURVE

normal section curve

P2

η
d
ξ chor
θ r
z
P1 •n ζ
or
m ν0
al O
• y
φ0 •H
x
a

equator

Figure 7: Normal section curve f (ξ, η )

The Cartesian equation of the normal section curve in local coordinates ξ, η, ζ = 0 is given
by equations (40) and (41) given the latitude φ0 of P1 , the ellipsoid constant e 2 and the
azimuth α of the normal section plane.

The equation of the curve in polar coordinates r, θ ; where r is a chord of the curve and θ
is the zenith distance of the chord, can be obtained in the following manner.

First, from Figure 7, we may write


ξ = r cos θ
(42)
η = r sin θ

And second, we may re-arrange equation (40) as

ξ 2 + η 2 + (g ξ + h η ) = −2ν 0 ξ
2
(43)

Squaring equations (42) and adding gives

ξ 2 + η 2 = r 2 cos2 θ + r 2 sin2 θ = r 2 (44)

and the third term in equation (43) can be expressed as

(g ξ + h η ) = (g r cos θ + h r sin θ)
2 2

= g 2r 2 cos2 θ + h 2r 2 sin2 θ + 2gh r 2 sin θ cos θ


= r 2 (g cos θ + h sin θ )
2
(45)

Normal Section.doc 18
Substituting equations (44) and (45) into equation (43) and re-arranging gives the polar
equation of the normal section curve

−2ν 0 cos θ
r= (46)
1 + (g cos θ + h sin θ )
2

ARC LENGTH ALONG A NORMAL SECTION CURVE

To evaluate the arc length s along the normal section curve, consider the following

Δs
A
ξ
B Δs
A
M
r

θ B
Δr
r+ r Δθ
Δθ M Δr
O η

Figure 8: Small element of arc length along a normal section curve

In Figure 8, when Δθ is small, then AM r Δθ and the arc length Δs is approximated

( )
2
by the chord AB and (Δs ) r Δθ + (Δr ) or
2 2

(r Δθ) + (Δr )
2 2
Δs =
⎛ 2⎞
⎜⎜ 2 ⎛⎜ Δr ⎞⎟ ⎟⎟
= (Δθ ) ⎜r + ⎜⎜ ⎟⎟ ⎟⎟
2

⎜⎜ ⎝ Δθ ⎠⎟ ⎠⎟⎟

and
2
Δs ⎛ Δr ⎞
= r 2 + ⎜⎜⎜ ⎟⎟⎟
Δθ ⎝ Δθ ⎠⎟

Δs
Taking the limit of as Δθ → 0 gives
Δθ
2
⎛ Δs ⎞ ds ⎛dr ⎞
lim ⎜⎜⎜ ⎟⎟⎟ = = r 2 + ⎜⎜⎜ ⎟⎟⎟ (47)
⎟ dθ
Δθ → 0 ⎝ Δθ ⎠ ⎝d θ ⎠⎟

Normal Section.doc 19
and the arc length is given by
1
⎪⎧⎪
θ =θB
⎛ dr ⎟⎞ ⎪⎫⎪⎪2
2
⎪ ⎜
s = ∫ ds = ∫ ⎨r + ⎜⎜ ⎟⎟ ⎬ d θ
2
(48)

θ =θA ⎪
⎝d θ ⎟⎠ ⎪⎪
⎩⎪ ⎭⎪
Referring to Figure 7 the η -axis is tangential to the normal section curve P1P2 at P1 and
π
the zenith distance θ = θA = and r = 0 . And when θ = θB = θ2 then the chord
2
r = P1P2 and the arc length of the normal section curve is given by
1
⎪⎧⎪
θ =θ2
⎛dr ⎟⎞ ⎪⎫⎪⎪2
2
⎪ ⎜
s = ∫ ds = ∫ ⎨r + ⎜⎜ ⎟⎟ ⎬ d θ
2
(49)
π⎪
⎪ ⎝d θ ⎟⎠ ⎪⎪
θ= ⎩ ⎪ ⎭⎪
2

r is given by equation (46) with normal section constants g and h given by equations (41).

dr
The derivative can be obtained from equation (46) using the quotient rule for

differential calculus

du dv
v −u
dr d ⎛⎜ u ⎟⎞
= ⎜ ⎟ = dθ 2 dθ (50)
d θ d θ ⎜⎝ v ⎟⎟⎠ v

where

v = 1 + (g cos θ + h sin θ )
2
u = −2ν 0 cos θ ;
du dv (51)
= 2ν 0 sin θ ; = 2 (g cos θ + h sin θ )(h cos θ − g sin θ )
dθ dθ
The arc length of the normal section curve between P1 and P2 can be found by evaluating
the integral given in equation (49). This integral cannot be solved analytically but may be
evaluated by a numerical integration technique known Romberg integration. Appendix 1
contains a development of the formula used in Romberg integration as well as a MATLAB
function demonstrating the algorithm.

Normal Section.doc 20
SOLVING THE DIRECT AND INVERSE PROBLEMS ON THE ELLIPSOID USING
NORMAL SECTIONS

The direct problem on an ellipsoid is: given latitude and longitude of P1 , azimuth α12 of
the normal section P1P2 and the arc length s along the normal section curve; compute the
latitude and longitude of P2 .

The inverse problem on an ellipsoid is: given the latitudes and longitudes of P1 and P2
compute the azimuth α12 and the arc length s along the normal section curve P1P2 .

Note 1. In general there are two normal section curves joining P1 and P2 . We are only
dealing with the single normal section P1P2 (containing the normal at P1 – see
Figure 3) and so only the forward azimuth α12 is given or computed. The reverse
azimuth α21 is the azimuth of the normal section P2P1 (containing the normal at
P2 ) which is a different curve from normal section curve P1P2 .

Note 2. The usual meaning of: solving the direct and inverse problems on the ellipsoid
would imply the use of the geodesic; the unique curve defining the shortest
distance between two points. And solving these problems is usually done using
Bessel's method with Vincenty's equations (Deakin & Hunter 2007) or Pittman's
method (Deakin & Hunter 2007).

In the solutions of the direct and inverse problems set out in subsequent sections, the
following notation and relationships are used.
a, f semi-major axis length and flattening of ellipsoid.
b semi-minor axis length of the ellipsoid, b = a (1 − f )
e 2 eccentricity of ellipsoid squared, e 2 = f (2 − f )
e2
e ′2 2nd-eccentricity of ellipsoid squared, e ′2 =
1 − e2
φ, λ latitude and longitude on ellipsoid: φ measured 0 to ± 90 (north latitudes
positive and south latitudes negative) and λ measured 0 to ± 180 (east
longitudes positive and west longitudes negative).
s length of the normal section curve on the ellipsoid.
α12 azimuth of normal section P1P2
α12′ azimuth of normal section P2P1 (measured in the local horizon plane of P1 )
α21 reverse azimuth; azimuth of normal section P2P1
c chord P1P2
θ zenith distance of the chord c

Normal Section.doc 21
x,y,z are geocentric Cartesian coordinates with an origin at the centre of the
ellipsoid and where the z-axis is coincident with the rotational axis of the
ellipsoid, the x-z plane is the Greenwich meridian plane and the x-y plane is
the equatorial plane of the ellipsoid.
x',y',z' are geocentric Cartesian coordinates with an origin at the centre of the
ellipsoid and where the z'-axis is coincident with the rotational axis of the
ellipsoid, the x'-z' plane is the meridian plane of P1 and the x'-y' plane is the
equatorial plane of the ellipsoid. The x',y',z' system is rotated from the x,y,z
system by an angle λ1 about the z-axis.
vectors a vector a defining the length and direction of a line from point 1 to point 2
is given by the formula a = ai i + a j j + ak k where ai = x 2 − x 1 , a j = y2 − y1
and ak = z 2 − z 1 are the vector components and i, j, and k are unit vectors in
the direction of the positive x, y, and z axes respectively. The components of
a
a unit vector aˆ = can be calculated by dividing each component by the
a

magnitude of the vector a = ai2 + a j2 + ak2 .


For vectors a and b the vector dot product is a i b = a b cos θ where θ is
ˆ = cos θ . The vector
the angle between the vectors. For unit vectors aˆ i b
dot product is a scalar quantity S = aibi + a jbj + akbk , hence for unit vectors
the angle between them is given by cos θ = S .
For vectors a and b the vector cross product is a × b = a b sin θ p
ˆ where p̂
is a unit vector perpendicular to the plane containing a and b and in the
direction of a right-handed screw rotated from a to b. The result of a vector
cross product is another vector whose components are given by
a × b = (a jbk − akbj ) i − (aibk − akbi ) j + (aibj − a jbi ) k . The components of the
unit vector p̂ are found by dividing each component of the cross product by
the magnitudes a and b , and the sine of the angle between them. For unit
ˆ = sin θ p
vectors aˆ × b ˆ =p
ˆ and for perpendicular unit vectors aˆ × b ˆ.

Normal Section.doc 22
THE DIRECT PROBLEM ON THE ELLIPSOID USING A NORMAL SECTION

The direct problem is: Given latitude and longitude of P1 , azimuth α12 of the normal
section P1P2 and the arc length s along the normal section curve;
compute the latitude and longitude of P2 .

With the ellipsoid constants a, f , e 2 and e ′2 and given φ1, λ1, α12 and s the problem may be
solved by the following sequence.

1. Compute ν1 the radius of curvature in the prime vertical plane of P1 from

a
ν1 = 1

(1 − e 2 2
sin φ1 )
2

2. Compute the constants g and h of the normal section P1P2 from

e
g = e ′ sin φ1 = sin φ1
1 − e2
e
h = e ′ cos α12 cos φ1 = cos α12 sin φ1
1 − e2
3. Compute the chord c = P1P2 and the zenith distance θ of the chord P1P2 by iteration
using the following sequence of operations until there is negligible change in the
computed chord distance

start Set the counter k = 1 and set the chord ck = s

π
(i) Set the counter n = 1 and set the zenith distance θn =
2
(ii) Use Newton-Raphson iteration to compute the zenith distance of the
chord using equation (46) rearranged as

f (θ ) = c + c (g cos θ + h sin θ ) − 2ν1 cos θ = 0 and the iterative formula


2

f (θn )
θn +1 = θn − where f ′ (θn ) is the derivative of f (θn ) and
f ′ (θn )

f (θn ) = ck + ck (g cos θn + h sin θn ) − 2ν1 cos θn


2

f ′ (θn ) = 2ck (g cos θn + h sin θn )(h cos θn − g sin θn ) − 2ν1 sin θn

Note that the iteration for θ is terminated when θn and θn +1 differ by an


acceptably small value.
(iii) Compute the arc length sk using Romberg integration given a, f , φ1, α12 , θ

Normal Section.doc 23
(iv) Compute the small change in arc length ds = sk − s

(v) If ds < 0.000001 then go to end; else go (vi)

(vi) Increment k, compute new chord ck = ck −1 − ds and go to (i)

end Iteration for the chord c = P1P2 and the zenith distance θ of the chord
P1P2 is complete.

4. Compute the x,y,z coordinates of P1 using

x 1 = ν1 cos φ1 cos λ1
y1 = ν1 cos φ1 sin λ1
( )
z1 = ν1 1 − e 2 sin φ1

5. Compute coordinate differences Δx ′, Δy ′, Δz ′ in the x ′, y ′, z ′ using

Δx ′ = −c sin θ cos α12 sin φ1 + c cos θ cos φ1


Δy ′ = c sin θ sin α12
Δz ′ = c sin θ cos α12 cos φ1 + c cos θ sin φ1

6. Rotate the x',y',z' coordinate differences to x,y,z coordinate differences by a rotation


of λ1 about the z'-axis using

Δx = Δx ′ cos λ1 − Δy ′ sin λ1
Δy = Δx ′ sin λ1 + Δy ′ cos λ1
Δz = Δz ′
7. Compute x,y,z coordinates of P2 using

x 2 = x 1 + Δx
y2 = y1 + Δy
z 2 = z 1 + Δz

8. Compute latitude and longitude of P2 by conversion x , y, z ⇒ φ, λ, h using Bowring's


method.

Shown below is the output of a MATLAB function nsection_direct.m that solves the
direct problem on the ellipsoid for normal sections.
The ellipsoid is the GRS80 ellipsoid and φ, λ for P1 are −10 and 110 respectively with
α12 = 140 28 ′ 31.981931′′ and s = 5783 228.924 736 m . φ, λ computed for P2 are −45
and 155 respectively.

Normal Section.doc 24
>> nsection_direct

/////////////////////////////////
// Normal Section: Direct Case //
/////////////////////////////////

ellipsoid parameters
a = 6378137.000000000
f = 1/298.257222101000
e2 = 6.694380022901e-003
ep2 = 6.694380022901e-003

Latitude P1 = -10 0 0.000000 (D M S)


Longitude P1 = 110 0 0.000000 (D M S)

Azimuth of normal section P1-P2


Az12 = 140 28 31.981931 (D M S)

normal section distance P1-P2


s = 5783228.924736

chord distance P1-P2


c = 5586513.169887
iterations = 13

Zenith distance of chord at P1


zd = 116 2 20.450079 (D M S)
iterations = 5

Cartesian coordinates
X Y Z
P1 -2148527.045536 5903029.542697 -1100248.547700
P2 -4094327.792179 1909216.404490 -4487348.408756
dX = -1945800.746643
dY = -3993813.138207
dZ = -3387099.861057

Latitude P2 = -45 0 0.000000 (D M S)


Longitude P2 = 154 59 60.000000 (D M S)

>>

Normal Section.doc 25
THE INVERSE PROBLEM ON THE ELLIPSOID USING A NORMAL SECTION

The inverse problem is: Given latitudes and longitudes of P1 and P2 on the ellipsoid
compute the azimuth α12 of the normal section P1P2 and the arc
length s of the normal section curve.

With the ellipsoid constants a, f , e 2 and e ′2 and given φ1, λ1 and φ2 , λ2 the problem may be
solved by the following sequence.

1. Compute ν1 and ν2 the radii of curvature in the prime vertical plane of P1 and P2
from

a
ν= 1

(1 − e 2 sin2 φ )
2

2. Compute the x,y,z coordinates of P1 , P2 , P3 and P4 noting that P3 is at the


intersection of the normal through P1 and the rotational axis of the ellipsoid and P4
is at the intersection of the normal through P2 and the rotational axis. Coordinate
of P1 and P2 are obtained from
x = ν cos φ cos λ
y = ν cos φ sin λ
( )
z = ν 1 − e 2 sin φ

The x and y coordinates of P3 and P4 are zero and the z coordinate is obtained from

z = −νe 2 sin φ

3. Compute the coordinate differences

Δx = x 2 − x 1
Δy = y2 − y1
Δz = z 2 − z 1

4a. Compute vector c = (Δx ) i + (Δy ) j + (Δz ) k in the direction of the chord P1P2 .

c
4b. Compute chord distance c = c and the unit vector ˆc =
c

u
5. Compute vector u = (x 1 ) i + (y1 ) j + (z1 − z 3 ) k and the unit vector u
ˆ= in the
u
direction of the outward normal through P1 .

Normal Section.doc 26
6. Set the unit vector ˆz = 0 i + 0 j + 1 k in the direction of the z-axis

7. Compute the zenith distance of the chord from the vector dot product

cos θ = uˆicˆi + û jcˆj + uˆkcˆk

8. Compute the unit vector ê perpendicular to the meridian plane of P1 from vector
cross product ( ê is in the direction of east)

ˆz × u
ˆ ⎛ zˆ uˆ − zˆ uˆ ⎞⎟ ⎛ zˆ uˆ − zˆ uˆ ⎞ ⎛ zˆ uˆ − zˆ uˆ ⎟⎞
⎜ k j ⎟ ⎜ k i⎟⎟⎟ j + ⎜⎜⎜ i j j i⎟
ˆe = = ⎜⎜ j k ⎟⎟ i − ⎜⎜ i k ⎟k
cos φ1 ⎜⎝ cos φ1 ⎠⎟ ⎜⎝ cos φ1 ⎟⎠ ⎜⎝ cos φ1 ⎟⎟⎠

9. Compute the unit vector n̂ in the meridian plane of P1 from vector cross product.
( n̂ is in the direction of north)

ˆ × ˆe = (uˆjeˆk − uˆkeˆj ) i − (uˆieˆk − uˆkeˆi ) j + (uˆieˆj − uˆjeˆi ) k


ˆ=u
n

10. Compute the unit vector p̂ perpendicular to the normal section P1P2 from vector
cross product. ( p̂ lies in the local horizon plane of P1 )

ˆ × ˆc ⎛⎜ uˆjcˆk − uˆkcˆj ⎟⎞⎟ ⎛⎜ uˆicˆk − uˆkcˆi ⎞⎟


u ⎛ uˆ cˆ − uˆ cˆ ⎞⎟
ˆ=
p = ⎜⎜ ⎟⎟ i − ⎜⎜ ⎟⎟ j + ⎜⎜⎜ i j j i⎟
⎟k
sin θ ⎜⎝ sin θ ⎟⎠ ⎜⎝ sin θ ⎟⎠ ⎜⎝ sin θ ⎟⎟⎠

11. Compute the unit vector ĝ in the local horizon plane of P1 and in the direction of
the normal section P1P2 from vector cross product.

gˆ = p ˆ = (pˆj uˆk − pˆk uˆj ) i − (pˆiuˆk − pˆk uˆi ) j + (pˆiuˆj − pˆj uˆi ) k
ˆ×u

12. Compute the azimuth α12 if the normal section P1P2 using vector dot products to
first compute angles α (between n̂ and ĝ ) and β (between ê and ĝ ) from

cos α = nˆi gˆi + nˆj gˆj + nˆk gˆk


cos β = eˆi gˆi + eˆj gˆj + eˆk gˆk

If β > 90 then α12 = 360 − α ; else α12 = α

w
13. Compute the vector w = (x 1 ) i + (y1 ) j + (z 1 − z 4 ) k and the unit vector w
ˆ= (w is
w
in the direction of the line P4P1 and lies in the meridian plane of P1 ).

14. Compute the angle γ between ŵ and ĉ from the vector dot product

cos γ = wˆicˆi + wˆ jcˆj + wˆkcˆk

Normal Section.doc 27
15. Compute the angle δ between ŵ and û from the vector dot product ( δ lies in the
meridian plane of P1 )

cos δ = wˆiuˆi + wˆ j uˆj + wˆk uˆk

16. Compute the unit vector q̂ perpendicular to the normal section P2P1 from vector
cross product

ˆ × ˆc ⎜⎛ wˆ jcˆk − wˆkcˆj ⎟⎟⎞ ⎜⎛ wˆicˆk − wˆkcˆi ⎟⎞


w ⎛ wˆ cˆ − wˆ cˆ ⎟⎞
qˆ = = ⎜⎜ ⎟⎟ i − ⎜⎜ ⎟⎟ j + ⎜⎜⎜ i j j i⎟
⎟⎟ k
sin γ ⎜⎝ sin γ ⎠⎟ ⎜⎝ sin γ ⎠⎟ ⎝⎜ sin γ ⎟⎠

17. Compute the unit vector ĥ in the local horizon plane of P1 and in the direction of
the normal section P2P1 from vector cross product.

ˆ ⎜⎛qˆj uˆk − qˆk uˆj ⎟⎞⎟ ⎛⎜qˆiuˆk − qˆk uˆi ⎟⎞


ˆ = qˆ × u
⎛qˆ uˆ − qˆ uˆ ⎟⎞
h = ⎜⎜ ⎟⎟ i − ⎜⎜ ⎟⎟ j + ⎜⎜⎜ i j j i⎟
⎟k
cos δ ⎜⎝ cos δ ⎟⎠ ⎜⎝ cos δ ⎟⎠ ⎜⎝ cos δ ⎠⎟⎟

18. Compute the azimuth α12′ of the normal section P2P1 using vector dot products to
ˆ ) and β (between ê and ĥ ) from
first compute angles α (between n̂ and h

cos α = nˆihˆi + nˆj hˆj + nˆk hˆk


cos β = eˆ hˆ + eˆ hˆ + eˆ hˆ
i i j j k k

If β > 90 then α12′ = 360 − α ; else α12′ = α

19. Compute the small angle ε between the two normal section planes at P1

ε = α12 − α12′

20. Compute arc length s along the normal section curve P1P2 using Romberg
Integration.

Shown below is the output of a MATLAB function nsection_inverse.m that solves the
inverse problem on the ellipsoid for normal sections.
The ellipsoid is the GRS80 ellipsoid and φ, λ for P1 are −10 and 110 respectively and
φ, λ for P2 are −45 and 155 respectively.
Computed azimuths are α12 = 140 28 ′ 31.981931′′ and α12′ = 140 32′ 18.496009′′ , and
s = 5783 228.924 736 m .

Normal Section.doc 28
>> nsection_inverse

//////////////////////////////////
// Normal Section: Inverse Case //
//////////////////////////////////

ellipsoid parameters
a = 6378137.000000000
f = 1/298.257222101000
e2 = 6.694380022901e-003
ep2 = 6.694380022901e-003

Latitude P1 = -10 0 0.000000 (D M S)


Longitude P1 = 110 0 0.000000 (D M S)

Latitude P2 = -45 0 0.000000 (D M S)


Longitude P2 = 155 0 0.000000 (D M S)

Cartesian coordinates
X Y Z
P1 -2148527.045536 5903029.542697 -1100248.547700
P2 -4094327.792180 1909216.404490 -4487348.408755
P3 0.000000 0.000000 7415.121539
P4 0.000000 0.000000 30242.470131
dX = -1945800.746645
dY = -3993813.138206
dZ = -3387099.861055

Chord distance P1-P2


chord = 5586513.169886

Zenith distance of chord at P1


zd = 116 2 20.450079 (D M S)

Azimuth of normal section P1-P2


Az12 = 140 28 31.981931 (D M S)

Azimuth of normal section P2-P1


Az21 = 297 47 44.790362 (D M S)

Azimuth of normal section P2-P1 at P1


Az'12 = 140 32 18.496009 (D M S)

Angle between normal sections at P1


epsilon = 0 3 46.514078 (D M S)

ROMBERG INTEGRATION TABLE


1 5783427.529966
2 5783278.294728 5783228.549649
3 5783241.249912 5783228.901640 5783228.925106
4 5783232.004951 5783228.923298 5783228.924742 5783228.924736
5 5783229.694723 5783228.924646 5783228.924736 5783228.924736

normal section distance P1-P2


s = 5783228.924736

>>

Normal Section.doc 29
DIFFERENCE IN LENGTH BETWEEN GEODESIC AND NORMAL SECTION

There are five curves of interest in geodesy; the geodesic, the normal section, the great
elliptic arc the loxodrome and the curve of alignment.

The geodesic between P1 and P2 on an ellipsoid is the unique curve on the surface defining
the shortest distance; all other curves will be longer in length. The normal section curve
P1P2 is a plane curve created by the intersection of the normal section plane containing the
normal at P1 and also P2 with the ellipsoid surface. And as we have shown there is the
other normal section curve P2P1 . The curve of alignment is the locus of all points Q such
that the normal section plane at Q also contains the points P1 and P2 . The curve of
alignment is very close to a geodesic. The great elliptic arc is the plane curve created by
intersecting the plane containing P1 , P2 and the centre O with the surface of the ellipsoid
and the loxodrome is the curve on the surface that cuts each meridian between P1 and P2
at a constant angle.

Approximate equations for the difference in length between the geodesic, the normal
section curve and the curve of alignment were developed by Clarke (1880, p. 133) and
Bowring (1972, p. 283) developed an approximate equation for the difference between the
geodesic and the great elliptic arc. Following Bowring (1972), let
s = geodesic length
L = normal section length
D = great elliptic length
S = curve of alignment length

then
4
e 4 ⎛⎜ s ⎟⎞
L −s = s ⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
90 ⎜⎝ R ⎟⎠
2
e 4 ⎛⎜ s ⎟⎞
D −s = s ⎜ ⎟⎟ sin2 φ1 cos2 φ1 sin2 α12 + (52)
24 ⎜⎝ R ⎟⎠
4
e 4 ⎛⎜ s ⎟⎞
S −s = s ⎜⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝ R ⎟⎠

where R can be taken as the radius of curvature in the prime vertical at P1 . Now for a
given value of s, L − s will be a maximum if φ1 = 0 ( P1 on the equator) and α12 = 45 in
1
which case cos4 φ1 sin2 α12 cos2 α12 = , thus
4

Normal Section.doc 30
4
e4 ⎛ s ⎞
(L − s ) < 360 s ⎜⎜⎜ R ⎟⎟⎟⎟ (53)
⎝ ⎠

For the GRS80 ellipsoid where f = 1 298.257222101, e 2 = f (2 − f ) , and for s = 1600000 m


and R = 6371000 m and equation (53) gives L − s < 0.001 m .

This can be verified by using two MATLAB functions: Vincenty_Direct.m that computes
the direct case on the ellipsoid for the geodesic and nsection_inverse.m that computes the
inverse case on the ellipsoid for the normal section. Suppose P1 has latitude and longitude
φ1 = 0 , λ1 = 0 on the GRS80 ellipsoid and that the azimuth and distance of the geodesic
are α12 = 45 and s = 1600000 m respectively. The coordinates of P2 are obtained from
Vincenty_Direct.m as shown below. These values are then used in nsection_direct.m to
compute the normal section azimuth and distance P1P2 .

The difference L − s = 0.000789 m .

>> Vincenty_Direct >> nsection_inverse

////////////////////////////////////////////// //////////////////////////////////
// DIRECT CASE on ellipsoid: Vincenty's method // Normal Section: Inverse Case //
////////////////////////////////////////////// //////////////////////////////////

ellipsoid parameters ellipsoid parameters


a = 6378137.000000000 a = 6378137.000000000
f = 1/298.257222101000 f = 1/298.257222101000
b = 6356752.314140356100 e2 = 6.694380022901e-003
e2 = 6.694380022901e-003 ep2 = 6.694380022901e-003
ep2 = 6.739496775479e-003
Latitude P1 = 0 0 0.000000 (D M S)
Latitude & Longitude of P1 Longitude P1 = 0 0 0.000000 (D M S)
latP1 = 0 0 0.000000 (D M S)
lonP1 = 0 0 0.000000 (D M S) Latitude P2 = 10 10 33.913466 (D M S)
Longitude P2 = 10 16 16.528718 (D M S)
Azimuth & Distance P1-P2
az12 = 45 0 0.000000 (D M S) Azimuth of normal section P1-P2
s = 1600000.000000 Az12 = 45 0 7.344646 (D M S)

Latitude and Longitude of P2 ROMBERG INTEGRATION TABLE


latP2 = 10 10 33.913466 (D M S) 1 1600010.313769
lonP2 = 10 16 16.528718 (D M S) 2 1600002.577521 1599999.998771
3 1600000.644877 1600000.000663 1600000.000789
Reverse azimuth 4 1600000.161805 1600000.000781 1600000.000789
alpha21 = 225 55 1.180693 (D M S) 1600000.000789

>> normal section distance P1-P2


s = 1600000.000789

>>

Differences in length between the geodesic and normal section exceed 0.001 m for distances
greater than 1,600 km. At 5,800 km the difference is approximately 0.380 m.

Normal Section.doc 31
MATLAB FUNCTIONS

Shown below are two MATLAB functions nsection_direct.m and nsection_inverse.m that
have been written to demonstrate the use of Romberg integration in the solution of the
direct and inverse case on the ellipsoid using normal sections. These functions call other
functions; DMS.m, Cart2Geo.m and romberg.m that are also shown.

MATLAB function nsection_direct.m

function nsection_direct
%
% nsection_direct: This function computes the direct case for a normal
% section on the reference ellipsoid. That is, given the latitude and
% longitude of P1 and the azimuth of the normal section P1-P2 and distance
% along the normal section curve, compute the latitude and longitude of P2.

%--------------------------------------------------------------------------
% Function: nsection_direct
%
% Usage: nsection_direct
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 23 September 2009
% Version 1.1 16 December 2009
%
% Purpose: nsection_inverse: This function computes the direct case for
% a normal section on the reference ellipsoid. That is, given the
% latitude and longitude of P1 and the azimuth of the normal section P1-P2
% and distance along the normal section curve, compute the latitude and
% longitude of P2.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% s = romberg(a,f,lat1,Az12,zd)
% [lat,lon,h] = Cart2Geo(a,flat,X,Y,Z)
%
% Variables:
% Az12 - azimuth of normal section P1-P2
% a - semi-major axis of spheroid
% d2r - degree to radian conversion factor 57.29577951...
% e2 - eccentricity of ellipsoid squared
% eps - 2nd-eccentricity squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% f_zd - function of the zenith distance
% fdash_zd - derivative of the function of the zenith distance
% g,h - constants of normal section
% lat1 - latitude of P1 (radians)
% lat2 - latitude of P2 (radians)
% lon1 - longitude of P1 (radians)
% lon2 - longitude of P2 (radians)
% nu1 - radius of curvature in prime vertical plane at P1
% pion2 - pi/2
% s - arc length of normal section P1-P2
% s2 - sin-squared(latitude)
% x,y - local variables in newton-Raphson iteration for zenith
% distance of chord P1-P2
% X1,Y1,Z1 - Cartesian coordinates of P1

Normal Section.doc 32
% X2,Y2,Z2 - Cartesian coordinates of P2
% X3,Y3,Z3 - Cartesian coordinates of P3
% X4,Y4,Z4 - Cartesian coordinates of P4
% zd - zenith distance of chord
%
% Remarks:
%
% References:
% [1] Deakin, R. E., (2009), "The Normal Section Curve on an Ellipsoid",
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, November 2009.
%
%--------------------------------------------------------------------------

% Set degree to radian conversion factor and pi/2


d2r = 180/pi;
pion2 = pi/2;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;

% Compute ellipsoid constants


f = 1/flat;
e2 = f*(2-f);
ep2 = e2/(1-e2);

% Set lat and long of P1 on ellipsoid


lat1 = -10/d2r;
lon1 = 110/d2r;

% Set azimuth of normal section P1-P2 and arc length of normal section
Az12 = (140 + 28/60 + 31.981931/3600)/d2r;
s = 5783228.924736;

% [1] Compute radius of curvature in the prime vertical plane at P1


s2 = sin(lat1)^2;
nu1 = a/sqrt(1-e2*s2);

% [2] Compute constants g and h of the normal section P1-P2


ep = sqrt(ep2);
g = ep*sin(lat1);
h = ep*cos(lat1)*cos(Az12);

% [3] Compute the chord and the zenith distance of the chord of the normal
% section curve P1-P2 by iteration.

% Set the chord equal to the arc length


c = s;
iter_1 = 1;
while 1
% Set the zenith distance to 90 degrees
zd = pion2;
% Compute the zenith distance of the chord using Newton-Raphson iteration
iter_2 = 1;
while 1
x = g*cos(zd)+h*sin(zd);
y = h*cos(zd)-g*sin(zd);
f_zd = c+c*x*x+2*nu1*cos(zd);
fdash_zd = 2*c*x*y-2*nu1*sin(zd);
new_zd = zd-(f_zd/fdash_zd);
if abs(new_zd - zd) < 1e-15
break;
end
zd = new_zd;
if iter_2 > 10
fprintf('Iteration for zenith distance failed to converge after 10
iterations');
break;

Normal Section.doc 33
end
iter_2 = iter_2 + 1;
end;
% Compute normal section arc length for zenith distance
s_new = romberg(a,f,lat1,Az12,zd);
ds = s_new-s;
if abs(ds) < 1e-6
break;
end
c = c - ds;
if iter_1 > 15
fprintf('Iteration for chord distance failed to converge after 15 iterations');
break;
end
iter_1 = iter_1 + 1;
end;

% [4] Compute X,Y,Z Cartesian coordinates of P1


X1 = nu1*cos(lat1)*cos(lon1);
Y1 = nu1*cos(lat1)*sin(lon1);
Z1 = nu1*(1-e2)*sin(lat1);

% [5] Compute X',Y',Z' coord differences with Z'-X' plane coincident with meridian
% plane of P1
dXp = -c*sin(zd)*cos(Az12)*sin(lat1) + c*cos(zd)*cos(lat1);
dYp = c*sin(zd)*sin(Az12);
dZp = c*sin(zd)*cos(Az12)*cos(lat1) + c*cos(zd)*sin(lat1);

% [6] Rotate X',Y',Z' coord differences by lon1 about Z'-axis


dX = dXp*cos(lon1) - dYp*sin(lon1);
dY = dXp*sin(lon1) + dYp*cos(lon1);
dZ = dZp;

% [7] Compute X,Y,Z coords of P2


X2 = X1 + dX;
Y2 = Y1 + dY;
Z2 = Z1 + dZ;

% [8] Compute lat, lon and ellipsoidal height of P2 using Bowring's method
[lat2,lon2,h2] = Cart2Geo(a,flat,X2,Y2,Z2);

%-----------------------
% Print result to screen
%-----------------------

fprintf('\n/////////////////////////////////');
fprintf('\n// Normal Section: Direct Case //');
fprintf('\n/////////////////////////////////');
fprintf('\n\nellipsoid parameters');
fprintf('\na = %18.9f',a);
fprintf('\nf = 1/%16.12f',flat);
fprintf('\ne2 = %20.12e',e2);
fprintf('\nep2 = %20.12e',e2);

% Print lat and lon of P1


[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\n\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print azimuth of normal section

Normal Section.doc 34
fprintf('\n\nAzimuth of normal section P1-P2');
[D,M,S] = DMS(Az12*d2r);
fprintf('\nAz12 = %3d %2d %9.6f (D M S)',D,M,S);

% Print normal section distance P1-P2


fprintf('\n\nnormal section distance P1-P2');
fprintf('\ns = %15.6f',s);

% Print chord distance P1-P2


fprintf('\n\nchord distance P1-P2');
fprintf('\nc = %15.6f',c);
fprintf('\niterations = %4d',iter_1);

% Print zenith distance of chord at point 1


fprintf('\n\nZenith distance of chord at P1');
[D,M,S] = DMS(zd*d2r);
fprintf('\nzd = %3d %2d %9.6f (D M S)',D,M,S);
fprintf('\niterations = %4d',iter_2);

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);
fprintf('\ndX = %15.6f',dX);
fprintf('\ndY = %15.6f',dY);
fprintf('\ndZ = %15.6f',dZ);

% Print lat and lon of P2


[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat2 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\n');

Normal Section.doc 35
MATLAB function nsection_inverse.m

function nsection_inverse
%
% nsection_inverse: This function computes the inverse case for a normal
% section on the reference ellipsoid. That is, given the latitudes and
% longitudes of two points on the ellipsoid, compute the azimuth and the
% arc length of the normal section.

%--------------------------------------------------------------------------
% Function: nsection_inverse()
%
% Usage: nsection_inverse
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 21 September 2009
% Version 1.1 16 December 2009
%
% Purpose: nsection_inverse: This function computes the inverse case for
% a normal section on the reference ellipsoid. That is, given the
% latitudes and longitudes of two points on the ellipsoid, compute the
% azimuth and the arc length of the normal section.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
%
% Variables:
% alpha - angle in the local horizon plane measured from north
% Az12 - azimuth of normal section P1-P2
% Azdash12 - azimuth of normal section plane P2-P1 measured at P1
% Az21 - azimuth of normal section P2-P1
% a - semi-major axis of spheroid
% beta - angle in the local horizon plane measured from east
% chord - chord distance between P1 and P2
% ci,cj,ck - components of unit vector c in the direction of the chord
% P1-P2
% delta - angle in the meridian plane of P1 between w and u vectors
% diff - difference between successive value of integral in Romber
% Integration
% du,dv,dr - derivatives in Romberg Integration
% dX,dY,dZ - Cartesian components of chord between between P1 and P2
% d2r - degree to radian conversion factor 57.29577951...
% ei,ej,ek - components of unit vector e in the direction of east in
% local horizon system
% epsilon - small angle between azimuths of normal section planes
% ep2 - 2nd-eccentricity squared
% e2 - 1st-eccentricity squared
% f - f = 1/flat is the flattening of ellipsoid
% finish - integer flag (1 or 0) to test for end of Romberg
% Integration
% first - first value in trapezoidal rule in Romberg Integration
% flat - denominator of flattening of ellipsoid
% gamma - angle between unit vectors w and c
% g,h - constants of normal section curve
% hi,hj,hk - components of unit vector h in the local horizon plane and
% direction of the plane P1-P2-P4
% Integral - value of integral from trapezoidal rule in Romberg
% Integration
% inc - interval width in trapezoidal rule
% int - number of intervals in trapezoidal rule where int = 2^k
% and k = 1:m
% j,k - integer counters in Romberg Integration
% last - last value in trapezoidal rule in Romberg Integration
% lat1 - latitude of P1 (radians)
% lat2 - latitude of P2 (radians)

Normal Section.doc 36
% lon1 - longitude of P1 (radians)
% lon2 - longitude of P2 (radians)
% m - maximum power of 2 to determine number of intervals in
% trapezoidal rule
% norm - length of vector
% nu1, nu2 - radii of curvature in prime vertical plane at P1 and P2
% ni,nj,nk - components of unit vector n
% pion2 - pi/2
% qi,qj,qk - components of unit vector q perpendicular to plane
% P1-P2-P4
% r - polar coordinate in polar equation of normal section
% S - n,n array of Integrals in Romberg Integration
% sum - summation in trapezoidal rule
% s2 - sin-squared(latitude)
% ui,uj,uk - components of unit vector u
% wi,wj,wk - components of unit vector w
% x,y - variables in Romberg Integration
% X1,Y1,Z1 - Cartesian coordinates of P1
% X2,Y2,Z2 - Cartesian coordinates of P2
% X3,Y3,Z3 - Cartesian coordinates of P3
% X4,Y4,Z4 - Cartesian coordinates of P4
% zd - zenith distance of chord
%
% Remarks:
% P1 and P2 are two point on the ellipsoid and in general there are two
% normal section curves between them. P3 is at the intersection of the
% rotational axis of the ellipsoid and the normal through P1. P4 is at
% the intersection of the rotational axis of the ellipsoid and the normal
% through P2. The normal section P1-P2 is the plane P1-P2-P3. The normal
% section P2-P1 is the plane P1-P2-P4 and since P3 and P4 are not
% coincident (in general) then the two planes create two lines on the
% ellipsoid and two lines on the local horizon plane at P1.
% The necessary equations for the solution of the inverse problem (normal
% sections) on the ellipsoid are described in [1]. The vector
% manipulations to determine the difference between the two normal section
% plane azimuths (measuered in the local horizon at P1) follows a vector
% method of calculating azimuth given in [2].
% This function uses Romberg Integration to compute the arc length along
% the normal section curve. This technique of numerical integration is
% described in detail in [1].
%
% References:
% [1] Deakin, R. E., (2009), "The Normal Section Curve on an Ellipsoid",
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, November 2009.
% [2] Deakin, R. E., (1988), "The Determination of the Instantaneous
% Position of the NIMBUS-7 CZCS Satellite", Symposium on Remote
% Sensing of the Coastal Zone, Queensland, 1988.
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;
pion2 = pi/2;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;

% Compute ellipsoid constants


f = 1/flat;
e2 = f*(2-f);
ep2 = e2/(1-e2);

% Set lat and long of P1 and P2 on ellipsoid


lat1 = -10/d2r;
lon1 = 110/d2r;
lat2 = -45/d2r;
lon2 = 155/d2r;

Normal Section.doc 37
% [1] Compute radii of curvature in the prime vertical plane at P1 & P2
s2 = sin(lat1)^2;
nu1 = a/sqrt(1-e2*s2);
s2 = sin(lat2)^2;
nu2 = a/sqrt(1-e2*s2);

% [2] Compute Cartesian coordinates of points P1, P2, P3 and P4


% Note that P3 is at the intesection of the normal through P1 and
% the rotational axis and P4 is at the intersection of the normal
% through P2 and the rotational axis.
X1 = nu1*cos(lat1)*cos(lon1);
Y1 = nu1*cos(lat1)*sin(lon1);
Z1 = nu1*(1-e2)*sin(lat1);

X2 = nu2*cos(lat2)*cos(lon2);
Y2 = nu2*cos(lat2)*sin(lon2);
Z2 = nu2*(1-e2)*sin(lat2);

X3 = 0;
Y3 = 0;
Z3 = -nu1*e2*sin(lat1);

X4 = 0;
Y4 = 0;
Z4 = -nu2*e2*sin(lat2);

% [3] Compute coordinate differences that are the components of the chord
% P1-P2
dX = X2 - X1;
dY = Y2 - Y1;
dZ = Z2 - Z1;

% [4a] Compute the vector c in the direction of the chord between P1 and P2
ci = dX;
cj = dY;
ck = dZ;

% [4b] Compute the chord distance and the unit vector c


chord = sqrt(ci*ci + cj*cj + ck*ck);
ci = ci/chord;
cj = cj/chord;
ck = ck/chord;

% [5] Compute the unit vector u in the direction of the normal through P1
ui = X1;
uj = Y1;
uk = Z1-Z3;
norm = sqrt(ui*ui + uj*uj + uk*uk);
ui = ui/norm;
uj = uj/norm;
uk = uk/norm;

% [6] Set unit vector for the z-axis of ellipsoid


zi = 0;
zj = 0;
zk = 1;

% [7] Compute zenith distance of chord at P1 from dot product


zd = acos(ui*ci + uj*cj + uk*ck);

% [8] Compute unit vector e perpendicular to meridian plane using vector cross
% product e = (z x u)/cos(lat1). e is in the direction of east.
ei = (zj*uk - zk*uj)/cos(lat1);
ej = -(zi*uk - zk*ui)/cos(lat1);
ek = (zi*uj - zj*ui)/cos(lat1);

% [9] Compute unit vector n in the meridian plane using vector cross
% product n = u x e. n is in the direction of north.

Normal Section.doc 38
ni = (uj*ek - uk*ej);
nj = -(ui*ek - uk*ei);
nk = (ui*ej - uj*ei);

% [10] Compute unit vector p perpendicular to normal section P1-P2 using


% vector cross product q = (u x c)/sin(zd)
pii = (uj*ck - uk*cj)/sin(zd);
pj = -(ui*ck - uk*ci)/sin(zd);
pk = (ui*cj - uj*ci)/sin(zd);

% [11] Compute unit vector g in the local horizon plane of P1 and in the
% direction of the normal section P1-P2 using vector cross product
% g = p x u
gi = (pj*uk - pk*uj);
gj = -(pii*uk - pk*ui);
gk = (pii*uj - pj*ui);

% [12] Compute azimuth of normal section P1-P2-P3 using vector dot product
alpha = acos(ni*gi + nj*gj + nk*gk);
beta = acos(ei*gi + ej*gj + ek*gk);

if beta > pi/2


Az12 = 2*pi - alpha;
else
Az12 = alpha;
end

% [13] Compute unit vector w in direction of line P4-P1. w will lie in the
% meridian plane of P1.
wi = X1;
wj = Y1;
wk = Z1-Z4;
norm = sqrt(wi*wi + wj*wj + wk*wk);
wi = wi/norm;
wj = wj/norm;
wk = wk/norm;

% [14] Compute the angle gamma between unit vectors w and c using vector
% dot product gamma = acos(w . c)
gamma = acos(wi*ci + wj*cj + wk*ck);

% [15] Compute the angle delta between unit vectors w and u using vector
% dot product delta = acos(w . u)
delta = acos(wi*ui + wj*uj + wk*uk);

% [16] Compute unit vector q perpendicular to plane P2-P1-P4 using vector


% cross product q = (w x c)/sin(gamma)
qi = (wj*ck - wk*cj)/sin(gamma);
qj = -(wi*ck - wk*ci)/sin(gamma);
qk = (wi*cj - wj*ci)/sin(gamma);

% [17] Compute unit vector h in the direction of P2 and in the local horizon
% plane using vector cross product h = (q x u)/cos(delta)
hi = (qj*uk - qk*uj)/cos(delta);
hj = -(qi*uk - qk*ui)/cos(delta);
hk = (qi*uj - qj*ui)/cos(delta);

% [18] Compute azimuth of section P1-P2-P4 using vector dot product


alpha = acos(ni*hi + nj*hj + nk*hk);
beta = acos(ei*hi + ej*hj + ek*hk);

if beta > pi/2


Azdash12 = 2*pi - alpha;
else
Azdash12 = alpha;
end

% [19] Compute angle between normal section planes at P1


epsilon = abs(Az12-Azdash12);

Normal Section.doc 39
% Compute normal section azimuth P2 to P1
numerator = dX*sin(lon2) - dY*cos(lon2);
denominator = dX*sin(lat2)*cos(lon2) + dY*sin(lat2)*sin(lon2) - dZ*cos(lat2);
Az21 = atan2(numerator,denominator);
if Az21 < 0
Az21 = 2*pi+Az21;
end

%-----------------------
% Print result to screen
%-----------------------
fprintf('\n//////////////////////////////////');
fprintf('\n// Normal Section: Inverse Case //');
fprintf('\n//////////////////////////////////');
fprintf('\n\nellipsoid parameters');
fprintf('\na = %18.9f',a);
fprintf('\nf = 1/%16.12f',flat);
fprintf('\ne2 = %20.12e',e2);
fprintf('\nep2 = %20.12e',e2);

% Print lat and lon of Point 1


[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\n\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print lat and lon of point 2


[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat1 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);
fprintf('\nP3 %15.6f %15.6f %15.6f',X3,Y3,Z3);
fprintf('\nP4 %15.6f %15.6f %15.6f',X4,Y4,Z4);
fprintf('\ndX = %15.6f',dX);
fprintf('\ndY = %15.6f',dY);
fprintf('\ndZ = %15.6f',dZ);

% Print chord distance 1-2


fprintf('\n\nChord distance P1-P2');
fprintf('\nchord = %15.6f',chord);

% Print zenith distance of chord at point 1


fprintf('\n\nZenith distance of chord at P1');
[D,M,S] = DMS(zd*d2r);
fprintf('\nzd = %3d %2d %9.6f (D M S)',D,M,S);

Normal Section.doc 40
% Print azimuths of normal sections
fprintf('\n\nAzimuth of normal section P1-P2');
[D,M,S] = DMS(Az12*d2r);
fprintf('\nAz12 = %3d %2d %9.6f (D M S)',D,M,S);

fprintf('\n\nAzimuth of normal section P2-P1');


[D,M,S] = DMS(Az21*d2r);
fprintf('\nAz21 = %3d %2d %9.6f (D M S)',D,M,S);

fprintf('\n\nAzimuth of normal section P2-P1 at P1');


[D,M,S] = DMS(Azdash12*d2r);
fprintf('\nAz''12 = %3d %2d %9.6f (D M S)',D,M,S);

fprintf('\n\nAngle between normal sections at P1');


[D,M,S] = DMS(epsilon*d2r);
fprintf('\nepsilon = %4d %2d %9.6f (D M S)',D,M,S);

% [20] Compute arc length of normal section using ROMBERG INTEGRATION

fprintf('\n\nROMBERG INTEGRATION TABLE');

% Compute constants of normal section curve P1-P2


ep = sqrt(ep2);
g = ep*sin(lat1);
h = ep*cos(lat1)*cos(Az12);
m = 15;
S = zeros(m,m);
finish = 0;
for k = 1:m
int = 2^k;
inc = (zd-pion2)/int;
sum = 0;
for t = pion2:inc:zd
x = g*cos(t)+h*sin(t);
y = h*cos(t)-g*sin(t);
u = -2*nu1*cos(t);
v = 1+x*x;
r = u/v;
du = 2*nu1*sin(t);
dv = 2*x*y;
dr = (v*du-u*dv)/(v*v);
y = sqrt(r*r + dr*dr);
sum = sum+2*y;
if t == pion2
first = y;
end
last = y;
end
sum = sum-first-last;
Integral = inc/2*sum;
S(k,1) = Integral;
fprintf('\n%d %15.6f',k,S(k,1));
for j = 2:k
S(k,j) = 1/(4^(j-1)-1)*(4^(j-1)*S(k,j-1)-S(k-1,j-1));
fprintf(' %15.6f',S(k,j));
diff = abs(S(k,j-1)-S(k,j));
if diff < 1e-6
finish = 1;
s = S(k,j);
break;
end
end
if finish == 1
break;
end
end

% Print normal section distance P1-P2


fprintf('\n\nnormal section distance P1-P2');

Normal Section.doc 41
fprintf('\ns = %15.6f',s);

fprintf('\n\n');

MATLAB function Cart2Geo.m

function [lat,lon,h] = Cart2Geo(a,flat,X,Y,Z)


%
% [lat,lon,h] = Cart2Geo(a,flat,X,Y,Z)
% Function computes the latitude (lat), longitude (lon) and height (h)
% of a point related to an ellipsoid defined by semi-major axis (a)
% and denominator of flattening (flat) given Cartesian coordinates
% X,Y,Z. Latitude and longitude are returned as radians.

%--------------------------------------------------------------------------
% Function: Cart2Geo()
%
% Usage: [lat,lon,h] = Cart2Geo(a,flat,X,Y,Z);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 6 April 2006
% Version 1.1 20 August 2007
%
% Functions required:
% radii()
%
% Purpose:
% Function Cart2geo() will compute latitude, longitude
% (both in radians) and height of a point related to
% an ellipsoid defined by semi-major axis (a) and
% denominator of flattening (flat) given Cartesian coordinates
% X,Y,Z.
%
% Variables:
% a - semi-major axis of ellipsoid
% b - semi-minor axis of ellipsoid
% c - cos(psi)
% c3 - cos(psi) cubed
% e2 - 1st eccentricity squared
% ep2 - 2nd eccentricity squared
% f - flattening of ellipsoid
% flat - denominator of flattening f = 1/flat
% h - height above ellipsoid
% lat - latitude (radians)
% lon - longitude (radians)
% p - perpendicular distance from minor-axis of ellipsoid
% psi - parametric latitude (radians)
% rm - radius of curvature of meridian section of ellipsoid
% rp - radius of curvature of prime vertical section of ellipsoid
% s - sin(psi)
% s3 - sin(psi) cubed
%
% Remarks:
% This function uses Bowring's method, see Ref [1].
% Bowring's method is also explained in Ref [2].
%
% References:
% [1] Bowring, B.R., 1976, 'Transformation from spatial to
% geographical coordinates', Survey Review, Vol. XXIII,
% No. 181, pp. 323-327.
% [2] Gerdan, G.P. & Deakin, R.E., 1999, 'Transforming Cartesian
% coordinates X,Y,Z to geogrpahical coordinates phi,lambda,h', The
% Australian Surveyor, Vol. 44, No. 1, pp. 55-63, June 1999.
%--------------------------------------------------------------------------

Normal Section.doc 42
% calculate flattening f and ellipsoid constants e2, ep2 and b
f = 1/flat;
e2 = f*(2-f);
ep2 = e2/(1-e2);
b = a*(1-f);

% compute 1st approximation of parametric latitude psi


p = sqrt(X*X + Y*Y);
psi = atan((Z/p)/(1-f));

% compute latitude from Bowring's equation


s = sin(psi);
s3 = s*s*s;
c = cos(psi);
c3 = c*c*c;
lat = atan((Z+b*ep2*s3)/(p-a*e2*c3));

% compute radii of curvature for the latitude


[rm,rp] = radii(a,flat,lat);

% compute longitude and height


lon = atan2(Y,X);
h = p/cos(lat) - rp;

function [D,M,S] = DMS(DecDeg)


% [D,M,S] = DMS(DecDeg) This function takes an angle in decimal degrees and returns
% Degrees, Minutes and Seconds

val = abs(DecDeg);
D = fix(val);
M = fix((val-D)*60);
S = (val-D-M/60)*3600;
if(DecDeg<0)
D = -D;
end
return

MATLAB function romberg.m

function s = romberg(a,f,lat1,Az12,zd)
%
% s = romberg(a,f,lat,az,zd)
% This function cumputes the arc length of a normal section using Romberg
% Integration, a numerical integration technique using the trapezoidal rule
% and Richardson Extrapolation. The function requires ellipsoid parameters
% a (semi-major axis) and f (flattening of ellipsoid), lat1 (latitude of P1
% in radians), Az12 (azimuth of normal section plane P1-P2 in radians) and
% zd (zenith distance of the chord of the normal section arc P1-P2). The
% function returns the arc length s.

%--------------------------------------------------------------------------
% Function: romberg
%
% Usage: s = romberg(a,f,lat1,Az12,zd);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 24 September 2009
%
% Purpose: This function cumputes the arc length of a normal section
% using Romberg Integration, a numerical integration technique using the
% trapezoidal rule and Richardson Extrapolation. The function requires

Normal Section.doc 43
% ellipsoid parameters a,f and lat1 (latitude of P1 in radians), Az12
% (azimuth of normal section plane P1-P2 in radians) and zd (zenith
% distance of the chord of the normal section arc P1-P2).
%
% Functions required:
%
% Variables:
% Az12 - azimuth of normal section P1-P2
% a - semi-major axis of spheroid
% chord - chord distance between P1 and P2
% d2r - degree to radian conversion factor 57.29577951...
% e2 - eccentricity of ellipsoid squared
% eps - 2nd-eccentricity squared
% f - f = 1/flat is the flattening of ellipsoid
% g,h - constants of normal section curve
% lat1 - latitude of P1 (radians)
% nu1 - radius of curvature in prime vertical plane at P1
% pion2 - pi/2
% S - array of normal section arc lengths
% s - arc length of normal section P1-P2
% s2 - sin-squared(latitude)
% zd - zenith distance of chord
%
% Remarks:
%
% References:
% [1] Deakin, R. E., (2009), "The Normal Section Curve on an Ellipsoid",
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, November 2009.
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;
pion2 = pi/2;

% Compute ellipsoid constants


e2 = f*(2-f);
ep2 = e2/(1-e2);

% Compute radius of curvature in the prime vertical plane at P1


s2 = sin(lat1)^2;
nu1 = a/sqrt(1-e2*s2);

%---------------------------------------------------------------
% Compute arc length of normal section using ROMBERG INTEGRATION
%---------------------------------------------------------------

% fprintf('\n\nROMBERG INTEGRATION TABLE');

% Compute constants of normal section curve P1-P2


ep = sqrt(ep2);
g = ep*sin(lat1);
h = ep*cos(lat1)*cos(Az12);

% Set array of arc lengths


n = 15;
S = zeros(n,n);
finish = 0;
for k = 1:15
% set the number of intervals and the increment
int = 2^k;
inc = (zd-pion2)/int;
sum = 0;
% evaluate the integral using the Trapezoidal Rule
for t = pion2:inc:zd
x = g*cos(t)+h*sin(t);
y = h*cos(t)-g*sin(t);
u = -2*nu1*cos(t);

Normal Section.doc 44
v = 1+x*x;
r = u/v;
du = 2*nu1*sin(t);
dv = 2*x*y;
dr = (v*du-u*dv)/(v*v);
y = sqrt(r*r + dr*dr);
sum = sum+2*y;
if t == pion2
first = y;
end
last = y;
end
sum = sum-first-last;
Integral = inc/2*sum;
S(k,1) = Integral;
% fprintf('\n%d %15.6f',k,S(k,1));
% Use Richardson extrapolation
for j = 2:k
S(k,j) = 1/(4^(j-1)-1)*(4^(j-1)*S(k,j-1)-S(k-1,j-1));
% fprintf(' %15.6f',S(k,j));
diff = abs(S(k,j-1)-S(k,j));
if diff < 1e-6
finish = 1;
s = S(k,j);
break;
end
end
if finish == 1
break;
end
end

Normal Section.doc 45
REFERENCES

Bowring, B. R., (1972), 'Distance and the spheroid', Correspondence, Survey Review, Vol.
XXI, No. 164, April 1972, pp. 281-284.
Bowring, B. R., (1978), 'The surface controlled spatial system for surveying computations',
Survey Review, Vol. XXIIII, No. 190, October 1978, pp. 361-372.
Clarke, A. R., (1880), Geodesy, Clarendon Press, Oxford.
Deakin, R. E. and Hunter, M. N., (2007), 'Geodesics on an ellipsoid – Pittman's method',
Proceedings of the Spatial Sciences Institute Biennial International Conference
(SSC2007), Hobart, Tasmania, Australia, 14-18 May 2007, pp. 223-242.
Deakin, R. E. and Hunter, M. N., (2007), 'Geodesics on an ellipsoid – Bessel's Method',
Lecture Notes, School of Mathematical & Geospatial Sciences, RMIT University,
Melbourne, Australia, 66 pages.
Dutka, J., (1984), 'Richardson extrapolation and Romberg integration', Historia
Mathematica, Vol. 11, Issue 1, February 1984, pp. 3-21.
doi: 10.1016/0315-0860(84)90002-8.
Grossman, S. I., (1981), Calculus, 2nd edition, Academic Press, New York.
Romberg, W., (1955), 'Vereinfachte numerische integration', Det Kongelige Norske
Videnskabers Selskab Forhandlinger (Trondheim), Vol. 28, No. 7, pp. 30-36.
Tobey, W. M., (1928), Geodesy, Geodetic Survey of Canada Publications No. 11, Ottawa
1928.
Williams, P. W., (1972), Numerical Computation, Nelson, London.

Normal Section.doc 46
APPENDIX 1: ROMBERG INTEGRATION

Romberg integration (Romberg 1955) is a numerical technique for evaluating a definite


integral and discussions of the technique can be found in most textbooks on numerical
analysis; e.g. Williams (1972). A concise treatment of the technique and a study of the
historical development of methods of integration (quadrature) can be found in Dutka
(1984). A development of Romberg's method – and the extrapolation formula that is at
the heart of it – is given below and is followed by a MATLAB function that demonstrates
the use of the technique.

Romberg integration is a method for estimating the numerical value of the definite integral
b

I = ∫ f (x )dx (54)
a

It is based on the trapezoidal rule – the simplest of the Newton-Cotes integration formula
for equally spaced data on the interval a,b
b
h
I = ∫ f (x )dx = 2 ( f 0
+ 2 f1 + 2 f2 + + 2 fn −1 + fn ) + E (55)
a

f (x)

f3
f2
f1
f0 fn

a b x
h

where
n is the number of intervals of width h,
b −a
h= is the common interval width or spacing,
n
f0 , f1, f2 , … are values of the function evaluated at x = ⎡⎢a, a + h, a + 2h, … ⎤⎥ ,
⎣ ⎦
E is the error term

When the function f (x ) has continuous derivatives the error term E can be expressed as a
convergent power series and we may write
b ∞
h
I = ∫ f (x )dx = ( f + 2 f1 + 2 f2 + + 2 fn −1 + fn ) + E = T + ∑ a j h 2 j (56)
a
2 0 j =1

where a j are coefficients.

Normal Section.doc 47
As the error term E is a convergent power series in h a technique known as Richardson
extrapolation 1 may be employed to improve the accuracy of the result.

Richardson extrapolation can be explained as follows.

Let the value of n be a power of 2; say 2k i.e., the number of intervals n = 2, 4, 8,16, …,2k

Denote an evaluation of the integral I given by equation (56) as



Sk ,1 = T + ∑ a j h 2 j = T + a1h 2 + a2h 4 + a 3h 6 + (57)
j=1

If the interval width is halved, then


2j
∞ ⎛h ⎞ 1 1 1
Sk +1,1 = T + ∑ a j ⎜⎜⎜ ⎟⎟⎟ = T + a1 2 h 2 + a2 4 h 4 + a 3 6 h 6 + (58)
j =1 ⎝ 2 ⎠⎟ 2 2 2

The first term of the error series can be eliminated by taking suitable combinations of
equations (57) and (58); i.e., multiplying equation (58) by 4 and then subtracting equation
(57) will eliminate the first term of the error series
⎛ 4h 4 ⎞ ⎛ 4h 6 ⎞
4Sk +1,1 − Sk ,1 = 4T − T + a2 ⎜⎜⎜ 4 − h 4 ⎟⎟⎟ + a 3 ⎜⎜⎜ 6 − h 6 ⎟⎟⎟ +
⎝⎜ 2 ⎠⎟ ⎝⎜ 2 ⎠⎟
∞ ⎛ 4h 2 j ⎞
= 3T + ∑ a j ⎜⎜⎜ 2 j − h 2 j ⎟⎟⎟
j =2 ⎜⎝ 2 ⎟⎠

and

4Sk +1,1 − Sk ,1 ∞ a j h 2 j ⎛⎜ 4 ⎞
T = −∑ ⎜ 2 j − 1⎟⎟⎟ (59)
3 j =2 3 ⎜⎝ 2 ⎟⎠

The first term on the right-hand-side of equation (59) will be designated

4Sk +1,1 − Sk ,1
Sk ,2 =
3
and the leading error term is now of order h 4 .

1
A technique named after Lewis Fry Richardson (1881–1953) a British applied mathematician, physicist,
meteorologist, psychologist and pacifist who developed the numerical methods used in weather forecasting
and also applied his mathematical techniques to the analysis of the causes and prevention of wars. He was
also a pioneer in the study of fractals. Richardson extrapolation is also known as Richardson's deferred
approach to the limit.

Normal Section.doc 48
Successive halvings of the interval will give a sequence of values S1,1, S 2,1, S 3,1, …, Sk ,1 and

each successive pair (S1,1, S 2,1 ), (S 2,1, S 3,1 ), … can be combined to give values S 2,2 , S 3,2 , … ; and
this next sequence can be combined in a similar manner to remove the leading error term
of order h 4 ; and so on.

By using the formula

1 k = 1,2, 3, 4, …
Sk , j = j −1
4 −1
(
4 j −1 Sk , j −1 − Sk −1, j −1 ) j = 2, 3, 4, 5, …
(60)

the process of Richardson extrapolation leads to a triangular sequence of columns with


error terms of increasing order.

j
1 2 3 4
n k
2 1 S1,1
4 2 S 2,1 S 2,2
16 3 S 3,1 S 3,2 S 3,3
32 4 S 4,1 S 4,2 S 4,3 S 4,4

error term h2 h4 h6 h8

The entries Sk ,2 in the second column have eliminated the terms involving h 2 , the entries
in the third column have eliminated the terms involving h 4 , etc, and as the interval
2j
b −a ⎛b − a ⎞
h = k the error term of the approximation Sk , j is of the order ⎜⎜⎜ k ⎟⎟⎟ with each
2 ⎝ 2 ⎠⎟
successive value in a particular row converging more rapidly to the true value of the
integral.

Testing between particular values will determine when the process has converged to a
suitable result.

Normal Section.doc 49
MATLAB FUNCTION romberg_test.m

This function uses Romberg Integration for the calculation of the integral ∫ sec (x )dx
⎡ ⎛ x π ⎞⎤
This integral has the known result ∫ sec (x )dx = ln ⎢⎢ tan ⎜⎜⎜ + ⎟⎟⎟⎥⎥
⎣⎢ ⎝ 2 4 ⎟⎠⎥⎦

MATLAB function romberg_test.m

function romberg_test
%
% This function computes the numerical value of the integral of sec(x)
% which is known to equal ln[tan(x/2+pi/4)].
% For x = 45 degrees the integral sec(x) = 0.881373587020.
% An integration table is produced that shows the convergence to the true
% value of the integral.

%--------------------------------------------------------------------------
% Function: romberg_test
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 09 December 2009
%
% Purpose: This function computes the numerical value of the integral of
% sec(x) which is known to equal ln[tan(x/2+pi/4)].
% For x = 45 degrees the integral sec(x) = 0.881373587.
% An integration table is produced that shows the convergence to the true
% value of the integral.
%
% Variables:
% diff - difference between successive approximations of the integral
% d2r - degree to radian conversion factor 57.29577951...
% first - first value of f(x)
% fx - value of f(x)
% h - interval width
% Integral - numerical value of integral from trapezoidal rule
% k,j - integer counters
% last - last value of f(x)
% m - maximum number of intervals
% n - number of intervals
% S - array of integral values
% sum - sum of function values
% x - the variable
%
% References:
% Williams, P. W., (1972), "Numerical Computation", Nelson, London.
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;

fprintf('\n\nRomberg Integration Table for the integral of sec(x) for x = 45 degrees');

% Set array of values S(k,j)


m = 15;
S = zeros(m,m);
finish = 0;
for k = 1:m
% set the number of intervals and the increment

Normal Section.doc 50
n = 2^k;
h = 45/n;
sum = 0;
% evaluate the integral using the Trapezoidal Rule
for x = 0:h:45
fx = 1/cos(x/d2r);
sum = sum+2*fx;
if x == 0
first = fx;
end
last = fx;
end
sum = sum-first-last;
Integral = h/d2r/2*sum;
S(k,1) = Integral;
fprintf('\n%d %15.12f',k,S(k,1));
% Use Richardson extrapolation
for j = 2:k
S(k,j) = 1/(4^(j-1)-1)*(4^(j-1)*S(k,j-1)-S(k-1,j-1));
fprintf(' %15.12f',S(k,j));
diff = abs(S(k,j-1)-S(k,j));
if diff < 1e-12
finish = 1;
break;
end
end
if finish == 1
break;
end
end
fprintf('\n\n');

MATLAB Command Window

>> help romberg_test

This function cumputes the numerical value of the integral of sec(x)


which is known to equal ln[tan(x/2+pi/4)].
For x = 45 degrees the integral sec(x) = 0.881373587020.
An integration table is produced that shows the convergence to the true
value of the integral.

>> romberg_test

Romberg Integration Table for the integral of sec(x) for x = 45 degrees


1 0.899084147577
2 0.885885914440 0.881486503395
3 0.882507477613 0.881381332003 0.881374320577
4 0.881657432521 0.881374084157 0.881373600967 0.881373589544
5 0.881444571861 0.881373618307 0.881373587251 0.881373587033 0.881373587023
6 0.881391334699 0.881373588978 0.881373587023 0.881373587020 0.881373587020

>>

Normal Section.doc 51
The output from the function Romberg_test.m that is evaluating the integral
x =45

I = ∫ sec (x )dx
x =0

is shown in the Romberg Integration Table and the elements are obtained as follows:

• For k = 1 , there are n = 2k = 2 intervals (or strips) of width h where


b −a 45 − 0 h
h=
n
=
2
= 22.50 and the integral I ( f + 2 f1 + f2 ) . The function
2 0
1
f (x ) = sec x = evaluated at x = 0 ,22.5 , 45 gives
cos x
f0 = 1
f1 = 1.082392200
f2 = 1.414213562

and

22.5 ⎛⎜ π ⎟⎞
S1,1 = I = ⎜ (
2 ⎜⎝180 ⎟⎟⎠
)
⎟ 1 + 2 (1.082392200) + 1.414213562 = 0.899084148

• For k = 2 , there are n = 2k = 4 intervals (or strips) of width h where


b −a 45 − 0 h
h=
n
=
4
= 11.25 and the integral I ( f + 2 f1 + 2f3 + f4 ) . The function
2 0
1
f (x ) = sec x = evaluated at x = 0 ,11.25 ,22.5 , 33.75 , 45 gives
cos x
f0 = 1
f1 = 1.019591158
f2 = 1.082392200
f3 = 1.202689774
f4 = 1.414213562

and

11.25 ⎛⎜ π ⎟⎞
S 2,1 = I = ⎜
2 ⎜⎝180 ⎟⎟⎠
( )
⎟ 1 + 2 (1.019 …) + 2 (1.082 …) + 2 (1.202 …) + 1.414 … = 0.885885914

The element S 2,2 is obtained from equation (60)

1 1
S 2,2 = 1
4 −1
( )
41 S 2,1 − S1,1 = (4 × 0.885885914 − 0.899084148) = 0.881486503
3

Normal Section.doc 52
• For k = 3 , there are n = 2k = 8 intervals (or strips) of width h = 5.625 and the
h 1
integral I
2
( f0 + 2 f1 + 2 f3 + + 2 f7 + f8 ) . The function f (x ) = sec x =
cos x
evaluated

at x = 0 , 5.625 ,11.25 , …, 39.375 , 45 gives

f0 = 1
f1 = 1.004838572
f2 = 1.019591158

f7 = 1.293643567
f8 = 1.414213562

and

5.625 ⎛⎜ π ⎟⎞
S 3,1 = I = ⎜ (
⎟ 1 + 2 (1.004 …) +
2 ⎜⎝180 ⎟⎟⎠
)
+ 2 (1.293 …) + 1.414 … = 0.882507478

The elements S 3,2 and S 3,3 are obtained from equation (60)

1 1
S 3,2 = 1
4 −1
( )
41 S 3,1 − S 2,1 = (4 × 0.882507478 − 0.885885914) = 0.881381333
3
1 1
S 3,3 = 2
4 −1
( )
42 S 3,2 − S 2,2 = (16 × 0.881381333 − 0.881486503) = 0.8813374322
15
And so on for increasing values of k
Testing between successive values Sk , j −1 and Sk , j can be used to determine when the
iterative procedure is terminated.

Normal Section.doc 53
THE CURVE OF ALIGNMENT
ON AN ELLIPSOID

R. E. Deakin
School of Mathematical & Geospatial Sciences, RMIT University,
GPO Box 2476V, MELBOURNE VIC 3001, AUSTRALIA
email: [email protected]
December 2009

ABSTRACT

These notes provide a detailed derivation of the equation for the curve of alignment on an
ellipsoid. Using this equation and knowing the terminal points of the curve, a technique is
developed for computing the location of points along the curve. A MATLAB function is
provided that demonstrates the algorithm developed.

INTRODUCTION

In geodesy, the curve of alignment between P1 and P2 on the ellipsoid is the locus of a
point P on the surface that moves so that a normal section plane at P contains the
terminal points P1 and P2 .
z

λ1
normal section curve ellipsoid
P P2
curve of alignment • •
b
al
no rm

P1 • no
rm
al
a y
O•
a φ1
•H
a H1 P

x
equator

Figure 1: Curve of alignment on ellipsoid

Curve of Alignment.doc 1
Figure 1 shows P on the curve of alignment between P1 and P2 . The normal to the
ellipsoid at P intersects the z-axis of the ellipsoid at H P and is contained in the plane
P1PP2H P . This normal section plane cuts the ellipsoid along the normal section curve
P1PP2 . As P moves from P1 to P2 – maintaining the condition that a normal section
plane contains P1 and P2 – it traces out the curve of alignment. This is a curve on the
surface having both curvature and torsion, i.e., it twists across the surface between P1 and
P2 . Note that in Figure 1, the normal at P1 intersects the z-axis at H 1 and is not
contained in the plane P1PP2H P , unless P is at P1 .

The curve of alignment can also be described physically in the following way. Imagine a
theodolite, in adjustment, that is setup on the surface of the ellipsoid somewhere between
P1 and P2 , and whose vertical axis is coincident with the ellipsoid normal. The theodolite
is pointed to the backsight P1 and the horizontal circle is clamped; then the telescope is
rotated in the vertical plane and pointed towards the forsight P2 . Unless there is some
fluke of positioning, it is unlikely that the theodolite cross-hairs will bisect the target P2 .
So the theodolite is repositioned by moving appropriate amounts perpendicular to the line
until the vertical plane of the theodolite at P contains both the backsight P1 and the
forsight P2 . A peg is place on the surface at this point. This process of “jiggling in” or
“middling in” between P1 and P2 is repeated a short distance further along the line and
another peg placed. After the last peg has been placed the curve of alignment is now
defined by the pegged line on the surface.

The curve of alignment follows a path very similar to that of the geodesic and it is slightly
longer; although the difference is practicably negligible at distances less than 5,000 km.
This will be demonstrated below using equations developed by Clarke (1880) and Bowring
(1972).

The equation for the curve developed below is similar to that derived by Thomas (1952)
although the method of development is different; and it is not in a form suitable for
computing the distance or azimuth of the curve. But, as it contains functions of both the
latitude and longitude of a point on the curve, it is suitable for computing the latitude of a
point (by iteration) given a certain longitude. Alternatively, by choosing suitable
functions of given latitude, the longitude of a point on the curve can be computed directly
(by solving a trigonometric equation).

Curve of Alignment.doc 2
EQUATION OF CURVE OF ALIGNMENT

{}
z x
λP y
z

{}
x2
normal section curve y2
z2
P

{}
x1 • P2
•2
y1 ellipsoid
z1 b
1

al
no rm
P1 •
a y
O•
φP
a
•H
a 3
x

{}
x3 equator
y3
z3

Figure 2: Normal section plane containing P1 and P2

Figure 2 shows a normal section plane of P on an ellipsoid that passes through P1 and P2 .
The semi-axes of the ellipsoid are a and b (a > b ) and the first-eccentricity squared e 2 ,
second-eccentricity squared e ′2 and the flattening f of the ellipsoid are defined by

a 2 − b2
2
e = = f (2 − f )
a2
a 2 − b2 f (2 − f ) e2
e ′2 = = = (1)
b2 (1 − f ) 1 − e
2 2

a −b
f =
a
Parallels of latitude φ and meridians of longitude λ have their respective reference planes;
the equator and the Greenwich meridian, and Longitudes are measured 0 to ±180 (east
positive, west negative) from the Greenwich meridian and latitudes are measured 0 to
±90 (north positive, south negative) from the equator. The x,y,z geocentric Cartesian
coordinate system has an origin at O, the centre of the ellipsoid, and the z-axis is the
minor axis (axis of revolution). The xOz plane is the Greenwich meridian plane (the origin
of longitudes) and the xOy plane is the equatorial plane. The positive x-axis passes
through the intersection of the Greenwich meridian and the equator, the positive y-axis is

Curve of Alignment.doc 3
advanced 90 east along the equator and the positive z-axis passes through the north pole
of the ellipsoid.

The normal section plane in Figure 2 is defined by points c, d and e that are P1 , P2 and
H respectively where H is at the intersection of the normal through P and the z-axis.
Cartesian coordinates of c and d are computed from the following equations
x = ν cos φ cos λ
y = ν cos φ sin λ (2)
(
z = ν 1 − e 2 sin φ )
where ν = PH is the radius of curvature in the prime vertical plane and
a
ν= (3)
1 − e 2 sin 2 φ

The distance OH = ν e 2 sin φ and the Cartesian coordinates of point e are

⎡x ⎤ ⎡ 0 ⎤
⎢ 3⎥ ⎢ ⎥
⎢y ⎥ = ⎢ 0 ⎥ (4)
⎢ 3⎥ ⎢ ⎥
⎢ ⎥ ⎢ 2 ⎥
z −νe sin φ ⎥
⎣⎢ 3 ⎦⎥ ⎢⎣ ⎦
The General equation of a plane may be written as

Ax + By + Cz + D = 0 (5)

And the equation of the plane passing through points c, d and e is given in the form of
a 3rd-order determinant

x − x1 y − y1 z − z1
x 2 − x1 y2 − y1 z 2 − z1 = 0 (6)
x 3 − x 2 y 3 − y2 z3 − z2

or expanded into 2nd-order determinants

y 2 − y1 z 2 − z 1 x − x 1 z 2 − z1 x − x 1 y 2 − y1
y 3 − y2 z 3 − z 2
(x − x1 ) − 2
x 3 − x2 z 3 − z2
(y − y1 ) + 2
x 3 − x 2 y 3 − y2
(z − z1 ) = 0 (7)

Expanding the determinants in equation (7) gives

(x − x ) {(y
1 2 }
− y1 )(z 3 − z 2 ) − (z 2 − z 1 )(y 3 − y2 )
− (y − y ) {(x
1 2
− x )(z − z ) − (z − z )(x − x )}
1 3 2 2 1 3 2

+ (z − z ) {(x
1 2
− x )(y − y ) − (y − y )(x − x )} = 0
1 3 2 2 1 3 2
(8)

Curve of Alignment.doc 4
Now from equation (4) x 3 = y 3 = 0 and equation (8) becomes

(x − x )(y 1 2
− y1 )(z 3 − z 2 )− (x − x 1 )(z 2 − z1 )(−y2 )
− (y − y )(x 1 2
− x 1 )(z 3 − z 2 )+ (y − y1 )(z 2 − z 1 )(−x 2 )
+ (z − z )(x 1 2
− x 1 )(−y2 ) + (z − z 1 )(y2 − y1 )(−x 2 ) = 0 (9)

Expanding and simplifying equation (9) gives

xz 3 (y2 − y1 ) + x (y1z 2 − y2z 1 ) + z 3 (x 2y1 − x 1y2 )


+ yz 3 (x 1 − x 2 ) + y (x 2z 1 − x 1z 2 ) + z (x 1y2 − x 2y1 ) = 0 (10)

Now from equations (2) and (4) x = ν cos φ cos λ , y = ν cos φ sin λ , z = ν 1 − e 2 sin φ and ( )
z 3 = −νe 2 sin φ , and substituting these into equation (10) gives

νe 2 {(x 2 }
− x 1 ) sin λ − (y2 − y1 ) cos λ sin φ − (y2z 1 − y1z 2 ) cos λ
+ (x 2z 1 − x 1z 2 ) sin λ − (x 2y1 − x 1y2 ) tan φ = 0

that is equivalent to

( ){ } (
ν 1 − e 2 e 2 (y2 − y1 ) cos λ − e 2 (x 2 − x 1 ) sin λ sin φ − 1 − e 2 (y1z 2 − y2z 1 ) cos λ )
− (1 − e ) (x z
2
1 2
− x 2z 1 ) sin λ − 1 − e ( 2
)(x y1 2
− x 2y1 ) tan φ = 0

or, following Thomas (1952, p. 67, eq. 183); the equation of the curve of alignment is

( )
ν 1 − e 2 {C cos λ − H sin λ } sin φ −U cos λ −V sin λ −W 1 − e 2 tan φ = 0 ( ) (11)

where

C = e 2 (y2 − y1 ) ( ) U = 1 − e 2 (y1z 2 − y2z1 ) W = x 1y2 − x 2y1


H = e2 (x − x ) V = (1 − e )(x z
2 1
2
2 1
− x 1z 2 ) (12)

Equation (11) is not suitable for computing the distance along a curve of alignment, nor is
it suitable for computing the azimuth of the curve, but by certain re-arrangements it is
possible to solve (iteratively) for the latitude of a point on the curve given a longitude
somewhere between the longitudes of the terminal points of the curve. Or alternatively,
solve (a trigonometric equation) for the longitude of a point given a latitude somewhere
between the latitudes of the terminal points.

Curve of Alignment.doc 5
SOLVING FOR THE LATITUDE

Equation (11) can be re-arranged as

Aν sin φ − B tan φ − D = 0 (13)

where A and D are functions of longitude alone and B is a constant for the curve, and

( )
A = 1 − e 2 (C cos λ − H sin λ ); (
B = W 1 − e2 ; ) D = U cos λ + V sin λ (14)

C, H, U, V and W are constants for the particular curve and are given by equation (12).
ν is a function of the latitude of P on the curve and is given by equation (3).

The latitude φ can be evaluated using Newton-Raphson iteration for the real roots of the
equation f (φ ) = 0 given in the form of an iterative equation

φ(n +1) = φ(n ) −


( )
f φ(n )
(15)
f ′ (φ( ) )
n

where n denotes the nth iteration and f (φ ) is given by equation (13) as

f (φ ) = Aν sin φ − B tan φ − D (16)

d
and the derivative f ′ (φ ) =

{ }
f (φ ) is given by


f ′ (φ ) = A sin φ + ν A cos φ − B sec2 φ (17)

where, from equation (3)

dν ν3 2
= e sin φ cos φ (18)
dφ a 2

An initial value of φ(1) ( φ for n = 1 ) can be taken as the latitude of P1 and the functions

( ) ( )
f φ(1) and f ′ φ(1) evaluated from equations (16) and (17) using φ1 . φ(2) ( φ for n = 2 )

can now be computed from equation (15) and this process repeated to obtain values
φ(3), φ(4), … . This iterative process can be concluded when the difference between φ(n +1) and

φ(n ) reaches an acceptably small value.

Curve of Alignment.doc 6
SOLVING FOR THE LONGITUDE

Equation (11) can also be re-arranged as

P cos λ − Q sin λ = S (19)

where P, Q and S are functions of latitude alone and

( )
P = C ν 1 − e 2 sin φ −U ; ( )
Q = H ν 1 − e 2 sin φ +V ; ( )
S = W 1 − e 2 tan φ (20)

C, H, U, V and W are constants for the particular curve and are given by equation (12).
ν is a function of the latitude of P on the curve and is given by equation (3).

The longitude can be evaluated using Newton-Raphson iteration where

λ(n +1) = λ(n ) −


( )
f λ(n )
(21)
f ′ (λ( ) )
n

and

f (λ ) = P cos λ − Q sin λ − S
(22)
f ′ (λ ) = −P sin λ − Q cos λ

An initial value of λ(1) ( λ for n = 1 ) can be taken as the longitude of P1 .

Alternatively, the longitude can be evaluated by a trigonometric equation derived as


follows. Equation (19) can be expressed as a trigonometric addition of the form

S = R cos (λ − θ )
= R cos λ cos θ + R sin λ sin θ (23)

Now, equating the coefficients of cos λ and sin λ in equations (19) and (23) gives

P = R cos θ; Q = −R sin θ (24)

and using these relationships

−Q
R = P 2 +Q2 ; tan θ = (25)
P
Substituting these results into equation (23) gives
⎧ ⎫
⎪⎪ S ⎪⎪ ⎧⎪−Q ⎪⎫
λ = arccos ⎨ ⎬ + arctan ⎪⎨ ⎪⎬ (26)
⎪⎪ P 2 + Q 2 ⎪⎪ ⎪⎪⎩ P ⎪⎪⎭
⎩⎪ ⎭⎪

Curve of Alignment.doc 7
DIFFERENCE IN LENGTH BETWEEN A GEODESIC AND CURVE OF ALIGNMENT

There are five curves of interest in geodesy; the geodesic, the normal section, the great
elliptic arc the loxodrome and the curve of alignment.

The geodesic between P1 and P2 on an ellipsoid is the unique curve on the surface defining
the shortest distance; all other curves will be longer in length. The normal section curve
P1P2 is a plane curve created by the intersection of the normal section plane containing the
normal at P1 and also P2 with the ellipsoid surface. And as we have shown (Deakin 2009)
there is the other normal section curve P2P1 . The curve of alignment is the locus of all
points P such that the normal section plane at P also contains the points P1 and P2 . The
curve of alignment is very close to a geodesic. The great elliptic arc is the plane curve
created by intersecting the plane containing P1 , P2 and the centre O with the surface of
the ellipsoid and the loxodrome is the curve on the surface that cuts each meridian
between P1 and P2 at a constant angle.

Approximate equations for the difference in length between the geodesic, the normal
section curve and the curve of alignment were developed by Clarke (1880, p. 133) and
Bowring (1972, p. 283) developed an approximate equation for the difference between the
geodesic and the great elliptic arc. Following Bowring (1972), let
s = geodesic length
L = normal section length
D = great elliptic length
S = curve of alignment length

then
4
e 4 ⎛⎜ s ⎞⎟
L −s = s ⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
90 ⎜⎝ R ⎠⎟
2
e 4 ⎛⎜ s ⎞⎟
D −s = s ⎜ ⎟⎟ sin2 φ1 cos2 φ1 sin2 α12 + (27)
24 ⎜⎝ R ⎠⎟
4
e 4 ⎛⎜ s ⎞⎟
S −s = s ⎜⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝ R ⎠⎟

where R can be taken as the radius of curvature in the prime vertical at P1 . Now for a
given value of s, S − s will be a maximum if φ1 = 0 ( P1 on the equator) and α12 = 45 in
1
which case cos4 φ1 sin2 α12 cos2 α12 = , thus
4

Curve of Alignment.doc 8
4
e4 ⎛ s ⎞
(S − s ) < 1440 s ⎜⎜⎜ R ⎟⎟⎟⎟ (28)
⎝ ⎠

For the GRS80 ellipsoid where f = 1 298.257222101, e 2 = f (2 − f ) , and for s = 2000000 m


(2,000 km) and R = 6371000 m , equation (28) gives S − s < 0.001 m .

MATLAB FUNCTIONS

Two MATLAB functions are shown below; they are: curve_of_alignment_lat.m and
curve_of_alignment_lon.m Assuming that the terminal points of the curve are known,
the first function computes the latitude of a point on the curve given a longitude and the
second function computes the longitude of a point given the latitude.

Output from the two functions is shown below for points on a curve of alignment between
the terminal points of the straight-line section of the Victorian–New South Wales border.
This straight-line section of the border, between Murray Spring and Wauka 1978, is known
as the Black-Allan Line in honour of the surveyors Black and Allan who set out the border
line in 1870-71. Wauka 1978 (Gabo PM 4) is a geodetic concrete border pillar on the coast
at Cape Howe and Murray Spring (Enamo PM 15) is a steel pipe driven into a spring of
the Murray River that is closest to Cape Howe. The straight line is a normal section curve
on the reference ellipsoid of the Geocentric Datum of Australia (GDA94) that contains the
normal to the ellipsoid at Murray Spring. The GDA94 coordinates of Murray Spring and
Wauka 1978 are:

Murray Spring: φ −37 47 ′ 49.2232′′ λ 148 11′ 48.3333′′


Wauka 1978: φ −37 30′ 18.0674′′ λ 149 58′ 32.9932′′

The normal section azimuth and distance are:

116 58 ′ 14.173757 ′′ 176495.243760 m

The geodesic azimuth and distance are:

116 58 ′ 14.219146′′ 176495.243758 m

Figure 3 shows a schematic view of the Black-Allan line (normal section) and the geodesic
and curve of alignment. The relationships between these two curves and the normal
section have been computed at seven locations along the line (A, B, C, etc.) where
meridians of longitude at 0 15′ intervals cut the line. The relationships are shown in
Table 1.

Curve of Alignment.doc 9
BLACK-ALLAN LINE: VICTORIA/NSW BORDER

The Black-Allan Line is a normal section curve


on the reference ellipsoid between P1 (Murray
148°15’
Spring) and P2 (Wauka 1978). This curve is the
intersection of the normal section plane and the
ellipsoid, and the normal section contains P1,

N S W
148°30’ the normal to the ellipsoid at P1, and P2.
S
The GDA94 coordinates of Murray Spring and
Murray Spring

148°45’ Wauka 1978 are:


Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
Wauka 1978: φ -37°30’1 8.0674” λ 149°58’32.9932”
149°00 ’
The normal section azimuth and distance are:
BL
ACK 116°58’14.173757” 176495.243760 m.
- 149°15’

AL
L AN 149°30’

149°45 ’
LIN
Geodesic E
Normal Section

VIC S

Wauka 1978
Curve of
Alignm ent

The geodesic and the Curve of Alignment are show n plotted at an


exaggerated scale with respect to the Border Lin e (normal section).
At longitude 149°00’E. the Geodesic is 0.016 m s outh of the Border
Line and the Curve of Alignment is 0.015 m south .
At longitude 149°30’E. the Geodesic is 0.015 m s outh of the Border
Line and the Curve of Alignment is 0.019 m south .

Figure 3

BLACK-ALLAN LINE: VICTORIA/NSW BORDER


GDA94 Ellipsoid values
NAME
LATITUDE LONGITUDE dφ ρ dm = ρ×dφ
Murray
-36°47΄49.223200˝ 148°11΄48.333300˝
Spring
-36°49΄07.598047˝ N
A -36°49΄07.598090˝ G 148°15΄00.000000˝ -00΄00.000043˝ 6358356.102 -0.0013
-36°49΄07.598051˝ CoA -00΄00.000004˝ -0.0001
-36°55΄13.876510˝ N
B -36°55΄13.876745˝ G 148°30΄00.000000˝ -00΄00.000235˝ 6358465.209 -0.0072
-36°55΄13.876614˝ CoA -00΄00.000104˝ . .-0.0032
-37°01΄17.289080˝ N
C -37°01΄17.289478˝ G 148°45΄00.000000˝ -00΄00.000398˝ 6358573.577 -0.0123
-37°01΄17.289366˝ CoA -00΄00.000286˝ -0.0088
-37°07΄17.845554˝ N
D -37°07΄17.846060˝ G 149°00΄00.000000˝ -00΄00.000506˝ 6358681.204 -0.0156
-37°07΄17.846030˝ CoA -00΄00.000476˝ -0.0147
-37°13΄15.555723˝ N
E -37°13΄15.556262˝ G 149°15΄00.000000˝ -00΄00.000539˝ 6358788.089 -0.0166
-37°13΄15.556326˝ CoA -00΄00.000603˝ -0.0186
-37°19΄10.429372˝ N
F -37°19΄10.429845˝ G 149°30΄00.000000˝ -00΄00.000473˝ 6358894.232 -0.0146
-37°19΄10.429972˝ CoA -00΄00.000600˝ -0.0185
-37°25΄02.476276˝ N
G -37°25΄02.476564˝ G 149°45΄00.000000˝ -00΄00.000288˝ 6358999.632 -0.0089
-37°25΄02.476677˝ CoA -00΄00.000401˝ -0.0124
Wauka
-37°30΄18.067400˝ 149°58΄32.993200˝
1978

TABLE 1: Points where curves cut meridians of A, B, C, etc at 0°15΄ intervals of longitude along
Border Line
N = Normal Section, G = Geodesic, CoA = Curve of Alignment

Curve of Alignment.doc 10
>> curve_of_alignment_lat

==================
Curve of Alignment
==================
Ellipsoid parameters
a = 6378137.0000
f = 1/298.257222101

Terminal points of curve


Latitude P1 = -36 47 49.223200 (D M S)
Longitude P1 = 148 11 48.333300 (D M S)

Latitude P2 = -37 30 18.067400 (D M S)


Longitude P2 = 149 58 32.993200 (D M S)

Cartesian coordinates
X Y Z
P1 -4345789.609716 2694844.030716 -3799378.032024
P2 -4386272.668061 2534883.268540 -3862005.992252

Given longitude of P3
Longitude P3 = 149 30 0.000000 (D M S)

Latitude of P3 computed from Newton-Raphson iteration


Latitude P3 = -37 19 10.429972 (D M S)
iterations = 4

>>

>> curve_of_alignment_lon

==================
Curve of Alignment
==================
Ellipsoid parameters
a = 6378137.0000
f = 1/298.257222101

Terminal points of curve


Latitude P1 = -36 47 49.223200 (D M S)
Longitude P1 = 148 11 48.333300 (D M S)

Latitude P2 = -37 30 18.067400 (D M S)


Longitude P2 = 149 58 32.993200 (D M S)

Cartesian coordinates
X Y Z
P1 -4345789.609716 2694844.030716 -3799378.032024
P2 -4386272.668061 2534883.268540 -3862005.992252

Given latitude of P3
Latitude P3 = -37 19 10.429972 (D M S)

Longitude of P3 computed from Newton-Raphson iteration


Longitude P3 = 149 29 60.000000 (D M S)
iterations = 5

Longitude of P3 computed from trigonometric equation


Longitude P3 = 149 29 60.000000 (D M S)
theta P3 = 8 32 44.447661 (D M S)

>>

Curve of Alignment.doc 11
MATLAB function curve_of_alignment_lat.m

function curve_of_alignment_lat
%
% curve_of_alignment_lat: Given the terminal points P1 and P2 of a curve of
% alignment on an ellipsoid, and the longitude of a point P3 on the curve,
% this function computes the latitude of P3.

%--------------------------------------------------------------------------
% Function: curve_of_alignment_lat
%
% Usage: curve_of_alignment_lat
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 3 October 2009
% Version 1.1 31 December 2009
%
% Purpose: Given the terminal points P1 and P2 of a curve of alignment on
% an ellipsoid, and the longitude of a point P3 on the curve, this
% function computes the latitude of P3.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% [rm,rp] = radii(a,flat,lat);
%
% Variables:
% A,D - curve of alignment functions of longitude
% a - semi-major axis of ellipsoid
% b - semi-minor axis of ellipsoid
% B,C,H,W,U,V - constants of curve of alignment
% d2r - degree to radian conversion factor 57.29577951...
% d_nu - derivative of nu w.r.t latitude
% e2 - eccentricity of ellipsoid squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% f_lat3 - function of latitude of P3
% fdash_lat3 - derivative of function of latitude of P3
% h1,h2 - ellipsoidal heights of P1 and P2 (Note: h1 = h2 = 0)
% iter - number of iterations
% lat1,lat2,lat3 - latitude of P1, P1, P3 (radians)
% lon1,lon2,lon3 - longitude of P1, P2, P3 (radians)
% new_lat3 - next latiude in Newton-Raphson iteration
% nu - radius of curvature in prime vertical plane
% rho - radius of curvature in meridain plane
% X1,Y1,Z1 - Cartesian coordinates of P1
% X2,Y2,Z2 - Cartesian coordinates of P2
%
% Remarks:
% Given the terminal points P1 and P2 of a curve of alignment on an
% ellipsoid, and the longitude of a point P3 on the curve, this function
% computes the latitude of P3.
%
% References:
% [1] Deakin, R.E., 2009, 'The Curve of Alignment on an Ellipsoid',
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, December 2009
% [2] Thomas, P.D., 1952, Conformal Projections in Geodesy and
% Cartography, Special Publication No. 251, Coast and Geodetic
% Survey, U.S. Department of Commerce, Washington, DC: U.S.
% Government Printing Office, pp. 66-67.
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor

Curve of Alignment.doc 12
d2r = 180/pi;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;

% Compute ellipsoid constants


f = 1/flat;
e2 = f*(2-f);

% Set lat, lon and height of P1 and P2 on ellipsoid


lat1 = -(36 + 47/60 + 49.2232/3600)/d2r; % Spring
lon1 = (148 + 11/60 + 48.3333/3600)/d2r;
lat2 = -(37 + 30/60 + 18.0674/3600)/d2r; % Wauka 1978
lon2 = (149 + 58/60 + 32.9932/3600)/d2r;
h1 = 0;
h2 = 0;

% Compute Cartesian coords of P1 and P2


[X1,Y1,Z1] = Geo2Cart(a,flat,lat1,lon1,h1);
[X2,Y2,Z2] = Geo2Cart(a,flat,lat2,lon2,h2);

% Compute constants of Curve of Alignment


C = e2*(Y2-Y1);
H = e2*(X2-X1);
W = X1*Y2-X2*Y1;
U = (1-e2)*(Y1*Z2-Y2*Z1);
V = (1-e2)*(X2*Z1-X1*Z2);
B = (1-e2)*W;

% Set longitude of P3
lon3 = (149 + 30/60)/d2r;

% Set constants A and D that are functions of longitude only


A = (1-e2)*(C*cos(lon3)-H*sin(lon3));
D = U*cos(lon3)+V*sin(lon3);

%----------------------------------------------------------
% Compute the latitude of P3 using Newton-Raphson iteration
%----------------------------------------------------------
% Set starting value of phi = latitude
lat3 = lat1;
iter = 1;
while 1
% Compute radii of curvature
[rho,nu] = radii(a,flat,lat3);
d_nu = nu^3/(a*a)*e2*sin(lat3)*cos(lat3);
f_lat3 = A*nu*sin(lat3)-B*tan(lat3)-D;
fdash_lat3 = d_nu*A*sin(lat3)+nu*A*cos(lat3)-B/(cos(lat3)^2);
new_lat3 = lat3-(f_lat3/fdash_lat3);
if abs(new_lat3 - lat3) < 1e-15
break;
end
lat3 = new_lat3;
if iter > 100
fprintf('Iteration for latitude failed to converge after 100 iterations');
break;
end
iter = iter + 1;
end;

%-----------------------
% Print result to screen
%-----------------------

fprintf('\n==================');
fprintf('\nCurve of Alignment');
fprintf('\n==================');
fprintf('\nEllipsoid parameters');

Curve of Alignment.doc 13
fprintf('\na = %12.4f',a);
fprintf('\nf = 1/%13.9f',flat);

fprintf('\n\nTerminal points of curve');


% Print lat and lon of P1
[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
% Print lat and lon of P2
[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat2 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);

% Print lat and lon of P3


fprintf('\n\nGiven longitude of P3');
[D,M,S] = DMS(lon3*d2r);
if D == 0 && lon3 < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
fprintf('\n\nLatitude of P3 computed from Newton-Raphson iteration');
[D,M,S] = DMS(lat3*d2r);
if D == 0 && lat3 < 0
fprintf('\nLatitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
fprintf('\niterations = %4d',iter);

fprintf('\n\n');

Curve of Alignment.doc 14
MATLAB function curve_of_alignment_lon.m

function curve_of_alignment_lon
%
% curve_of_alignment_lon: Given the terminal points P1 and P2 of a curve of
% alignment on an ellipsoid, and the latitude of a point P3 on the curve,
% this function computes the longitude of P3.

%--------------------------------------------------------------------------
% Function: curve_of_alignment_lon
%
% Usage: curve_of_alignment_lon
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 31 December 2009
%
% Purpose: Given the terminal points P1 and P2 of a curve of alignment on
% an ellipsoid, and the latitude of a point P3 on the curve, this function
% computes the longitude of P3.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% [rm,rp] = radii(a,flat,lat);
%
% Variables:
% a - semi-major axis of ellipsoid
% b - semi-minor axis of ellipsoid
% C,H,W,U,V - constants of curve of alignment
% d2r - degree to radian conversion factor 57.29577951...
% d_nu - derivative of nu w.r.t latitude
% e2 - eccentricity of ellipsoid squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% f_lon3 - function of longitude of P3
% fdash_lon3 - derivative of function of longitude of P3
% h1,h2 - ellipsoidal heights of P1 and P2 (Note: h1 = h2 = 0)
% iter - number of iterations
% lambda - longitude of P3 computed from trigonometric equation
% lat1,lat2,lat3 - latitude of P1, P1, P3 (radians)
% lon1,lon2,lon3 - longitude of P1, P2, P3 (radians)
% new_lon3 - next longitude in Newton-Raphson iteration
% nu - radius of curvature in prime vertical plane
% P,Q,S - functions of latitude of a point on the curve of
% - alignment
% rho - radius of curvature in meridain plane
% theta - auxiliary angle in the computation of lambda
% X1,Y1,Z1 - Cartesian coordinates of P1
% X2,Y2,Z2 - Cartesian coordinates of P2
%
% Remarks:
% Given the terminal points P1 and P2 of a curve of alignment on an
% ellipsoid, and the latitude of a point P3 on the curve, this function
% computes the longitude of P3.
%
% References:
% [1] Deakin, R.E., 2009, 'The Curve of Alignment on an Ellipsoid',
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, December 2009
% [2] Thomas, P.D., 1952, Conformal Projections in Geodesy and
% Cartography, Special Publication No. 251, Coast and Geodetic
% Survey, U.S. Department of Commerce, Washington, DC: U.S.
% Government Printing Office, pp. 66-67.
%
%--------------------------------------------------------------------------

Curve of Alignment.doc 15
% Degree to radian conversion factor
d2r = 180/pi;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;

% Compute ellipsoid constants


f = 1/flat;
e2 = f*(2-f);

% Set lat, lon and height of P1 and P2 on ellipsoid


lat1 = -(36 + 47/60 + 49.2232/3600)/d2r; % Spring
lon1 = (148 + 11/60 + 48.3333/3600)/d2r;
lat2 = -(37 + 30/60 + 18.0674/3600)/d2r; % Wauka 1978
lon2 = (149 + 58/60 + 32.9932/3600)/d2r;
h1 = 0;
h2 = 0;
% Compute Cartesian coords of P1 and P2
[X1,Y1,Z1] = Geo2Cart(a,flat,lat1,lon1,h1);
[X2,Y2,Z2] = Geo2Cart(a,flat,lat2,lon2,h2);

% Compute constants of Curve of Alignment


C = e2*(Y2-Y1);
H = e2*(X2-X1);
W = X1*Y2-X2*Y1;
U = (1-e2)*(Y1*Z2-Y2*Z1);
V = (1-e2)*(X2*Z1-X1*Z2);

% Set latitude of P3
lat3 = -(37 + 19/60 + 10.429972/3600)/d2r;

% Set constants P, Q, S that are functions of latitude only


[rho,nu] = radii(a,flat,lat3);
P = C*nu*(1-e2)*sin(lat3)-U;
Q = H*nu*(1-e2)*sin(lat3)+V;
S = W*(1-e2)*tan(lat3);

%---------------------- ------------------------------------
% Compute the longitude of P3 using Newton-Raphson iteration
%----------------------- -----------------------------------
% Set starting value of lon3 = longitude of P3
lon3 = lon1;
iter = 1;
while 1
% Compute radii of curvature
f_lon3 = P*cos(lon3)-Q*sin(lon3)-S;
fdash_lon3 = -P*sin(lon3)-Q*cos(lon3);
new_lon3 = lon3-(f_lon3/fdash_lon3);
if abs(new_lon3 - lon3) < 1e-15
break;
end
lon3 = new_lon3;
if iter > 100
fprintf('Iteration for longitude failed to converge after 100 iterations');
break;
end
iter = iter + 1;
end;

%---------------------- ----------------------------------
% Compute the longitude of P3 using trigonometric equation
%----------------------- ---------------------------------
theta = atan2(-Q,P);
lambda = acos(S/sqrt(P^2+Q^2))+theta;

%-----------------------
% Print result to screen

Curve of Alignment.doc 16
%-----------------------

fprintf('\n==================');
fprintf('\nCurve of Alignment');
fprintf('\n==================');
fprintf('\nEllipsoid parameters');
fprintf('\na = %12.4f',a);
fprintf('\nf = 1/%13.9f',flat);

fprintf('\n\nTerminal points of curve');


% Print lat and lon of P1
[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
% Print lat and lon of P2
[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat2 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);

% Print lat and lon of P3


fprintf('\n\nGiven latitude of P3');
[D,M,S] = DMS(lat3*d2r);
if D == 0 && lat3 < 0
fprintf('\nLatitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\nLongitude of P3 computed from Newton-Raphson iteration');


[D,M,S] = DMS(lon3*d2r);
if D == 0 && lon3 < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
fprintf('\niterations = %4d',iter);

fprintf('\n\nLongitude of P3 computed from trigonometric equation');


[D,M,S] = DMS(lambda*d2r);
if D == 0 && lambda < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(theta*d2r);

Curve of Alignment.doc 17
if D == 0 && theta < 0
fprintf('\ntheta P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ntheta P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\n');

MATLAB function Geo2Cart.m

function [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)


%
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% Function computes the Cartesian coordinates X,Y,Z of a point
% related to an ellipsoid defined by semi-major axis (a) and the
% denominator of the flattening (flat) given geographical
% coordinates latitude (lat), longitude (lon) and ellipsoidal
% height (h). Latitude and longitude are assumed to be in radians.

%--------------------------------------------------------------------------
% Function: Geo2Cart()
%
% Usage: [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 6 April 2006
% Version 1.0 20 August 2007
%
% Functions required:
% radii()
%
% Purpose:
% Function Geo2Cart() will compute Cartesian coordinates X,Y,Z
% given geographical coordinates latitude, longitude (both in
% radians) and height of a point related to an ellipsoid
% defined by semi-major axis (a) and denominator of flattening
% (flat).
%
% Variables:
% a - semi-major axis of ellipsoid
% e2 - 1st eccentricity squared
% f - flattening of ellipsoid
% flat - denominator of flattening f = 1/flat
% h - height above ellipsoid
% lat - latitude (radians)
% lon - longitude (radians)
% p - perpendicular distance from minor axis of ellipsoid
% rm - radius of curvature of meridian section of ellipsoid
% rp - radius of curvature of prime vertical section of ellipsoid
%
% References:
% [1] Gerdan, G.P. & Deakin, R.E., 1999, 'Transforming Cartesian
% coordinates X,Y,Z to geogrpahical coordinates phi,lambda,h', The
% Australian Surveyor, Vol. 44, No. 1, pp. 55-63, June 1999.
%--------------------------------------------------------------------------

% calculate flattening f and ellipsoid constant e2


f = 1/flat;
e2 = f*(2-f);

% compute radii of curvature for the latitude


[rm,rp] = radii(a,flat,lat);

Curve of Alignment.doc 18
% compute Cartesian coordinates X,Y,Z
p = (rp+h)*cos(lat);
X = p*cos(lon);
Y = p*sin(lon);
Z = (rp*(1-e2)+h)*sin(lat);

MATLAB function radii.m

function [rm,rp] = radii(a,flat,lat)


%
% [rm,rp]=radii(a,flat,lat) Function computes radii of curvature in
% the meridian and prime vertical planes (rm and rp respectively) at a
% point whose latitude (lat) is known on an ellipsoid defined by
% semi-major axis (a) and denominator of flattening (flat).
% Latitude must be in radians.
% Example: [rm,rp] = radii(6378137,298.257222101,-0.659895044);
% should return rm = 6359422.96233327 metres and
% rp = 6386175.28947842 metres
% at latitude -37 48 33.1234 (DMS) on the GRS80 ellipsoid

%--------------------------------------------------------------------------
% Function: radii(a,flat,lat)
%
% Syntax: [rm,rp] = radii(a,flat,lat);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 1 August 2003
% Version 2.0 6 April 2006
% Version 3.0 9 February 2008
%
% Purpose: Function radii() will compute the radii of curvature in
% the meridian and prime vertical planes, rm and rp respectively
% for the point whose latitude (lat) is given for an ellipsoid
% defined by its semi-major axis (a) and denominator of
% flattening (flat).
%
% Return value: Function radii() returns rm and rp
%
% Variables:
% a - semi-major axis of spheroid
% c - polar radius of curvature
% c2 - cosine of latitude squared
% ep2 - 2nd-eccentricity squared
% f - flattening of ellipsoid
% lat - latitude of point (radians)
% rm - radius of curvature in the meridian plane
% rp - radius of curvature in the prime vertical plane
% V - latitude function defined by V-squared = sqrt(1 + ep2*c2)
% V2,V3 - powers of V
%
% Remarks:
% Formulae are given in [1] (section 1.3.9, page 85) and in
% [2] (Chapter 2, p. 2-10) in a slightly different form.
%
% References:
% [1] Deakin, R.E. and Hunter, M.N., 2008, GEOMETRIC GEODESY, School of
% Mathematical and Geospatial Sciences, RMIT University, Melbourne,
% AUSTRALIA, March 2008.
% [2] THE GEOCENTRIC DATUM OF AUSTRALIA TECHNICAL MANUAL, Version 2.2,
% Intergovernmental Committee on Surveying and Mapping (ICSM),
% February 2002 (www.anzlic.org.au/icsm/gdatum)
%--------------------------------------------------------------------------

Curve of Alignment.doc 19
% compute flattening f eccentricity squared e2
f = 1/flat;
c = a/(1-f);
ep2 = f*(2-f)/((1-f)^2);

% calculate the square of the sine of the latitude


c2 = cos(lat)^2;

% compute latitude function V


V2 = 1+ep2*c2;
V = sqrt(V2);
V3 = V2*V;

% compute radii of curvature


rm = c/V3;
rp = c/V;

MATLAB function DMS.m

function [D,M,S] = DMS(DecDeg)


% [D,M,S] = DMS(DecDeg) This function takes an angle in decimal degrees and returns
% Degrees, Minutes and Seconds

val = abs(DecDeg);
D = fix(val);
M = fix((val-D)*60);
S = (val-D-M/60)*3600;
if(DecDeg<0)
D = -D;
end
return

REFERENCES

Bowring, B. R., (1972), 'Distance and the spheroid', Correspondence, Survey Review, Vol.
XXI, No. 164, April 1972, pp. 281-284.
Clarke, A. R., (1880), Geodesy, Clarendon Press, Oxford.
Deakin, R. E., (2009), 'The Normal Section Curve on an Ellipsoid', Lecture Notes, School
of Mathematical & Geospatial Sciences, RMIT University, Melbourne, Australia,
November 2009, 53 pages.
Thomas, P. D., (1952), Conformal Projections in Geodesy and Cartography, Special
Publication No. 251, Coast and Geodetic Survey, United States Department of
Commerce, Washington, D.C.

Curve of Alignment.doc 20
THE GREAT ELLIPTIC ARC
ON AN ELLIPSOID

R. E. Deakin
School of Mathematical & Geospatial Sciences, RMIT University,
GPO Box 2476V, MELBOURNE VIC 3001, AUSTRALIA
email: [email protected]
January 2010

ABSTRACT

These notes provide a detailed derivation of the equation for the great elliptic arc on an
ellipsoid. Using this equation and knowing the terminal points of the curve, a technique is
developed for computing the location of points along the curve. A MATLAB function is
provided that demonstrates the algorithm developed.

INTRODUCTION

In geodesy, the great elliptic arc between P1 and P2 on the ellipsoid is the curve created
by intersecting the ellipsoid with the plane containing P1 , P2 and O (the centre of the
ellipsoid).

{}
z x
λP y
N z

{}
x2
y2
great elliptic arc z2
P

{}
x1 • P2
•2
y1 ellipsoid
z1 b
1
P1 •
O a y
• θP
a 3
a
x

{ }
x3 = 0 equator M
y3 = 0
z3 = 0

Figure 1: Great elliptic arc on ellipsoid

Great Elliptic Arc.doc 1


Figure 1 shows P on the great elliptic arc between P1 and P2 . θP is the geocentric
latitude of P and λP is the longitude of P.

There are an infinite number of planes that cut the surface of the ellipsoid and contain the
chord P1P2 but only one of these will contain the centre O. Two other planes are the
normal section plane P1P2 (containing the normal at P1 ) and the normal section plane P2P1
(containing the normal at P2 ). All of these curves of intersection (including the great
elliptic arc and the two normal section curves) are plane curves that are arcs of ellipses
(for a proof of this see Deakin, 2009a). All meridians of longitude on an ellipsoid and the
ellipsoid equator are great elliptic arcs. Parallels of latitude – excepting the equator – are
not great elliptic arcs. So we could say that the great elliptic arc is a unique plane curve
on the ellipsoid – since it is created by the single plane containing P1 , P2 and O. But it is
not the shortest distance between P1 and P2 ; this unique property (shortest length)
belongs to the geodesic.

Great elliptic arcs are not much used in geodesy as they don't have a practical connection
with theodolite observations made on the surface of the earth that are approximated as
observations made on an ellipsoid; e.g., normal section curves and curves of alignment.
Nor are they the shortest distance between points on the ellipsoid; but, if we ignore earth
rotation, they are the curves traced out on the geocentric ellipsoid by the ground point of
an earth orbiting satellite or a ballistic missile moving in an orbital plane containing the
earth's centre of mass. Here geocentric means O (the centre of the ellipsoid) is coincident
with the centre of mass.

The equation for the curve developed below is similar to that derived for the curve of
alignment in Deakin (2009b) and it is not in a form suitable for computing the distance or
azimuth of the curve. But, as it contains functions of both the latitude and longitude of a
point on the curve, it is suitable for computing the latitude of a point given a particular
longitude; or alternatively the longitude of a point may be computed (iteratively) given a
particular latitude.

EQUATION OF GREAT ELLIPTIC ARC

Figure 1 shows P on the great elliptic arc that passes through P1 and P2 on the ellipsoid.
The semi-axes of the ellipsoid are a and b (a > b ) and the first-eccentricity squared e 2 and
the flattening f of the ellipsoid are defined by

Great Elliptic Arc.doc 2


a 2 − b2
e2 = = f (2 − f )
a2 (1)
a −b
f =
a
Parallels of latitude φ and meridians of longitude λ have their respective reference planes;
the equator and the Greenwich meridian, and Longitudes are measured 0 to ±180 (east
positive, west negative) from the Greenwich meridian and latitudes are measured 0 to
±90 (north positive, south negative) from the equator. The x,y,z geocentric Cartesian
coordinate system has an origin at O, the centre of the ellipsoid, and the z-axis is the
minor axis (axis of revolution). The xOz plane is the Greenwich meridian plane (the origin
of longitudes) and the xOy plane is the equatorial plane. The positive x-axis passes
through the intersection of the Greenwich meridian and the equator, the positive y-axis is
advanced 90 east along the equator and the positive z-axis passes through the north pole
of the ellipsoid.

In Figure 1, θP is the geocentric latitude of P and (geodetic) latitude φ and geocentric


latitude θ are related by

b2
( ) ( )
2
tan θ = 1 − e 2 tan φ = tan φ = 1 − f tan φ (2)
a2
The geometric relationship between geocentric latitude θ and (geodetic) latitude φ is
shown in Figure 2.
z

N
• P
t an
b ge
nt
al
rm

ellipse
no

O• θ φ a M
equator
H•

Figure 2: Meridian plane of P

The great elliptic plane in Figure 1 is defined by points c, d and e that are P1 , P2 and
the centre of the ellipsoid O respectively. Cartesian coordinates of c and d are computed
from the following equations

Great Elliptic Arc.doc 3


x = ν cos φ cos λ
y = ν cos φ sin λ (3)
(
z = ν 1 − e sin φ 2
)
where ν = PH (see Figure 2) is the radius of curvature in the prime vertical plane and
a
ν= (4)
1 − e 2 sin 2 φ

The Cartesian coordinates of point e are all zero.

The General equation of a plane may be written as

Ax + By + Cz + D = 0 (5)

And the equation of the plane passing through points c, d and e is given in the form of
a 3rd-order determinant

x − x 1 y − y1 z − z1
x 2 − x 1 y2 − y1 z 2 − z1 = 0 (6)
x 3 − x 2 y 3 − y2 z3 − z2

or expanded into 2nd-order determinants

y 2 − y1 z 2 − z 1 x − x 1 z 2 − z1 x − x 1 y 2 − y1
y 3 − y2 z 3 − z 2
(x − x1 ) − 2
x 3 − x2 z 3 − z2
(y − y1 ) + 2
x 3 − x 2 y 3 − y2
(z − z1 ) = 0 (7)

Expanding the determinants in equation (7) gives

(x − x ) {(y
1 2 }
− y1 )(z 3 − z 2 ) − (z 2 − z 1 )(y 3 − y2 )
− (y − y ) {(x
1 2
− x )(z − z ) − (z − z )(x − x )}
1 3 2 2 1 3 2

+ (z − z ) {(x
1 2
− x )(y − y ) − (y − y )(x − x )} = 0
1 3 2 2 1 3 2
(8)

Now since x 3 = y 3 = z 3 = 0 and equation (8) becomes

(x − x ) {(y
1 2 }
− y1 )(−z 2 ) − (z 2 − z 1 )(−y2 )
− (y − y ) {(x
1 2
− x )(−z ) − (z − z )(−x )}
1 2 2 1 2

+ (z − z ) {(x
1 2
− x )(−y ) − (y − y )(−x )} = 0
1 2 2 1 2
(9)

Expanding and simplifying equation (9) gives

x (y1z 2 − y2z 1 ) − y (x 1z 2 − x 2z 1 ) + z (x 1y2 − x 2y1 ) = 0

Replacing x, y and z with their equivalents, given by equations (3), gives

( )
ν cos φ cos λ (y1z 2 − y2z 1 ) − ν cos φ sin λ (x 1z 2 − x 2z 1 ) + ν 1 − e 2 sin φ (x 1y2 − x 2y1 ) = 0

Great Elliptic Arc.doc 4


and dividing both sides by ν cos φ gives the equation of the great elliptic arc as

(
A cos λ − B sin λ + C 1 − e 2 tan φ = 0) (10)

where A, B and C are functions of the coordinates of the terminal points P1 and P2

A = y1z 2 − y2z1 B = x 1z 2 − x 2z1 C = x 1y2 − x 2y1


(11)

Equation (10) is not suitable for computing the distance along a great elliptic arc, nor is it
suitable for computing the azimuth of the curve, but by certain re-arrangements it is
possible to solve (directly) for the latitude of a point on the curve given a longitude
somewhere between the longitudes of the terminal points of the curve. Or alternatively,
solve (iteratively) for the longitude of a point given a latitude somewhere between the
latitudes of the terminal points.

SOLVING FOR THE LATITUDE

A simple re-arrangement of equation (10) allows the latitude φ to be evaluated from

B sin λ − A cos λ
tan φ = (12)
(
C 1 − e2 )
where A and B and C are functions of terminal points P1 and P2 given by equations (11).

SOLVING FOR THE LONGITUDE

The longitude λ can be evaluated using Newton-Raphson iteration for the real roots of the
equation f (λ ) = 0 given in the form of an iterative equation

λ(n +1) = λ(n ) −


( )
f λ(n )
(13)
f ′ (λ( ) )
n

where n denotes the nth iteration and f (λ ) is given by equation (10) as

(
f (λ ) = A cos λ − B sin λ + C 1 − e 2 tan φ ) (14)

d
and the derivative f ′ (λ ) =

{ }
f (λ ) is given by

f ′ (λ ) = −A sin λ − B cos λ (15)

Great Elliptic Arc.doc 5


An initial value of λ(1) ( λ for n = 1 ) can be taken as the longitude of P1 and the functions

( ) ( )
f λ(1) and f ′ λ(1) evaluated from equations (14) and (15) using λ1 . λ(2) ( λ for n = 2 )

can now be computed from equation (13) and this process repeated to obtain values
λ(3), λ(4), … . This iterative process can be concluded when the difference between λ(n +1) and

λ(n ) reaches an acceptably small value.

Alternatively, the longitude can be evaluated by a trigonometric equation derived as


follows. Equation (10) can be expressed as

( )
B sin λ − A cos λ = C 1 − e 2 tan φ (16)

and A, B and C are given by equations (11). Equation (16) can be expressed as a
trigonometric addition of the form

( )
C 1 − e 2 tan φ = R cos (λ − θ )
= R cos λ cos θ + R sin λ sin θ (17)

Now, equating the coefficients of cos λ and sin λ in equations (17) and (16) gives

A = −R cos θ; B = R sin θ (18)

and using these relationships

B
R = A2 + B 2 ; tan θ = (19)
−A
Substituting these results into equation (17) gives

( 2
) ⎫
⎪⎪⎪C 1 − e tan φ ⎪⎪⎪ ⎪⎧ B ⎪⎫
λ = arccos ⎨ ⎬ + arctan ⎪⎨ ⎪⎬ (20)
⎪⎪⎩⎪ A2 + B 2 ⎪⎪⎭⎪ ⎪⎪⎩−A⎭⎪⎪

DIFFERENCE IN LENGTH BETWEEN A GEODESIC AND A GREAT ELLIPTIC


ARC

There are five curves of interest in geodesy; the geodesic, the normal section, the great
elliptic arc the loxodrome and the curve of alignment.

The geodesic between P1 and P2 on an ellipsoid is the unique curve on the surface defining
the shortest distance; all other curves will be longer in length. The normal section curve
P1P2 is a plane curve created by the intersection of the normal section plane containing the
normal at P1 and also P2 with the ellipsoid surface. And as we have shown (Deakin

Great Elliptic Arc.doc 6


2009a) there is the other normal section curve P2P1 . The curve of alignment (Deakin
2009b, Thomas 1952) is the locus of all points P such that the normal section plane at P
also contains the points P1 and P2 . The curve of alignment is very close to a geodesic.
The great elliptic arc is the plane curve created by intersecting the plane containing P1 , P2
and the centre O with the surface of the ellipsoid and the loxodrome is the curve on the
surface that cuts each meridian between P1 and P2 at a constant angle.

Approximate equations for the difference in length between the geodesic, the normal
section curve and the curve of alignment were developed by Clarke (1880, p. 133) and
Bowring (1972, p. 283) developed an approximate equation for the difference between the
geodesic and the great elliptic arc. Following Bowring (1972), let
s = geodesic length
L = normal section length
D = great elliptic length
S = curve of alignment length

then
4
e 4 ⎛⎜ s ⎞⎟
L −s = s ⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
90 ⎜⎝ R ⎠⎟
2
e 4 ⎛⎜ s ⎞⎟
D −s = s ⎜⎜ ⎟⎟ sin2 φ1 cos2 φ1 sin2 α12 + (21)
24 ⎝ R ⎠⎟
4
e 4 ⎛⎜ s ⎞⎟
S −s = s ⎜ ⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝⎜ R ⎠⎟⎟

where R can be taken as the radius of curvature in the prime vertical at P1 . Now for a
given value of s, D − s will be a maximum if φ1 = 45 and α12 = 90 in which case
1
sin2 φ1 cos2 φ1 sin2 α12 = , thus
4
4
e4 ⎛ s ⎞
(D − s ) < 96 s ⎜⎜⎜ R ⎟⎟⎟⎟ (22)
⎝ ⎠

For the GRS80 ellipsoid where f = 1 298.257222101, e 2 = f (2 − f ) , and for s = 1200000 m


(1200 km) and R = 6371000 m , equation (22) gives D − s < 0.001 m .

Great Elliptic Arc.doc 7


MATLAB FUNCTIONS

Two MATLAB functions are shown below; they are: great_elliptic_arc_lat.m and
great_elliptic_arc_lon.m Assuming that the terminal points of the curve are known, the
first function computes the latitude of a point on the curve given a longitude and the
second function computes the longitude of a point given the latitude.

Output from the two functions is shown below for points on a great elliptic arc between
the terminal points of the straight-line section of the Victorian–New South Wales border.
This straight-line section of the border, between Murray Spring and Wauka 1978, is known
as the Black-Allan Line in honour of the surveyors Black and Allan who set out the border
line in 1870-71. Wauka 1978 (Gabo PM 4) is a geodetic concrete border pillar on the coast
at Cape Howe and Murray Spring (Enamo PM 15) is a steel pipe driven into a spring of
the Murray River that is closest to Cape Howe. The straight line is a normal section curve
on the reference ellipsoid of the Geocentric Datum of Australia (GDA94) that contains the
normal to the ellipsoid at Murray Spring. The GDA94 coordinates of Murray Spring and
Wauka 1978 are:

Murray Spring: φ −37 47 ′ 49.2232′′ λ 148 11′ 48.3333′′


Wauka 1978: φ −37 30′ 18.0674′′ λ 149 58′ 32.9932′′

The normal section azimuth and distance are:

116 58 ′ 14.173757 ′′ 176495.243760 m

The geodesic azimuth and distance are:

116 58 ′ 14.219146′′ 176495.243758 m

Figure 3 shows a schematic view of the Black-Allan line (normal section) and the great
elliptic arc. The relationships between the great elliptic arc and the normal section have
been computed at seven locations along the line (A, B, C, etc.) where meridians of
longitude at 0 15′ intervals cut the line. These relationships are shown in Table 1.

Great Elliptic Arc.doc 8


Murra y Spring BLACK-ALLAN LINE: VICTORIA/NSW BORDER

The Black-Allan Line is a normal section curve


on the reference ellipsoid between P1 (Murray
Spring) and P2 (Wauka 1978). This curve is the
intersection of the normal section plane and the
ellipsoid, and the normal section contains P1,

N S W
the normal to the ellipsoid at P1, and P2.
S
The GDA94 coordinates of Murray Spring and
Wauka 1978 are:
Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
Wauka 1978: φ -37°30’1 8.0674” λ 149°58’32.9932”
148°15 ’ Great Elliptic Arc
B LA The normal section azimuth and distance are:
CK 116°58’14.173757” 176495.243760 m.
148°30’ -
ALL
AN
148°45’

LIN
149°00’ E
Normal Section

149°15’

VIC 149°30’
S

Wauka 1978
149°45’

The Great Elliptic Arc is shown plotted at an ex aggerated scale


with respect to the Border Line (normal section) .
At longitude 149°00’E. the Great Elliptic Arc is 1.939 m north of
the Border Line.
At longitude 149°30’E. the Great Elliptic Arc is 1.522 m north of
the Border Line.

Figure 3

BLACK-ALLAN LINE: VICTORIA/NSW BORDER


GDA94 Ellipsoid values
NAME
LATITUDE LONGITUDE dφ ρ dm = ρ×dφ
Murray
-36°47΄49.223200˝ 148°11΄48.333300˝
Spring
-36°49΄07.598047˝ N
A 148°15΄00.000000˝ 6358356.102
-36°49΄07.590584˝ GEA +00΄00.007463˝ +0.2301
-36°55΄13.876510˝ N
B 148°30΄00.000000˝ 6358465.209
-36°55΄13.840305˝ GEA +00΄00.036205˝ +1.1161
-37°01΄17.289080˝ N
C 148°45΄00.000000˝ 6358573.577
-37°01΄17.234433˝ GEA +00΄00.054647˝ +1.6846
-37°07΄17.845554˝ N
D 149°00΄00.000000˝ 6358681.204
-37°07΄17.782643˝ GEA +00΄00.062911˝ +1.9394
-37°13΄15.555723˝ N
E 149°15΄00.000000˝ 6358788.089
-37°13΄15.494607˝ GEA +00΄00.061116˝ +1.8841
-37°19΄10.429372˝ N
F 149°30΄00.000000˝ 6358894.232
-37°19΄10.379991˝ GEA +00΄00.049381˝ +1.5224
-37°25΄02.476276˝ N
G 149°45΄00.000000˝ 6358999.632
-37°25΄02.448453˝ GEA +00΄00.027823˝ +0.8578
Wauka
-37°30΄18.067400˝ 149°58΄32.993200˝
1978

TABLE 1: Points where the Great Elliptic Arc cuts meridians of A, B, C, etc at 0°15΄ intervals of
longitude along Border Line. N = Normal Section, GEA = Great Elliptic Arc

Great Elliptic Arc.doc 9


>> great_elliptic_arc_lat

==================
Great Elliptic Arc
==================
Ellipsoid parameters
a = 6378137.0000
f = 1/298.257222101

Terminal points of curve


Latitude P1 = -36 47 49.223200 (D M S)
Longitude P1 = 148 11 48.333300 (D M S)

Latitude P2 = -37 30 18.067400 (D M S)


Longitude P2 = 149 58 32.993200 (D M S)

Cartesian coordinates
X Y Z
P1 -4345789.609716 2694844.030716 -3799378.032024
P2 -4386272.668061 2534883.268540 -3862005.992252

Given longitude of P3
Longitude P3 = 149 30 0.000000 (D M S)

Latitude of P3 computed from trigonometric equation


Latitude P3 = -37 19 10.379991 (D M S)

>>

>> great_elliptic_arc_lon

==================
Great Elliptic Arc
==================
Ellipsoid parameters
a = 6378137.0000
f = 1/298.257222101

Terminal points of curve


Latitude P1 = -36 47 49.223200 (D M S)
Longitude P1 = 148 11 48.333300 (D M S)

Latitude P2 = -37 30 18.067400 (D M S)


Longitude P2 = 149 58 32.993200 (D M S)

Cartesian coordinates
X Y Z
P1 -4345789.609716 2694844.030716 -3799378.032024
P2 -4386272.668061 2534883.268540 -3862005.992252

Given latitude of P3
Latitude P3 = -37 19 10.379991 (D M S)

Longitude of P3 computed from Newton-Raphson iteration


Longitude P3 = 149 30 0.000001 (D M S)
iterations = 5

Longitude of P3 computed from trigonometric equation


Longitude P3 = 149 30 0.000001 (D M S)
theta P3 = 8 39 58.683516 (D M S)

>>

Great Elliptic Arc.doc 10


MATLAB function great_elliptic_arc_lat.m

function great_elliptic_arc_lat
%
% great_elliptic_arc_lat: Given the terminal points P1 and P2 of a great
% elliptic arc on an ellipsoid, and the longitude of a point P3 on the
% curve, this function computes the latitude of P3.

%--------------------------------------------------------------------------
% Function: great_elliptic_arc_lat
%
% Usage: great_elliptic_arc_lat
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 3 October 2009
% Version 1.1 5 January 2010
%
% Purpose: Given the terminal points P1 and P2 of a great elliptic arc on
% an ellipsoid, and the longitude of a point P3 on the curve, this
% function computes the latitude of P3.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% [rm,rp] = radii(a,flat,lat);
%
% Variables:
% A,B,C - constants of great elliptic arc
% a - semi-major axis of ellipsoid
% b - semi-minor axis of ellipsoid
% d2r - degree to radian conversion factor 57.29577951...
% e2 - eccentricity of ellipsoid squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% h1,h2 - ellipsoid heights of P1 and P2
% lat1,lat2,lat3 - latitude of P1, P1, P3 (radians)
% lon1,lon2,lon3 - longitude of P1, P2, P3 (radians)
% nu - radius of curvature in prime vertical plane
% rho - radius of curvature in meridain plane
% X1,Y1,Z1 - Cartesian coordinates of P1
% X2,Y2,Z2 - Cartesian coordinates of P2
%
% Remarks:
%
% References:
% [1] Deakin, R.E., 2010, 'The Great Elliptic Arc on an Ellipsoid',
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, January 2010
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;
% a = 6378160; % ANS
% flat = 298.25;
% a = 20926062; % CLARKE 1866
% b = 20855121;
% f = 1-(b/a);
% flat = 1/f;

% Compute ellipsoid constants

Great Elliptic Arc.doc 11


f = 1/flat;
e2 = f*(2-f);

% Set lat, lon and height of P1 and P2 on ellipsoid


lat1 = -(36 + 47/60 + 49.2232/3600)/d2r; % Spring
lon1 = (148 + 11/60 + 48.3333/3600)/d2r;
lat2 = -(37 + 30/60 + 18.0674/3600)/d2r; % Wauka 1978
lon2 = (149 + 58/60 + 32.9932/3600)/d2r;
h1 = 0;
h2 = 0;
% Compute Cartesian coords of P1 and P2
[X1,Y1,Z1] = Geo2Cart(a,flat,lat1,lon1,h1);
[X2,Y2,Z2] = Geo2Cart(a,flat,lat2,lon2,h2);

% Compute constants of Curve of Alignment


A = Y1*Z2-Y2*Z1;
B = X1*Z2-X2*Z1;
C = X1*Y2-X2*Y1;

% Set longitude of P3
lon3 = (149 + 30/60)/d2r;

% Compute latitude of P3
lat3 = atan((B*sin(lon3)-A*cos(lon3))/(C*(1-e2)));

%-----------------------
% Print result to screen
%-----------------------

fprintf('\n==================');
fprintf('\nGreat Elliptic Arc');
fprintf('\n==================');
fprintf('\nEllipsoid parameters');
fprintf('\na = %12.4f',a);
fprintf('\nf = 1/%13.9f',flat);

fprintf('\n\nTerminal points of curve');


% Print lat and lon of P1
[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
% Print lat and lon of P2
[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat2 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);

Great Elliptic Arc.doc 12


% Print lat and lon of P3
fprintf('\n\nGiven longitude of P3');
[D,M,S] = DMS(lon3*d2r);
if D == 0 && lon3 < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
fprintf('\n\nLatitude of P3 computed from trigonometric equation');
[D,M,S] = DMS(lat3*d2r);
if D == 0 && lat3 < 0
fprintf('\nLatitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\n');

MATLAB function great_elliptic_arc_lon.m

function great_elliptic_arc_lon
%
% great_elliptic_arc_lon: Given the terminal points P1 and P2 of a great
% elliptic arc on an ellipsoid, and the latitude of a point P3 on the
% curve, this function computes the longitude of P3.

%--------------------------------------------------------------------------
% Function: great_elliptic_arc_lon
%
% Usage: great_elliptic_arc_lon
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 3 October 2009
% Version 1.1 5 January 2010
%
% Purpose: Given the terminal points P1 and P2 of a great elliptic arc on
% an ellipsoid, and the latitude of a point P3 on the curve, this
% function computes the longitude of P3.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% [rm,rp] = radii(a,flat,lat);
%
% Variables:
% A,B,C - constants of great elliptic arc
% a - semi-major axis of ellipsoid
% b - semi-minor axis of ellipsoid
% d2r - degree to radian conversion factor 57.29577951...
% e2 - eccentricity of ellipsoid squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% f_lat3 - function of latitude of P3
% fdash_lat3 - derivative of function of latitude of Pp3
% h1,h2 - ellipsoid heights of P1 and P2
% iter - number of iterations
% lambda - longitude of P3 computed from trigonometric equation
% lat1,lat2,lat3 - latitude of P1, P1, P3 (radians)
% lon1,lon2,lon3 - longitude of P1, P2, P3 (radians)
% new_lat3 - next latiude in Newton-Raphson iteration
% nu - radius of curvature in prime vertical plane
% rho - radius of curvature in meridain plane

Great Elliptic Arc.doc 13


% theta - auxiliary angle in the computation of lambda
% X1,Y1,Z1 - Cartesian coordinates of P1
% X2,Y2,Z2 - Cartesian coordinates of P2
%
% Remarks:
%
% References:
% [1] Deakin, R.E., 2010, 'The Great Elliptic Arc on an Ellipsoid',
% Lecture Notes, School of Mathematical and Geospatial Sciences,
% RMIT University, January 2010
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;
% a = 6378160; % ANS
% flat = 298.25;
% a = 20926062; % CLARKE 1866
% b = 20855121;
% f = 1-(b/a);
% flat = 1/f;

% Compute ellipsoid constants


f = 1/flat;
e2 = f*(2-f);

% Set lat, lon and height of P1 and P2 on ellipsoid


lat1 = -(36 + 47/60 + 49.2232/3600)/d2r; % Spring
lon1 = (148 + 11/60 + 48.3333/3600)/d2r;
lat2 = -(37 + 30/60 + 18.0674/3600)/d2r; % Wauka 1978
lon2 = (149 + 58/60 + 32.9932/3600)/d2r;
h1 = 0;
h2 = 0;
% Compute Cartesian coords of P1 and P2
[X1,Y1,Z1] = Geo2Cart(a,flat,lat1,lon1,h1);
[X2,Y2,Z2] = Geo2Cart(a,flat,lat2,lon2,h2);

% Compute constants of Curve of Alignment


A = Y1*Z2-Y2*Z1;
B = X1*Z2-X2*Z1;
C = X1*Y2-X2*Y1;

% Set latitude of P3
lat3 = -(37 + 19/60 + 10.379991/3600)/d2r;

%-----------------------------------------------------------
% Compute the longitude of P3 using Newton-Raphson iteration
%-----------------------------------------------------------
% Set starting value of lon3 = longitude of P1
lon3 = lon1;
iter = 1;
while 1
% Compute radii of curvature
f_lon3 = A*cos(lon3)-B*sin(lon3)+C*(1-e2)*tan(lat3);
fdash_lon3 = -A*sin(lon3)-B*cos(lon3);
new_lon3 = lon3-(f_lon3/fdash_lon3);
if abs(new_lon3 - lon3) < 1e-15
break;
end
lon3 = new_lon3;
if iter > 100
fprintf('Iteration for longitude failed to converge after 100 iterations');
break;
end
iter = iter + 1;

Great Elliptic Arc.doc 14


end;

%---------------------------------------------------------
% Compute the longitude of P3 using trigonometric equation
%---------------------------------------------------------
theta = atan2(B,-A);
lambda = acos(C*(1-e2)*tan(lat3)/sqrt(A^2+B^2))+theta;

%-----------------------
% Print result to screen
%-----------------------

fprintf('\n==================');
fprintf('\nGreat Elliptic Arc');
fprintf('\n==================');
fprintf('\nEllipsoid parameters');
fprintf('\na = %12.4f',a);
fprintf('\nf = 1/%13.9f',flat);

fprintf('\n\nTerminal points of curve');


% Print lat and lon of P1
[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
% Print lat and lon of P2
[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat2 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print Coordinate table


fprintf('\n\nCartesian coordinates');
fprintf('\n X Y Z');
fprintf('\nP1 %15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2 %15.6f %15.6f %15.6f',X2,Y2,Z2);

% Print lat and lon of P3


fprintf('\n\nGiven latitude of P3');
[D,M,S] = DMS(lat3*d2r);
if D == 0 && lat3 < 0
fprintf('\nLatitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\nLongitude of P3 computed from Newton-Raphson iteration');


[D,M,S] = DMS(lon3*d2r);
if D == 0 && lon3 < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

Great Elliptic Arc.doc 15


fprintf('\niterations = %4d',iter);

fprintf('\n\nLongitude of P3 computed from trigonometric equation');


[D,M,S] = DMS(lambda*d2r);
if D == 0 && lambda < 0
fprintf('\nLongitude P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P3 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(theta*d2r);
if D == 0 && theta < 0
fprintf('\ntheta P3 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ntheta P3 = %4d %2d %9.6f (D M S)',D,M,S);
end

fprintf('\n\n');

MATLAB function Geo2Cart.m

function [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)


%
% [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h)
% Function computes the Cartesian coordinates X,Y,Z of a point
% related to an ellipsoid defined by semi-major axis (a) and the
% denominator of the flattening (flat) given geographical
% coordinates latitude (lat), longitude (lon) and ellipsoidal
% height (h). Latitude and longitude are assumed to be in radians.

%--------------------------------------------------------------------------
% Function: Geo2Cart()
%
% Usage: [X,Y,Z] = Geo2Cart(a,flat,lat,lon,h);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 6 April 2006
% Version 1.0 20 August 2007
%
% Functions required:
% radii()
%
% Purpose:
% Function Geo2Cart() will compute Cartesian coordinates X,Y,Z
% given geographical coordinates latitude, longitude (both in
% radians) and height of a point related to an ellipsoid
% defined by semi-major axis (a) and denominator of flattening
% (flat).
%
% Variables:
% a - semi-major axis of ellipsoid
% e2 - 1st eccentricity squared
% f - flattening of ellipsoid
% flat - denominator of flattening f = 1/flat
% h - height above ellipsoid
% lat - latitude (radians)
% lon - longitude (radians)
% p - perpendicular distance from minor axis of ellipsoid
% rm - radius of curvature of meridian section of ellipsoid
% rp - radius of curvature of prime vertical section of ellipsoid
%
% References:
% [1] Gerdan, G.P. & Deakin, R.E., 1999, 'Transforming Cartesian

Great Elliptic Arc.doc 16


% coordinates X,Y,Z to geogrpahical coordinates phi,lambda,h', The
% Australian Surveyor, Vol. 44, No. 1, pp. 55-63, June 1999.
%--------------------------------------------------------------------------

% calculate flattening f and ellipsoid constant e2


f = 1/flat;
e2 = f*(2-f);

% compute radii of curvature for the latitude


[rm,rp] = radii(a,flat,lat);

% compute Cartesian coordinates X,Y,Z


p = (rp+h)*cos(lat);
X = p*cos(lon);
Y = p*sin(lon);
Z = (rp*(1-e2)+h)*sin(lat);

MATLAB function radii.m

function [rm,rp] = radii(a,flat,lat)


%
% [rm,rp]=radii(a,flat,lat) Function computes radii of curvature in
% the meridian and prime vertical planes (rm and rp respectively) at a
% point whose latitude (lat) is known on an ellipsoid defined by
% semi-major axis (a) and denominator of flattening (flat).
% Latitude must be in radians.
% Example: [rm,rp] = radii(6378137,298.257222101,-0.659895044);
% should return rm = 6359422.96233327 metres and
% rp = 6386175.28947842 metres
% at latitude -37 48 33.1234 (DMS) on the GRS80 ellipsoid

%--------------------------------------------------------------------------
% Function: radii(a,flat,lat)
%
% Syntax: [rm,rp] = radii(a,flat,lat);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 1 August 2003
% Version 2.0 6 April 2006
% Version 3.0 9 February 2008
%
% Purpose: Function radii() will compute the radii of curvature in
% the meridian and prime vertical planes, rm and rp respectively
% for the point whose latitude (lat) is given for an ellipsoid
% defined by its semi-major axis (a) and denominator of
% flattening (flat).
%
% Return value: Function radii() returns rm and rp
%
% Variables:
% a - semi-major axis of spheroid
% c - polar radius of curvature
% c2 - cosine of latitude squared
% ep2 - 2nd-eccentricity squared
% f - flattening of ellipsoid
% lat - latitude of point (radians)
% rm - radius of curvature in the meridian plane
% rp - radius of curvature in the prime vertical plane
% V - latitude function defined by V-squared = sqrt(1 + ep2*c2)
% V2,V3 - powers of V
%
% Remarks:
% Formulae are given in [1] (section 1.3.9, page 85) and in

Great Elliptic Arc.doc 17


% [2] (Chapter 2, p. 2-10) in a slightly different form.
%
% References:
% [1] Deakin, R.E. and Hunter, M.N., 2008, GEOMETRIC GEODESY, School of
% Mathematical and Geospatial Sciences, RMIT University, Melbourne,
% AUSTRALIA, March 2008.
% [2] THE GEOCENTRIC DATUM OF AUSTRALIA TECHNICAL MANUAL, Version 2.2,
% Intergovernmental Committee on Surveying and Mapping (ICSM),
% February 2002 (www.anzlic.org.au/icsm/gdatum)
%--------------------------------------------------------------------------

% compute flattening f eccentricity squared e2


f = 1/flat;
c = a/(1-f);
ep2 = f*(2-f)/((1-f)^2);

% calculate the square of the sine of the latitude


c2 = cos(lat)^2;

% compute latitude function V


V2 = 1+ep2*c2;
V = sqrt(V2);
V3 = V2*V;

% compute radii of curvature


rm = c/V3;
rp = c/V;

MATLAB function DMS.m

function [D,M,S] = DMS(DecDeg)


% [D,M,S] = DMS(DecDeg) This function takes an angle in decimal degrees and returns
% Degrees, Minutes and Seconds

val = abs(DecDeg);
D = fix(val);
M = fix((val-D)*60);
S = (val-D-M/60)*3600;
if(DecDeg<0)
D = -D;
end
return

Great Elliptic Arc.doc 18


REFERENCES

Bowring, B. R., (1972), 'Distance and the spheroid', Correspondence, Survey Review, Vol.
XXI, No. 164, April 1972, pp. 281-284.
Clarke, A. R., (1880), Geodesy, Clarendon Press, Oxford.
Deakin, R. E., (2009a), 'The Normal Section Curve on an Ellipsoid', Lecture Notes, School
of Mathematical & Geospatial Sciences, RMIT University, Melbourne, Australia,
November 2009, 53 pages.
—————— (2009b), 'The Curve of Alignment on an Ellipsoid', Lecture Notes, School of
Mathematical & Geospatial Sciences, RMIT University, Melbourne, Australia,
December 2009, 20 pages.

Thomas, P. D., (1952), Conformal Projections in Geodesy and Cartography, Special


Publication No. 251, Coast and Geodetic Survey, United States Department of
Commerce, Washington, D.C.

Great Elliptic Arc.doc 19


THE LOXODROME ON AN ELLIPSOID

R. E. Deakin
School of Mathematical & Geospatial Sciences, RMIT University,
GPO Box 2476V, MELBOURNE VIC 3001, AUSTRALIA
email: [email protected]
January 2010

ABSTRACT

These notes provide a detailed explanation of the geometry of the loxodrome on the
ellipsoid. Equations are derived for azimuth and distance of a loxodrome between two
points on an ellipsoid and these equations enable the development of algorithms for the
solution of the direct and inverse problems of the loxodrome. A MATLAB function is
provided that demonstrates an algorithm for the inverse problem.

INTRODUCTION

The loxodrome between P1 and P2 on the ellipsoid is a curved line such that every element
of the curve ds intersects a meridian at a constant azimuth α . Unless α = 0 , 90 ,180 or
270 the loxodrome will spiral around the ellipsoid and terminate at one of the poles. In

(
other cases the loxodrome will lie along a meridian of longitude α = 0 ,180 ) or a parallel
(
of latitude α = 90 ,270 . )

xo
lo

dr
om
e

Figure 1: Loxodrome on the earth's surface

Loxodrome on Ellipsoid.doc 1
In marine and air navigation, aircraft and ships sailing or flying on fixed compass headings
are moving along loxodromes, hence knowledge of loxodromes is important in navigation.
Mercator's projection – a normal aspect cylindrical conformal projection – has the unique
property that loxodromes on the earth's surface are projected as straight lines on the map.

In geodesy the direct problem (computing position given azimuth and distance from a
known location) and the inverse problem (computing azimuth and distance between known
positions) are fundamental operations and can be likened to the equivalent operations of
plane surveying; radiations (computing coordinates of points given bearings and distances
radiating from a point of known coordinates) and joins; (computing bearings and distances
between points having known coordinates). The direct and inverse problems in geodesy
are usually associated with the geodesic which is the unique curve defining the shortest
path on the ellipsoid but they can also be associated with other curves. So;

The direct problem of the loxodrome on the ellipsoid is: given latitude and longitude
of P1 and the azimuth α and distance s of a loxodrome between P1 and P2 ; compute
the latitude and longitude of P2 .

The inverse problem of the loxodrome on the ellipsoid is: given the latitude and
longitude of P1 and P2 ; compute the azimuth α and distance s of the loxodrome
between P1 and P2 .

The equations necessary for the solution of the direct and inverse problems are derived
from the differential geometry of the ellipsoid and in particular, relationships that can be
obtained from the differential rectangle on the ellipsoid. Also, meridian distance (the
distance along a meridian from the equator) is used in computing loxodrome distances.
Discussions of differential geometry of the ellipsoid and meridian distance can be found in
Deakin & Hunter (2008) or geodesy textbooks (e.g., Lauf 1983; Bomford 1980), and an
excellent treatment of the loxodrome on the ellipsoid can be found in Bowring (1985).

THE ELLIPSOID

In geodesy, the ellipsoid is a surface of revolution created by rotating an ellipse about its
minor axis. The size and shape of an ellipsoid is defined by one of three pairs of
parameters: (i) a, b where a and b are the semi-major and semi-minor axes lengths of an
ellipsoid respectively (and a > b ), or (ii) a, f where f is the flattening of an ellipsoid, or
(iii) a, e 2 where e 2 is the square of the first eccentricity of an ellipsoid.

Loxodrome on Ellipsoid.doc 2
z

ch
b

wi
w

en
P

Gre

O•
a φ a
H• y
x equator
w

Figure 2: The reference ellipsoid

The ellipsoid parameters a, b, f , e 2 are related by the following equations


a −b b
f = = 1− (1)
a a
b = a (1 − f ) (2)

a 2 − b2 b2
e2 = = 1 − = f (2 − f ) (3)
a2 a2
b2 2
1 − e2 = 2
= 1 − f (2 − f ) = (1 − f ) (4)
a
The second eccentricity e ′ of an ellipsoid is also of use and

a 2 − b2 a2 e2 f (2 − f )
e ′2 = 2
= 2
− 1 = 2
= 2 (5)
b b 1 −e (1 − f )
e ′2
e2 = (6)
1 + e ′2
In Figure 2 the normal to the surface at P intersects the rotational axis of the ellipsoid
(the z-axis) at H making an angle φ with the equatorial plane of the ellipsoid – this is the
latitude of P. The longitude λ is the angle between the Greenwich meridian plane (a
reference plane) and the meridian plane (the z-w plane) containing the normal through P.
φ and λ are curvilinear coordinates and meridians of longitude (curves of constant λ ) and
parallels of latitude (curves of constant φ ) are parametric curves on the ellipsoidal surface.
At P on the surface of the ellipsoid, planes containing the normal to the ellipsoid intersect
the surface creating elliptical sections known as normal sections. Amongst the infinite
number of possible normal sections at a P; each having a certain radius of curvature, two

Loxodrome on Ellipsoid.doc 3
are of interest: (i) the meridian section, containing the axis of revolution of the ellipsoid
and having the least radius of curvature, denoted by ρ , and (ii) the prime vertical section,
perpendicular to the meridian plane and having the greatest radius of curvature, denoted
by ν .

a (1 − e 2 ) a (1 − e 2 )
ρ= 3 = (7)
(1 − e 2 sin2 φ) 2
W3

a a
ν= 1 = (8)
(1 − e 2 sin2 φ) 2
W

W 2 = 1 − e 2 sin2 φ (9)

For P, the centre of the radius of curvature of the prime vertical section is at H and
ν = PH . The centre of the radius of curvature of the meridian section lies on the normal
between P and H.

Alternative equations for the radii of curvature ρ and ν are given by

a2 c
ρ= 3 = (10)
b (1 + e ′2 cos2 φ) 2
V3

a2 c
ν= 1 = (11)
b (1 + e ′2 cos2 φ) 2
V

a2 a
c = = (12)
b 1− f

V 2 = 1 + e ′2 cos2 φ (13)

and c is the polar radius of curvature of the ellipsoid.


The latitude functions W and V are related as follows

V2 V b
W2 = and W = = V (14)
1 + e ′2
1

(1 + e ′2 ) 2
a

Points on the ellipsoid surface have curvilinear coordinates φ, λ and Cartesian coordinates
x,y,z where the x-z plane is the Greenwich meridian plane, the x-y plane is the equatorial
plane and the y-z plane is a meridian plane 90º east of the Greenwich meridian plane.
Cartesian and curvilinear coordinates are related by
x = ν cos φ cos λ
y = ν cos φ cos λ (15)
z = ν (1 − e 2 ) sin φ

Loxodrome on Ellipsoid.doc 4
Note that ν (1 − e 2 ) is the distance along the normal from a point on the surface to the
point where the normal cuts the equatorial plane.

DIFFERENTIAL RELATIONSHIPS FOR THE LOXODROME ON THE ELLIPSOID

The derivation of equations relating to the loxodrome requires an understanding of the


connection between differentially small quantities on the surface of the ellipsoid.


φ +dφ
Q
α • φ
• w b
P no parall el
rm α
mer i di an

al O Q
φ • φ + dφ

ρ dφ
a H α
P ds
equat or •
ν cos φ d λ φ
λ λ+ d λ

λ
λ+d λ
S

Figure 3: The differential rectangle on an ellipsoid (a,b)

These relationships can be derived from the differential rectangle, with diagonal PQ in
Figure 3 which shows P and Q on an ellipsoid whose semi-axes are a and b (a > b ) . P and
Q are separated by differential changes in latitude d φ and longitude d λ and are connected
by a loxodrome of length ds making an angle α (the azimuth) with the meridian through
P. The meridians λ and λ + d λ , and the parallels φ and φ + d φ form a differential
rectangle on the surface of the ellipsoid. The differential distances dp along the parallel φ
and dm along the meridian λ are

dp = w d λ = ν cos φ d λ (16)

dm = ρ d φ (17)

where ρ and ν are radii of curvature in the meridian and prime vertical planes
respectively and w = ν cos φ is the perpendicular distance from the rotational axis NOS.

Loxodrome on Ellipsoid.doc 5
From Figure 3, the differential distance ds is given by

ds = dm 2 + dp 2
= ρ 2d φ2 + ν 2 cos2 φ d λ 2
2
⎛ ρ d φ ⎞⎟
⎜ ⎟⎟ + d λ 2
= ν cos φ ⎜⎜
⎜⎜⎝ ν cos φ ⎟⎟⎠

= ν cos φ dq 2 + d λ 2 (18)

q is known as the isometric latitude defined by the differential relationship

ρ
dq = dφ (19)
ν cos φ

(q, λ ) is a curvilinear coordinate system on the ellipsoid with isometric parameters where
isometric means of equal measure (iso = equal; metric = able to be measured). We can
see this from equation (18) where the differential distances along the parametric curves q
and λ are dm = ν cos φ dq and dp = ν cos φ d λ , i.e., the differential distances are equal for
equal angular differentials dq and d λ .

Also from Figure 3 the azimuth α of the loxodrome is obtained from

ν cos φ d λ dλ
tan α = = (20)
ρ dφ dq

and azimuth α and distance s are linked by the differential relationship

dm 1
ds = = ρ dφ (21)
cos α cos α

ISOMETRIC LATITUDE

The isometric latitude is defined by the differential equation (19) from which we obtain

ρ
q= ∫ ν cos φ d φ + C 1
(22)

where C 1 is a constant of integration.

Substituting into equation (22) expressions for ρ and ν given by equations (7) and (8),
and simplifying gives

q=∫
(1 − e ) 2

dφ + C (23)
(1 − e sin φ) cos φ
2 2 1

Loxodrome on Ellipsoid.doc 6
The integrand of equation (23) can be separated into partial fractions

(1 − e ) =
2
A
+
B
(24)
(1 − e sin φ) cos φ (1 − e sin φ) cos φ
2 2 2 2

Expanding and simplifying equation (24) gives

(
1 − e 2 = A cos φ + B 1 − e 2 sin2 φ )
= A cos φ + B − Be 1 − cos2 φ2
( )
= B 1 −e ( 2
) + (A + Be 2
)
cos φ cos φ (25)

A and B are obtained by comparing the coefficients of 1 − e 2 and cos φ in equation (25)
giving

B = 1; A = −e 2 cos φ

Substituting these results into equation (24) gives the isometric latitude as

1 e 2 cos φ
q= ∫ cos φ
dφ − ∫
1 − e 2 sin2 φ
dφ + C1 (26)

Put e sin φ = sin u then e cos φ d φ = cos u du and

1 cos u
q= ∫ cos φ
dφ − e ∫
1 − sin2 u
du + C 1
1 cos u
= ∫ cos φ
dφ − e ∫
cos2 u
du + C 1
1 1
= ∫ cos φ
dφ − e ∫
cos u
du + C 1 (27)

1 ⎧
⎪ ⎛ π x ⎟⎞⎫⎪
From standard integrals ∫ dx = ln ⎪
⎨tan ⎜⎜ + ⎟⎟⎪ ⎬ and from half-angle trigonometric
cos x ⎪
⎪ ⎜⎝ 4 2 ⎟⎠⎪⎪
⎩ ⎭
⎛ A⎞
formula tan ⎜⎜⎜ ⎟⎟⎟ = ±
1 − cos A ⎛π x ⎞
giving tan ⎜⎜⎜ + ⎟⎟⎟ =
1 − cos x + π 2
=
1 + sin x
.
( )
⎝ 2 ⎟⎠ 1 + cos A ⎝ 4 2 ⎠⎟ 1 + cos x + π 2 1 − sin x ( )
Substituting these results into equation (27) gives the isometric latitude as
1
⎛π φ⎞ ⎛1 + e sin φ ⎞⎟2
q = ln tan ⎜⎜ + ⎟⎟⎟ + C 2 − e ln ⎜⎜ ⎟⎟ − C 3 + C 1
⎜⎝ 4 2 ⎠⎟ ⎝⎜ 1 − e sin φ ⎠⎟

where C 1,C 2 and C 3 are constants of integration. Using the laws of logarithms:
M
loga MN = loga M + loga N , loga = loga M − loga N and loga M p = p loga M , and
N
defining a new constant of integration C = C 2 − C 3 + C 1 gives

Loxodrome on Ellipsoid.doc 7
e
⎛π φ⎞ ⎛ 1 − e sin φ ⎟⎞2
q = ln tan ⎜⎜⎜ + ⎟⎟⎟ + ln ⎜⎜⎜ ⎟⎟ + C
⎝ 4 2 ⎟⎠ ⎝1 + e sin φ ⎟⎠
⎪⎧⎪ e⎫

⎛ ⎞⎛ ⎞2⎪
⎪ π φ ⎟ 1 − e sin φ ⎟ ⎪
= ln ⎨tan ⎜⎜⎜ + ⎟⎟ ⎜⎜⎜ ⎟⎟ ⎬ + C (28)
⎪⎪ ⎝ 4 2 ⎟⎠⎝1 + e sin φ ⎟⎠ ⎪⎪
⎪⎩⎪ ⎪


The constant C in equation (28) equals zero since if φ = 0 then q = 0 and the isometric
latitude q is obtained from

⎪⎧⎪ e⎫

⎛ ⎞⎛ ⎞ 2⎪
⎪ π φ ⎟ 1 − e sin φ ⎟ ⎪
q = ln ⎨tan ⎜⎜⎜ + ⎟⎟ ⎜⎜⎜ ⎟⎟ ⎬ (29)
⎪⎪ ⎝ 4 2 ⎟⎠⎝1 + e sin φ ⎠⎟ ⎪⎪
⎪⎩⎪ ⎪⎭⎪

This derivation follows Lauf (1983) where an integral identical to equation (22) is
evaluated as part of the derivation of the equations for the ellipsoidal Mercator projection
– a conformal projection of the ellipsoid. Thomas (1952) derives a similar equation in his
development of conformal representation of the ellipsoid upon a plane.

THE EQUATION OF THE LOXODROME

By re-arranging equation (20) we have


d λ = tan α dq

and integrating both sides, noting that tan α is a constant, gives


λ2 q2

∫ dλ = tan α ∫ dq
λ1 q1

λ2 − λ1 = tan α (q 2 − q1 )

And the equation of the loxodrome between P1 and P2 on the ellipsoid is

Δλ = Δq tan α (30)

where Δλ = λ2 − λ1 and Δq = q 2 − q1 are differences in longitude and isometric latitude


respectively and α is the (constant) azimuth of the loxodrome.

Loxodrome on Ellipsoid.doc 8
THE AZIMUTH OF A LOXODROME

The azimuth α of a loxodrome between P1 and P2 on an ellipsoid can be obtained from


equation (30) as

⎛ Δλ ⎟⎞ ⎛ λ − λ ⎟⎞
α = arctan ⎜⎜⎜ ⎟⎟ = arctan ⎜⎜⎜ 2 1⎟
⎟ (31)
⎝ Δq ⎠⎟ ⎜⎝ q2 − q1 ⎠⎟

where q1, q2 are isometric latitudes of P1 and P2 respectively and q is given by equation
(29). λ1, λ2 are the longitudes of P1 and P2 .

DISTANCE ALONG A LOXODROME

Consider a loxodrome of constant azimuth α that crosses the equator and passes through
P1 and P2 . The distance s between P1 and P2 can be defined as s = s2 − s1 where s1 and
s2 are distances from the equator to P1 and P2 respectively and from equations (21) and
(7) we may write

1
φ1
(
a 1 − e2 ) φ1
1 m1
cos α ∫0 ∫W
s1 = ρ dφ = dφ = (32)
cos α 0
3
cos α

and similarly

m2
s2 = (33)
cos α
m1 and m2 are meridian distances and meridian distance m is defined as the length of the
arc of the meridian to a point in latitude φ . m is obtained from the differential
relationship given by equation (17) and
φ φ 3 φ

∫ ρ d φ = a (1 − e ) ∫ (1 − e ) ( ) ∫ W1

2 2 2 2
m= sin φ 2
dφ = a 1 − e 3
dφ (34)
0 0 0

This is an elliptic integral of the second kind and cannot be evaluated directly; instead, the
3
1
( )

2 2
integrand 3
= 1 − e sin φ 2
is expanded by using the binomial series and then
W
evaluated by term-by-term integration. Following Deakin & Hunter (2008) we obtain an
expression for the meridian distance as

m = a {A0φ − A2 sin 2φ + A4 sin 4φ − A6 sin 6φ + A8 sin 8φ − A10 sin 10φ + } (35)

where

Loxodrome on Ellipsoid.doc 9
1 3 5 6 175 8 441 10
A0 = 1 − e 2 − e 4 − e − e − e +
4 64 256 16384 65536
3⎛ 1 15 6 35 8 735 10 ⎞
A2 = ⎜⎜e 2 + e 4 + e + e + e + ⎟⎟
8⎝ 4 128 512 16384 ⎠
15 ⎛ 4 3 6 35 8 105 10 ⎞
A4 = ⎜⎜e + e + e + e + ⎟⎟
256 ⎝ 4 64 256 ⎠
(36)
35 ⎛ 6 5 8 315 10 ⎞
A6 = ⎜⎜e + e + e + ⎟⎟
3072 ⎝ 4 256 ⎠
315 ⎛ 8 7 10 ⎞
A8 = ⎜⎜e + e + ⎟⎟
131072 ⎝ 4 ⎠
693
A10 = (e10 + )
131072
Combining equations (32) and (33) gives the length of the loxodrome between P1 and P2
as

m2 − m1
s= (37)
cos α
where α is the (constant) azimuth and m1 and m2 are meridian distances for φ1 and φ2
obtained from equation (35).

THE DIRECT PROBLEM OF THE LOXODROME ON THE ELLIPSOID

The direct problem is: Given latitude and longitude of P1 , azimuth α12 of the loxodrome
P1P2 and the arc length s along the loxodrome curve; compute the
latitude and longitude of P2 and the reverse azimuth α21 .

With the ellipsoid constants a, f , and e 2 and given φ1, λ1, α12 and s the problem may be
solved by the following sequence.

1. Compute m1 the meridian distance of P1 using equation (35).

2. Compute meridian distance m2 from equation (37) where

m2 = s cos α12 + m1

3. Use Newton-Raphson iteration to compute latitude φ2 using equation (35) re-


arranged as

f (φ ) = a {A0φ − A2 sin 2φ + A4 sin 4φ − A6 sin 6φ + A8 sin 8φ − A10 sin10φ} − m = 0

Loxodrome on Ellipsoid.doc 10
( ) where f ′ (φ) = d f (φ) and
f φ(n )
and the iterative equation φ(n +1) = φ(n ) − { }
f ′ (φ( ) )
n

f ′ (φ ) = a {A0 − 2A2 cos 2φ + 4A4 cos 4φ − 6A6 cos 6φ + 8A8 cos 8φ − 10A10 cos10φ}

An initial value of φ(1) ( φ for n = 1 ) can be taken as the latitude of P1 and the

( ) ( )
functions f φ(1) and f ′ φ(1) evaluated using φ1 . φ(2) ( φ for n = 2 ) can now be

computed from the iterative equation and this process repeated to obtain values
φ(3), φ(4), … . This iterative process can be concluded when the difference between

φ(n +1) and φ(n ) reaches an acceptably small value.

4. Compute isometric latitudes q1 and q 2 using equation (29) and then the difference in
isometric latitudes Δq = q 2 − q1

5. Compute the difference in longitude Δλ = λ2 − λ1 from equation (30)

6. Compute longitude λ2 from λ2 = λ1 + Δλ

7. Compute reverse azimuth from α21 = α12 ± 180

THE INVERSE PROBLEM OF THE LOXODROME ON THE ELLIPSOID

The inverse problem is: Given latitudes and longitudes of P1 and P2 on the ellipsoid,
compute the azimuth α12 of the loxodrome P1P2 , the arc length s
along the loxodrome curve and the reverse azimuth α21 .

With the ellipsoid constants a, f , and e 2 and given φ1, λ1 and φ2 , λ2 the problem may be
solved by the following sequence.
1. Compute isometric latitudes q1 and q 2 using equation (29) and then the difference in
isometric latitudes Δq = q 2 − q1

2. Compute the longitude difference Δλ = λ2 − λ1 and then the azimuth α12 using
equation (31).

3. Compute meridian distances m1 and m2 using equation (35).

4. Compute the arc length s from equation (37).

5. Compute reverse azimuth from α21 = α12 ± 180

Loxodrome on Ellipsoid.doc 11
MATLAB FUNCTIONS

A MATLAB function loxodrome_inverse.m is shown below. This function computes the


inverse problem of the loxodrome on the ellipsoid.

Output from the function is shown below for points on a great elliptic arc between the
terminal points of the straight-line section of the Victorian–New South Wales border. This
straight-line section of the border, between Murray Spring and Wauka 1978, is known as
the Black-Allan Line in honour of the surveyors Black and Allan who set out the border
line in 1870-71. Wauka 1978 (Gabo PM 4) is a geodetic concrete border pillar on the coast
at Cape Howe and Murray Spring (Enamo PM 15) is a steel pipe driven into a spring of
the Murray River that is closest to Cape Howe. The straight line is a normal section curve
on the reference ellipsoid of the Geocentric Datum of Australia (GDA94) that contains the
normal to the ellipsoid at Murray Spring. The GDA94 coordinates of Murray Spring and
Wauka 1978 are:

Murray Spring: φ −37 47 ′ 49.2232′′ λ 148 11′ 48.3333′′


Wauka 1978: φ −37 30′ 18.0674 ′′ λ 149 58 ′ 32.9932′′

The normal section azimuth and distance are:

116 58 ′ 14.173757 ′′ 176495.243760 m

The geodesic azimuth and distance are:

116 58 ′ 14.219146′′ 176495.243758 m

The loxodrome azimuth and distance are:

116 26′ 08.400701′′ 176497.829952 m

Figure 4 shows a schematic view of the Black-Allan line (normal section) and the great
elliptic arc. The relationships between the great elliptic arc and the normal section have
been computed at seven locations along the line (A, B, C, etc.) where meridians of
longitude at 0 15′ intervals cut the line. These relationships are shown in Table 1.

Loxodrome on Ellipsoid.doc 12
Murray Spring BLACK-ALLAN LINE: VICTORIA/NSW BORDER

The Black-Allan Line is a normal section curve


on the reference ellipsoid between P1 (Murray
Spring) and P2 (Wauka 1978). This curve is the
intersection of the normal section plane and the
ellipsoid, and the normal section contains P1,

N S W
the normal to the ellipsoid at P1, and P2.
S
The GDA94 coordinates of Murray Spring and
Wauka 1978 are:
Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
Wauka 1978: φ -37°30’1 8.0674” λ 149°58’32.9932”
148°15 ’ Loxodrome
The normal section azimuth and distance are:
BL
ACK 116°58’14.173757” 176495.243760 m.
148°30’ -
The geodesic azimuth and distance are:
AL 116°58’14.219146” 176495.243758 m.
L AN
148°45’ The loxodrome azimuth and distance are:
116°26’08.400701” 176497.829952 m.
LI
149°00’
NE
Normal Section

149°15’

VIC 149°30’
S

Wauka 1978
149°45’

The loxodrome is shown plotted at an exaggerated scale with respect t o the


Border Line (normal section).
At longitude 149°00’E. the loxodrome is 457.918 m north of the Border Line.
At longitude 149°30’E. the loxodrome is 361.250 m north of the Border Line.

Figure 4

BLACK-ALLAN LINE: VICTORIA/NSW BORDER


GDA94 Ellipsoid values
NAME
LATITUDE LONGITUDE dφ ρ dm = ρ×dφ
Murray
-36°47΄49.223200˝ 148°11΄48.333300˝
Spring
-36°49΄07.598047˝ N
A 148°15΄00.000000˝ 6358356.102
-36°49΄05.849245˝ Lox +00΄01.748802˝ +53.9089
-36°55΄13.876510˝ N
B 148°30΄00.000000˝ 6358465.209
-36°55΄05.371035˝ Lox +00΄08.505475˝ +262.1958
-37°01΄17.289080˝ N
C 148°45΄00.000000˝ 6358573.577
-37°01΄04.418599˝ Lox +00΄12.870481˝ +396.7613
-37°07΄17.845554˝ N
D 149°00΄00.000000˝ 6358681.204
-37°07΄02.991484˝ Lox +00΄14.854070˝ +457.9177
-37°13΄15.555723˝ N
E 149°15΄00.000000˝ 6358788.089
-37°13΄01.089240˝ Lox +00΄14.466483˝ +459.9767
-37°19΄10.429372˝ N
F 149°30΄00.000000˝ 6358894.232
-37°18΄58.711427˝ Lox +00΄11.717945˝ +361.2501
-37°25΄02.476276˝ N
G 149°45΄00.000000˝ 6358999.632
-37°24΄55.857608˝ Lox +00΄06.618668˝ +204.0489
Wauka
-37°30΄18.067400˝ 149°58΄32.993200˝
1978

TABLE 1: Points where the Great Elliptic Arc cuts meridians of A, B, C, etc at 0°15΄ intervals of
longitude along Border Line. N = Normal Section, Lox = Loxodrome

Loxodrome on Ellipsoid.doc 13
>> help loxodrome_inverse

loxodrome_inverse: This function computes the inverse case for a


loxodrome on the reference ellipsoid. That is, given the latitudes and
longitudes of two points on the ellipsoid, compute the azimuth and the
arc length of the loxodrome on the surface.

>> loxodrome_inverse

=======================
Loxodrome: Inverse Case
=======================
Ellipsoid parameters
a = 6378137.0000
f = 1/298.257222101

Terminal points of curve


Latitude P1 = -36 47 49.223200 (D M S)
Longitude P1 = 148 11 48.333300 (D M S)

Latitude P2 = -37 30 18.067400 (D M S)


Longitude P2 = 149 58 32.993200 (D M S)

isometric lat P1 = -39 23 36.268670 (D M S)


isometric lat P2 = -40 16 40.540366 (D M S)

diff isometric lat P2-P1 = -0 53 4.271697 (D M S)


diff in longitude P2-P1 = 1 46 44.659900 (D M S)

meridian distance P1 = -4073983.614420


meridian distance P2 = -4152559.155874

diff in mdist P2-P1 = -78575.541454

Azimuth of loxodrome P1-P2


Az12 = 116 26 8.400701 (D M S)

loxodrome distance P1-P2


s = 176497.829952

>>

Loxodrome on Ellipsoid.doc 14
MATLAB function loxodrome_inverse.m

function loxodrome_inverse
%
% loxodrome_inverse: This function computes the inverse case for a
% loxodrome on the reference ellipsoid. That is, given the latitudes and
% longitudes of two points on the ellipsoid, compute the azimuth and the
% arc length of the loxodrome on the surface.

%--------------------------------------------------------------------------
% Function: loxodrome_inverse()
%
% Usage: loxodrome_inverse
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 5 October 2009
% Version 1.1 11 January 2010
%
% Purpose: This function computes the inverse case for a loxodrome on the
% reference ellipsoid. That is, given the latitudes and longitudes of
% two points on the ellipsoid, compute the azimuth and the arc length of
% the loxodrome on the surface.
%
% Functions required:
% [D,M,S] = DMS(DecDeg)
% isolat = isometric(flat,lat)
% mdist = meridian_dist(a,flat,lat)
%
% Variables:
% Az12 - azimuth of loxodrome P1-P2 (radians)
% a - semi-major axis of spheroid
% d2r - degree to radian conversion factor 57.29577951...
% disolat - difference in isometric latitudes (isolat2-isolat1)
% dlon - difference in longitudes (radian)
% dm - difference in meridian distances (dm = m2-m1)
% e - eccentricity of ellipsoid
% e2 - eccentricity of ellipsoid squared
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% isolat1 - isometric latitude of P1 (radians)
% isolat2 - isometric latitude of P2 (radians)
% lat1 - latitude of P1 (radians)
% lat2 - latitude of P2 (radians)
% lon1 - longitude of P1 (radians)
% lon2 - longitude of P2 (radians)
% lox_s - distance along loxodrome
% m1,m2 - meridian distances of P1 and P2 (metres)
% pion2 - pi/2
%
% Remarks:
%
% References:
% [1] Deakin, R.E., 2010, 'The Loxodrome on an Ellipsoid', Lecture Notes,
% School of Mathematical and Geospatial Sciences, RMIT University,
% January 2010
% [2] Bowring, B.R., 1985, 'The geometry of the loxodrome on the
% ellipsoid', The Canadian Surveyor, Vol. 39, No. 3, Autumn 1985,
% pp.223-230.
% [3] Snyder, J.P., 1987, Map Projections-A Working Manual. U.S.
% Geological Survey Professional Paper 1395. Washington, DC: U.S.
% Government Printing Office, pp.15-16 and pp. 44-45.
% [4] Thomas, P.D., 1952, Conformal Projections in Geodesy and
% Cartography, Special Publication No. 251, Coast and Geodetic
% Survey, U.S. Department of Commerce, Washington, DC: U.S.
% Government Printing Office, p. 66.

Loxodrome on Ellipsoid.doc 15
%
%--------------------------------------------------------------------------

% Degree to radian conversion factor


d2r = 180/pi;

% Set ellipsoid parameters


a = 6378137; % GRS80
flat = 298.257222101;

% Set lat and long of P1 and P2 on ellipsoid


lat1 = -(36 + 47/60 + 49.2232/3600)/d2r; % Spring
lon1 = (148 + 11/60 + 48.3333/3600)/d2r;
lat2 = -(37 + 30/60 + 18.0674/3600)/d2r; % Wauka 1978
lon2 = (149 + 58/60 + 32.9932/3600)/d2r;

% Compute isometric latitude of P1 and P2


isolat1 = isometric(flat,lat1);
isolat2 = isometric(flat,lat2);

% Compute changes in isometric latitude and longitude between P1 and P2


disolat = isolat2-isolat1;
dlon = lon2-lon1;

% Compute azimuth
Az12 = atan2(dlon,disolat);

% Compute distance along loxodromic curve


m1 = meridian_dist(a,flat,lat1);
m2 = meridian_dist(a,flat,lat2);
dm = m2-m1;
lox_s = dm/cos(Az12);

%-----------------------
% Print result to screen
%-----------------------
fprintf('\n=======================');
fprintf('\nLoxodrome: Inverse Case');
fprintf('\n=======================');
fprintf('\nEllipsoid parameters');
fprintf('\na = %12.4f',a);
fprintf('\nf = 1/%13.9f',flat);

fprintf('\n\nTerminal points of curve');


% Print lat and lon of Point 1
[D,M,S] = DMS(lat1*d2r);
if D == 0 && lat1 < 0
fprintf('\nLatitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLatitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon1*d2r);
if D == 0 && lon1 < 0
fprintf('\nLongitude P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nLongitude P1 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print lat and lon of point 2


[D,M,S] = DMS(lat2*d2r);
if D == 0 && lat1 < 0
fprintf('\n\nLatitude P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nLatitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(lon2*d2r);
if D == 0 && lon2 < 0
fprintf('\nLongitude P2 = -0 %2d %9.6f (D M S)',M,S);
else

Loxodrome on Ellipsoid.doc 16
fprintf('\nLongitude P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print isometric latitudes of P1 and P2


[D,M,S] = DMS(isolat1*d2r);
if D == 0 && isolat1 < 0
fprintf('\n\nisometric lat P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\n\nisometric lat P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(isolat2*d2r);
if D == 0 && isolat2 < 0
fprintf('\nisometric lat P2 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\nisometric lat P2 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print differences in isometric latitudes and longitudes


[D,M,S] = DMS(disolat*d2r);
if D == 0 && disolat < 0
fprintf('\n\ndiff isometric lat P2-P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ndiff isometric lat P2-P1 = %4d %2d %9.6f (D M S)',D,M,S);
end
[D,M,S] = DMS(dlon*d2r);
if D == 0 && dlon < 0
fprintf('\ndiff in longitude P2-P1 = -0 %2d %9.6f (D M S)',M,S);
else
fprintf('\ndiff in longitude P2-P1 = %4d %2d %9.6f (D M S)',D,M,S);
end

% Print meridian distances of P1 and P2


fprintf('\n\nmeridian distance P1 = %15.6f',m1);
fprintf('\nmeridian distance P2 = %15.6f',m2);
fprintf('\n\ndiff in mdist P2-P1 = %15.6f',dm);

% Print azimuth of loxodrome


fprintf('\n\nAzimuth of loxodrome P1-P2');
[D,M,S] = DMS(Az12*d2r);
fprintf('\nAz12 = %3d %2d %9.6f (D M S)',D,M,S);

% Print loxodrome distance P1-P2


fprintf('\n\nloxodrome distance P1-P2');
fprintf('\ns = %15.6f',lox_s);

fprintf('\n\n');

Loxodrome on Ellipsoid.doc 17
MATLAB function isometric.m

function isolat = isometric(flat,lat)


%
% isolat=isometric(flat,lat) Function computes the isometric latitude
% (isolat) of a point whose latitude (lat) is given on an ellipsoid whose
% denominator of flattening is flat.
% Latitude (lat) must be in radians and the returned value of isometric
% latitude (isolat) will also be in radians.
% Example: isolat = isometric(298.257222101,-0.659895044028705);
% should return isolat = -0.709660227088983 radians,
% equal to -40 39 37.9292417795658 (DMS) for latitude equal to
% -0.659895044028705 radians (-37 48 33.1234 (DMS)) on the GRS80
% ellipsoid.

%--------------------------------------------------------------------------
% Function: isometric(flat,lat)
%
% Syntax: isolat = isometric(flat,lat);
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 5 October 2009
%
% Purpose: Function computes the isometric latitude of a point whose
% latitude is given on an ellipsoid defined by semi-major axis (a) and
% denominator of flattening (flat).
%
% Return value: Function isometric() returns isolat (isometric latitude in
% radians)
%
% Variables:
% e - eccentricity of ellipsoid
% e2 - eccentricity-squared
% f - flattening of ellipsoid
% flat - denominator of flattening
%
% Remarks:
% Isometric latitude is an auxiliary latitude proportional to the spacing
% of parallels of latitude on an ellipsoidal Mercator projection.
%
% References:
% [1] Snyder, J.P., 1987, Map Projections-A Working Manual. U.S.
% Geological SurveyProfessional Paper 1395. Washington, DC: U.S.
% Government Printing Office, pp.15-16.
%
%
%--------------------------------------------------------------------------

% compute flattening f eccentricity squared e2


f = 1/flat;
e2 = f*(2-f);
e = sqrt(e2);

x = e*sin(lat);
y = (1-x)/(1+x);
z = pi/4 + lat/2;

% calculate the isometric latitude


isolat = log(tan(z)*(y^(e/2)));

Loxodrome on Ellipsoid.doc 18
MATLAB function meridian_dist.m

function mdist = meridian_dist(a,flat,lat)


%
% mdist = meridian_dist(a,flat,lat) Function computes the meridian distance
% on an ellipsoid defined by semi-major axis (a) and denominator of
% flattening (flat) from the equator to a point having latitude (lat) in
% radians.
% e.g. mdist = (6378137, 298.257222101, -0.659895044028705) will compute
% the meridian distance for a point having latitude -37 deg 48 min
% 33.1234 sec on the GRS80 ellipsoid (a = 6378137, f = 1/298.257222101).

%--------------------------------------------------------------------------
% Function: meridian_dist()
%
% Usage: mdist = meridian_dist(a,flat,lat)
%
% Author: R.E.Deakin,
% School of Mathematical & Geospatial Sciences, RMIT University
% GPO Box 2476V, MELBOURNE, VIC 3001, AUSTRALIA.
% email: [email protected]
% Version 1.0 5 October 2009
%
% Purpose: Function computes the meridian distance
% on an ellipsoid defined by semi-major axis (a) and denominator of
% flattening (flat) from the equator to a point having latitude (lat) in
% radians.
%
% Functions required:
%
% Variables: a - semi-major axis of spheroid
% A,B,C... - coefficients
% e2 - eccentricity squared
% e4,e6,... - powers of e2
% f - f = 1/flat is the flattening of ellipsoid
% flat - denominator of flattening of ellipsoid
% mdist - meridian distance
%
% Remarks: The formulae used are given in Baeschlin, C.F., 1948,
% "Lehrbuch Der Geodasie", Orell Fussli Verlag, Zurich, pp.47-50.
% See also Deakin, R. E. and Hunter M. N., 2008, "Geometric
% Geodesy - Part A", Lecture Notes, School of Mathematical and
% geospatial Sciences, RMIT University, March 2008, pp. 60-65.
%
%--------------------------------------------------------------------------

% compute eccentricity squared


f = 1/flat;
e2 = f*(2-f);

% powers of eccentricity
e4 = e2*e2;
e6 = e4*e2;
e8 = e6*e2;
e10 = e8*e2;

% coefficients of series expansion for meridian distance


A = 1+(3/4)*e2+(45/64)*e4+(175/256)*e6+(11025/16384)*e8+(43659/65536)*e10;
B = (3/4)*e2+(15/16)*e4+(525/512)*e6+(2205/2048)*e8+(72765/65536)*e10;
C = (15/64)*e4+(105/256)*e6+(2205/4096)*e8+(10395/16384)*e10;
D = (35/512)*e6+(315/2048)*e8+(31185/131072)*e10;
E = (315/16384)*e8+(3465/65536)*e10;
F = (693/131072)*e10;

term1 = A*lat;
term2 = (B/2)*sin(2*lat);
term3 = (C/4)*sin(4*lat);
term4 = (D/6)*sin(6*lat);

Loxodrome on Ellipsoid.doc 19
term5 = (E/8)*sin(8*lat);
term6 = (F/10)*sin(10*lat);

mdist = a*(1-e2)*(term1-term2+term3-term4+term5-term6);

MATLAB function DMS.m

function [D,M,S] = DMS(DecDeg)


% [D,M,S] = DMS(DecDeg) This function takes an angle in decimal degrees and returns
% Degrees, Minutes and Seconds

val = abs(DecDeg);
D = fix(val);
M = fix((val-D)*60);
S = (val-D-M/60)*3600;
if(DecDeg<0)
D = -D;
end
return

REFERENCES

Bowring, B. R., (1985), 'The Geometry of the Loxodrome on the Ellipsoid', The Canadian
Surveyor, Vol. 39, No. 3, Autumn 1985, pp. 223-230.
Bomford, G., (1980), Geodesy, 4th edition, Clarendon Press, Oxford.
Deakin, R. E. and Hunter, M. N., (2008), 'Geometric Geodesy - Part A', Lecture Notes,
School of Mathematical & Geospatial Sciences, RMIT University, Melbourne,
Australia, March 2008, 140 pages.
Lauf, G. B., (1983), Geodesy and Map Projections, TAFE Publications Unit, Collingwood,
Vic, Australia.
Thomas, P. D., (1952), Conformal Projections in Geodesy and Cartography, Special
Publication No. 251, Coast and Geodetic Survey, United States Department of
Commerce, Washington, D.C.

Loxodrome on Ellipsoid.doc 20

You might also like