Z
N
GEOMETRIC
λ
Gre
enw
ich
GEODESY
b
PART B Q •
a
O•
φ
H•
equator
R.E. DEAKIN and M.N. HUNTER
School of Mathematical and Geospatial Sciences
RMIT University
Melbourne, AUSTRALIA
January 2010
P
•
a
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
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
19
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
arXiv:0908.1824v1 [physics.comp-ph] 13 Aug 2009
(Originally published: October 1825; translated: August 13, 2009)
1. INTRODUCTION
Consider a geodesic line between two points A and B on
the surface of the Earth. Given the position of A, the length of
the line and its azimuth at A, we wish to determine the position of B and the azimuth of the line there. This problem occurs so frequently that I undertook to construct tables to simplify the computation. In order to explain the method clearly, I
start by deriving the fundamental properties of geodesic lines
on a spheroid of revolution. Even though aspects of this
derivation may already be well known, the benefit of having
the entire development presented together outweighs the cost
of repeating it.1
2. THE CHARACTERISTIC EQUATION FOR A GEODESIC
Take two points A and B on the surface on a spheroid2
of revolution joined by some specified curve. Consider two
neighboring points on the curve with latitudes φ and φ + dφ
and longitudes relative to A of w and w + dw (measuring east
positive). Let the distance between them be ds, the azimuth of
line directed toward A be α (measured clockwise from north),
∗ This is an English translation of Über die Berechnung der geographischen
Längen und Breiten aus geodätischen Vermessungen, Astronomische Nachrichten 4(86), 241–254 (1826), doi:10.1002/asna.18260041601. The paper
also appears in Abhandlungen von Friedrich Wilhelm Bessel, Vol. 3, pp. 5–
14 (W. Engelmann, Leipzig, 1876). The translation has been prepared and
edited by Charles F. F. Karney hckarney@sarnoff.comi and Rodney E. Deakin
hrod.deakin@rmit.edu.aui, with the assistance of Max Hunter and Stephan
Brunner. The mathematical notation has been updated to conform to current conventions and, in a few places, the equations have been rearranged
for clarity. Several errors have been corrected, a figure has been included,
and the tables have been recomputed. A transcription of the original paper
with the updated mathematical notation and with the corrections is available
at arXiv:0908.1823. A contemporary, but partial, translation into English appeared in Quart. Jour. Roy. Inst. 21(41), 138–152 (1826).
1 In Secs. 2–4, Bessel gives a concise summary of the work of several other
authors, notably, Clairaut, du Séjour, Legendre, and Oriani. Bessel’s contributions, which start in Sec. 5, consist of his methods for expanding the
distance and longitude integrals and his compilation of tables to provide a
practical method for computing geodesics. Two sentences have been omitted 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 criticizes ”du Séjour’s method,” but without providing details; in any case, such
criticism is misplaced because du Séjour had died over 30 years earlier and
Bessel does not cite more recent work.
2 “Spheroid” here is used in the sense of a shape approximating a sphere.
Sections 2 and 3 treat the case of a rotationally symmetric earth. In Sec. 4,
Bessel specializes to a rotationally symmetric ellipsoid.
the radius of the circle of latitude be r, and the meridional
radius of curvature by R; then we find3
ds cos α = −R dφ =
dr
,
sin φ
(1)
ds sin α = −r dw,
which gives
p
R2 dφ2 + r2 dw2 .
p
If we write p for dφ/dw and U for R2 p2 + r2 , this becomes
ds =
ds = U dw.
The distance along the curve between the two points A and B
is therefore
Z
s = U dw,
where the integration is from A to B. If the curve is the
geodesic or shortest path, then the relation between φ and w
must be such that the integral is a minimum. If we perturb this
relation so that φ is replaced by φ + z where z is an arbitrary
function of w which vanishes at the end points (because these
points lie on both curves), then the perturbed length,
Z
s′ = U ′ dw,
must be larger than s for all z.
Expanding U (φ, p) in a Taylor series, we obtain4
U′ = U +
∂U
∂U dz
z+
+ ...
∂φ
∂p dw
and therefore we have
Z
∂U dz
∂U
dw + . . . ,
z+
s′ = s +
∂φ
∂p dw
where we have explicitly included terms only up to first order
in z. For s to be a minimum, we require that
Z
∂U
∂U dz
dw + . . . ≥ 0
z+
∂φ
∂p dw
3
4
The minus signs appear in (1) because α is the back azimuth, pointing to
A, while ds advances the geodesic away from A. In this section, Bessel
assumes an easterly geodesic so that ds/dw > 0. However the final result,
Eq. (2), is general.
The notation here employs partial derivatives instead of Bessel’s less formal use of differentials.
2
for all z. Since this must also hold if z is replaced by −z
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
minimum is
Z
∂U
∂U dz
dw = 0.
z+
∂φ
∂p dw
RIntegrating the second term by parts to give z(∂U /∂p) −
z[d(∂U /∂p)/dw] dw and remembering that z vanishes at
the end points, we obtain
Z
∂U
d ∂U
dw = 0.
z
−
∂φ
dw ∂p
Since this integral must vanish for arbitrary z, we find5
∂U
d ∂U
=0
−
∂φ
dw ∂p
ω
90°
360° − α
α′
A
m
M
E
N
B
σ
u
u′
F
G
Figure 1 Spherical triangles on the auxiliary sphere. EAB is the
geodesic, N is the pole; EF G is the equator; and NE, NAF , and
NBG are meridians.
and equation (2) becomes
or, multiplying by dφ/dw = p,
cos u′ sin α′ = − cos u sin α.
∂U dp
dp ∂U
d ∂U
∂U dφ
= 0,
+
−
−p
∂φ 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 α′ .
The third side σ and its opposite angle ω will appear in the
following calculations giving elegant expressions for the joint
variations of s, u and w. In particular, using the well known
differential formulas of spherical trigonometry, we find10
which on integrating with respect to w becomes6
dU
U −p
= const.
dp
p
Substituting r2 + R2 p2 for U , we obtain7
du = − cos α dσ,
cos u dω = − sin α dσ.
r
p
= −r sin α = const.,
1 + (R2 /r2 )p2
which is the well known characteristic equation of the geodesic.
If the azimuth of the geodesic at A (in the direction of B) is
α′ and the distance of A from the rotation axis is r′ , we have
Substituting these in equations (1) and expressing r in terms
of u gives
sin u
dσ,
sin φ
sin u
dω.
dw =
sin φ
ds = a
r′ sin(α′ + 180◦ ) = r sin α,
or
r′ sin α′ = −r sin α.
Let the maximum distance of the spheroid to the rotation
axis be a, so that r and r′ are less than or equal to a; we can
then write8
r = a cos u,
4. THE EQUATIONS FOR A GEODESIC ON AN ELLIPSOID
I now assume that the meridian is an ellipse with equatorial
semi-axis a, polar semi-axis b, and eccentricity e =
√
a2 − b2 /a.11 The equation for an ellipse expressed in terms
9
10
5
6
7
8
(4)
(2)
3. THE AUXILIARY SPHERE
r′ = a cos u′ ,
(3)
11
This is the Euler-Lagrange equation of the calculus of variations.
This is now known as the Beltrami identity.
A. C. Clairaut gives a geometric derivation of this result in Mém. de
l’Acad. Roy. des Sciences de Paris, 1733, 406–416 (1735). The equation
also follows from conservation of angular momentum for a mass sliding
without friction on a spheroid of revolution.
The quantity u is the reduced or parametric latitude.
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.
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.
In Bessel’s time, it was known that the earth could be approximated by an
oblate ellipsoid, a > b, but the eccentricity had not been determined accurately. Therefore, Bessel computes tables which are applicable to oblate
ellipsoids with a range of eccentricities. However, the series expansions
that Bessel obtains, (11) and (12), can also to applied to prolate ellipsoids,
a < b, by allowing e2 < 0.
3
of cartesian coordinates is
y2
x2
+ 2 = 1.
2
a
b
Differentiating this and setting dy/dx = − cot φ, we obtain
x sin φ y cos φ
−
= 0;
a2
b2
eliminating y between these equations then gives
Equations (6) then become14
sin u = cos m sin(M + σ),
cos u cos α = − cos m cos(M + σ),
cos u sin α = − sin m.
This gives
cos2 u = 1 − cos2 m sin2 (M + σ),
a cos φ
.
x= p
1 − e2 sin2 φ
The quantity x is the same as r = a cos u, which gives the
relationships between φ and u,
√
cos φ
cos u 1 − e2
√
,
cos u = p
,
cos
φ
=
1 − e2 cos2 u
1 − e2 sin2 φ
√
sin u
sin φ 1 − e2
,
sin φ = √
sin u = p
,
2
1 − e2 cos2 u
1 − e2 sin φ
p
tan u
,
tan φ = √
tan u = tan φ 1 − e2 ,
1 − e2
and
sin u p
= 1 − e2 cos2 u.
sin φ
Substituting this into (4), we obtain the differential equations
for a geodesic on an ellipsoid
p
ds = a 1 − e2 cos2 u dσ,
(5)
p
dw = 1 − e2 cos2 u dω.
and the equation for ds becomes
q
p
ds = a 1 − e2 1 + k 2 sin2 (M + σ) dσ,
To integrate the first of these differential equations, I use
the three relations between u′ , u, α′ , α and σ,12
e cos m
k= √
.
1 − e2
This differential equation may be integrated in terms of the
elliptic integrals introduced by Legendre.15 Because the tools
to compute these special functions are not yet sufficiently versatile,16 we instead develop a series solution which converges
rapidly because e2 is so small. We readily achieve this by decomposing the term under the square root into two complex
factors, namely17
√
1 − e2
ds = a
dσ×
1−ǫ
q
q
1 − ǫ exp 2i(M + σ) 1 − ǫ exp −2i(M + σ) ,
where
√
1 + k2 − 1
,
ǫ= √
1 + k2 + 1
14
15
16
17
12
13
Referring to Fig. 1, consider two central cartesian coordinate systems with
the xy plane containing the geodesic EAB, and either A or B lying on
the x axis. Equations (6) give the transformation between the coordinates of N in the two systems, [sin u′ , cos u′ cos α′ , cos u′ sin α′ ] and
[sin u, − cos u cos α, − cos u sin α], namely a rotation by σ about the z
axis.
The auxiliary angles m and M are an angle and a side of the spherical
triangle EAN shown in Fig. 1. Equations (7) are the sine rule on angles E
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.
√
2 ǫ
.
1−ǫ
√
1 − e2
ds = a
dσ A − 2B cos 2(M + σ)
1−ǫ
− 2C cos 4(M + σ) − 2D cos 6(M + σ) − . . . ,
(6)
(7)
k=
Expanding the two factors in the radicals in infinite series and
multiplying the results gives18
It is convenient to write these in terms of the auxiliary angles
m and M defined by13
sin u′ = cos m sin M,
cos u′ cos α′ = cos m cos M,
cos u′ sin α′ = sin m.
(9)
where
5. THE DISTANCE INTEGRAL
sin u = sin u′ cos σ + cos u′ cos α′ sin σ,
− cos u cos α = − sin u′ sin σ + cos u′ cos α′ cos σ,
− cos u sin α = cos u′ sin α′ .
(8)
18
These are analogs of Eqs. (7) with meridian NAF replaced by NBG.
A. M. Legendre, Exercices du calcul intégral, Vol. 1 (Courcier, Paris,
1811).
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.
The notation has been simplified here compared to Bessel’s original formulation in which k and ǫ are expressed in terms of E through k = tan E
and ǫ = tan2 12 E. By using ǫ as the expansion parameter and by dividing
out the factor 1 − ǫ, Bessel has ensured that the terms that he is expanding
are invariant under the transformation ǫ → −ǫ, M +σ → π/2−(M +σ).
This symmetry causes half the terms in the expansions in ǫ to vanish.
The use of complex exponentials facilitates the series expansions by avoiding
awkward trigonometric identities. IfP
we write
√ the need to 1employ
1·1 2
1 − x = 1 − 2 x − 2·4
x − 1·1·3
x3 − 1·1·3·5
x4 − . . . = j aj xj ,
2·4·6
2·4·6·8
`
´
then the coefficient of cos 2l(M + σ) ǫl+2j is a2j for l = 0 and 2aj aj+l
for l > 0.
4
where A, B, C, . . . are given by
2
2
2
1·1
1·1·3
1
ǫ2 +
ǫ4 +
ǫ6 + . . . ,
A=1+
2
2·4
2·4·6
1
1·1 1 3 1·1·3 1·1 5
B = ǫ−
ǫ −
ǫ
2
2·4 2
2·4·6 2·4
1·1·3·5 1·1·3 7
ǫ − ...,
−
2·4·6·8 2·4·6
1·1 2 1·1·3 1 4 1·1·3·5 1·1 6
C=
ǫ −
ǫ −
ǫ
2·4
2·4·6 2
2·4·6·8 2·4
1·1·3·5·7 1·1·3 8
ǫ − ...,
−
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
D=
ǫ −
ǫ −
ǫ
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
ǫ − ...,
−
2·4·6·8·10·12 2·4·6
etc.
Integrating the equation for ds starting at σ = 0, we obtain
b
s=
Aσ − 21 B cos(2M + σ) sin σ
1−ǫ
− 22 C cos(4M + 2σ) sin 2σ
− 23 D cos(6M + 3σ) sin 3σ
− ... .
(10)
6. SOLVING THE DISTANCE EQUATION
The series (10) gives the distance s between A and B in
terms of u′ , α′ , and σ; if, however, s and α′ have been
measured and u′ is known from the latitude at A, then σ
is obtained by solving (10). The latitude of B and the azimuth of the geodesic there are found from (8). Equation (10)
can be solved either by reverting the series or by successive
approximation—the latter way is however the simplest if the
tables I have compiled are used.
I write19
α
σ = s+ β cos(2M + σ) sin σ + γ cos(4M + 2σ) sin 2σ
b
+ δ cos(6M + 3σ) sin 3σ + . . . , (11)
The tables give the logarithms20 of α, β, and γ as a function
of the argument
e cos m
.
log k = log √
1 − e2
By this choice, the variation of log β and log γ are very close
to two and four times that of the argument, which simplifies
interpolation into the table.21
We take αs/b as the first approximation of σ, substitute this
into the second term to obtain a second approximation, with
which we recalculate the second term and add the third. The
convergence of the series is sufficiently fast that, even if the
argument is 1̄.1 (which is only possible if the flattening of
1
the ellipsoid, 1 − b/a, exceeds 128
), the approximation never
needs to be carried further in order to keep the errors in σ
under 0.001′′. The term involving δ does not exceed 0.0005′′
at this value of the argument.
7. ACCURACY OF THE TABLES
The values of log α in the table are given to 8 decimal
places.22 An error of half a unit of the last place results in
an error of only 0.0005′′ or 0.008 toise over a distance corresponding to σ = 12◦ 4′ or 700 000 toises.23 Similarly, I retain
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
values of the argument. The third term never exceeds 0.17′′ ,
even at the end of the table; therefore I include only 3 decimal
places for log γ. Thus the errors are 0.001′′ for distances up to
700 000 toises; even if the distance is of the order of a quarter
meridian (i.e., σ = 90◦ ), the error is less than 0.01′′ .
8. AN EXAMPLE
In order to illustrate the use of the tables, I consider the
results from the great survey by von Müffling.24 Relative to
20
where
648 000
π
648 000
β=
π
648 000
γ=
π
648 000
δ=
π
etc.
α=
1−ǫ
,
A
2B
,
A
C
,
A
2D
,
3A
21
22
19
The units for σ, α, β, . . . are arc seconds. Bessel here adopts a conflicting notation for the coefficient α which should not be confused with the
azimuth.
23
24
In this paper, log x denotes the common logarithm (base 10) and we use
colog x = log(1/x). The tables in the original paper contained a number
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′′ .
In addition, there were systematic errors in the tabulated values of log β
equivalent to a relative error of order ǫ2 in β which result in discrepancies
from 1 to 17 units in the last place on the final page (the 6-figure portion)
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 =
(−2) + 0.3. In the original paper, logarithms are written modulo 10, e.g.,
log 0.02 ≈ 8.3. The notation “(−)” in these calculations indicates that the
quantity whose logarithm is being taken is negative.
The columns headed ∆ give the first differences of the immediately preceding columns and aid in interpolating the data. Bessel would have used
a table of “proportional parts” to compute the interpolated values.
Working with 8-figure logarithms provides about 2 bits more precision than
IEEE single precision floating point numbers.
The toise was a French unit of length. It can be converted to meters by
1 toise = 864 ligne, 443.296 ligne = 1 m, or 1 toise ≈ 1.949 m.
F. K. F. von Müffling, Astron. Nachr. 2(27), 33–38 (1824).
5
Seeberg (point A), the distance and azimuth to Dunkirk (point
B) are25
log s = 5.478 303 14,
α′ = 274◦ 21′ 3.18′′ .
I assume the latitude of the Observatory at Seeberg to be
φ′ = 50◦ 56′ 6.7′′ and the ellipsoid parameters to be log b =
6.513 354 64, log e√= 2̄.905 4355.26
From tan u′ = 1 − e2 tan φ′ , we find
log tan φ′ = 0.090 626 65
p
log 1 − e2 = 1̄.998 590 60
log tan u′ = 0.089 217 25;
u′ = 50◦ 50′ 39.057′′.
Given u′ and α′ , we can compute M , cos m and sin m from
equations (7):27
log sin u′
log cos u′
log cos α′
log sin α′
= 1̄.889 543 51
= 1̄.800 326 27
= 2̄.880 037 33
= 1̄.998 746 62(−)
log(cos m sin M ) = 1̄.889 543 51
log(cos m cos M ) = 2̄.680 363 60
log sin m = 1̄.799 072 89(−)
M = 86◦ 27′ 53.949′′; 2M = 172◦ 55′ 47.9′′
log cos m = 1̄.890 370 63
4M = 345◦ 51′ 36′′ .
√
The argument in the tables, log (e/ 1 − e2 ) cos m , is
e
= 2̄.906 845
log √
1 − e2
log cos m = 1̄.890 371
Argument = 2̄.797 216.
Looking up log α in the tables, and calculating αs/b gives28
log α = 5.313 998 92
colog b = 7̄.486 645 36
log s = 5.478 303 14
αs
= 4.278 947 42;
log
b
25
26
27
28
α
s = 5◦ 16′ 48.481′′.
b
Seeberg: 50◦ 56′ N 10◦ 44′ E; Dunkirk: 51◦ 2′ N 2◦ 23′ E.
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
second as the unit of arc.
Bessel solves 3 equations (7) for 2 unknowns M and m. The redundancy
serves as a check for the hand calculation and can also improve the accuracy of the calculation, for example, in the case where sin m ≈ 1.
It is necessary to use second differences when interpolating in the table for
log α. The argument, 2̄.797 216, lies q = 0.7216 of the way between
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.
Adopting this as the first approximation to the value of σ, we
obtain the second by adding the first term in the series (11),
log β = 2.305 94
log cos(2M + σ) = 1̄.999 79(−)
log sin σ = 2̄.963 91
1.269 64(−) = −18.61′′.
We now update the value of this term with the second approximation of σ = 5◦ 16′ 48.5′′ − 18.6′′ = 5◦ 16′ 29.9′′ and so
obtain as the third approximation:
log β = 2.305 94
log cos(2M + σ) = 1̄.999 79(−)
log sin σ = 2̄.963 48
1.269 21(−) = −18.587′′,
log γ = 2̄.394
log cos(4M + 2σ) = 1̄.999
log sin 2σ = 1̄.263
3̄.656 = +0.005′′.
Gathering the terms in (11) gives σ = 5◦ 16′ 48.481′′ −
18.587′′ + 0.005′′ = 5◦ 16′ 29.899′′ and so, finally, we determine α, u and φ from equations (8),
M + σ = 91◦ 44′ 23.848′′
log sin(M + σ) = 1̄.999 799 71
log − cos(M + σ) = 2̄.482 349 32
log cos m = 1̄.890 370 63
log(− sin m) = 1̄.799 072 89
log sin u = 1̄.890 170 34
log(cos u cos α) = 2̄.372 719 95
log(cos u sin α) = 1̄.799 072 89
log cot α = 2̄.573 647 06;
log cos u = 1̄.799 377 50
log tan u = 0.090 792 84
p
colog 1 − e2 = 0.001 409 40
log tan φ = 0.092 202 24;
α = 87◦ 51′ 15.523′′
φ = 51◦ 2′ 12.719′′.
In this example, I carried out the trigonometric calculations to
8 decimals; however the tables of log α, log β, and log γ in
fact allow α and φ to be determined slightly more accurately
than this. If only standard 7-figure logarithm tables are available, the last digits in the tabulated values of log α, log β, and
log γ may be neglected.
6
9. THE LONGITUDE INTEGRAL
We turn now to the determination of the longitude difference w by integrating (5),
p
dw = 1 − e2 cos2 u dω.
This integral contains two separate constants m and e, which
cannot be combined. Thus it not possible to construct tables to
allow a rigorous solution of this problem which are valid for
arbitrary e.29 However, we can achieve our goal by sacrificing
strict rigor and by making an approximation which results in
errors which are inconsequential in our application.
We start by writing
p
dw = dω − 1 − 1 − e2 cos2 u dω,
and substitute in the second term
dω =
sin α′ cos u′
dσ.
cos2 u
From this, we see that neglecting y results in an error of or1 8
der e8 or an error in w of 384
e σ. This would not be discernible even in the calculation of long geodesics to 10 decimal places.30
Thus, for the present purposes, we may take y ≈ 0 enabling
us to tabulate the integral in a way that is valid for all e.
10. SERIES EXPANSION FOR LONGITUDE
Introducing this approximation, we have
Z
dσ
e2
q
sin m
w≈ω−
2
3 2
3
1 − 4 e cos2 u
Z
dσ
e2
=ω−
sin m q
.
2
3
3 2
3 2
1 − 4 e + 4 e cos2 m sin2 (M + σ)
If we set
√3
e cos m
,
k ′ = p4
1 − 34 e2
On integrating, we obtain
′
w = ω − sin α cos u
′
Z
1−
√
1 − e2 cos2 u
dσ.
cos2 u
Let us write
√
1 − 1 − e2 cos2 u
e2
=
(1 + e2 p cos2 u)q (1 + y);
cos2 u
2
in other words, we set
√
2(1 − 1 − e2 cos2 u)
e2 cos2 u(1 + e2 p cos2 u)q
1 + 41 e2 cos2 u + 81 e4 cos4 u +
1+y =
=
1+
5 6
6
64 e cos u + . . .
!.
2 4
4
qpe2 cos2 u + q(q−1)
1·2 p e cos u
+ q(q−1)(q−2)
p3 e6 cos6 u + . . .
1·2·3
The first three terms in the denominator and in the numerator
are equal, provided that
p=
− 34 ,
q=
1 + 41 e2 cos2 u + 81 e4 cos4 u +
1+y =
1 + 14 e2 cos2 u + 81 e4 cos4 u +
6
1 6
192 e cos
Following the same procedure used in expanding the integral
for ds in Sec. 5, we introduce ǫ′ defined by31
√
√
2 ǫ′
1 + k ′2 − 1
, k′ =
,
ǫ′ = √
1 − ǫ′
1 + k ′2 + 1
and separate the integrand into two complex factors,
q
3
Z
(1 − ǫ′ )2 / 1 − 43 e2 dσ
q
q
.
3
1 − ǫ′ exp 2i(M + σ) 3 1 − ǫ′ exp −2i(M + σ)
If we expand these in infinite series, the product becomes32
− 31 ,
2
which gives
=1+
we can express the integral in the second term as
Z
dσ
q
.
q
3 2 3
3
1 − 4e
1 + k ′2 sin2 (M + σ)
5 6
64 e
7 6
96 e
cos6 u + . . .
cos6 u + . . .
p
3
+ 3δ ′ cos 6(M + σ) + . . . dσ,
u + ...
30
31
29
1 − 34 e2
Z
α′ + β ′ cos 2(M + σ) + 2γ ′ cos 4(M + σ)
As a practical matter, it would have been impossible for Bessel to provide
a complete tabulation of a function of two parameters. He could have tabulated the function for a fixed value of e, which would greatly reduced
the utility of his method, especially given the uncertainties in the measurements of e. Instead, Bessel manipulates the expression for dw to move
the dependence on the second parameter into a small term that may be
neglected.
32
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′′ .
Bessel gives the relationship between k ′ and ǫ′ in terms of E ′ , where k ′ =
tan E ′ and ǫ′ = tan2 12 E ′ .
There are a series of errors in the original paper leading up to (12). Here
we assume that the original Eq. (12) defines α′ , β ′ , γ ′ , . . . , which makes
this equation analogous to (11), and correct the preceding equations to be
consistent.
7
where33
2
2
p
1
1·4
′
′2
′4
1 3
′
2
α = 2 (1 − ǫ ) 1 +
ǫ +
ǫ + ... ,
3
3·6
p
1 ′ 1·4 1 ′3 1·4·7 1·4 ′5
′
1 3
′
2
β = 1 (1 − ǫ )
ǫ +
ǫ +
ǫ + ... ,
3
3·6 3
3·6·9 3·6
p
1·4 ′2 1·4·7 1 ′4
ǫ +
ǫ
γ ′ = 21 3 (1 − ǫ′ )2
3·6
3·6·9 3
1·4·7·10 1·4 ′6
+
ǫ + ... ,
3·6·9·12 3·6
p
1·4·7 ′3 1·4·7·10 1 ′5
ǫ +
ǫ
δ ′ = 13 3 (1 − ǫ′ )2
3·6·9
3·6·9·12 3
1·4·7·10·13 1·4 ′7
ǫ + ... ,
+
3·6·9·12·15 3·6
etc.
Integrating from σ = 0 then gives
and evaluate w by means of the tables.
I will continue with the example in Sec. 8 and calculate the
longitude difference between Dunkirk and Seeberg using this
prescription. Solving the spherical triangle for ω gives
log sin σ = 2̄.963 483 83
log(− sin α) = 1̄.999 695 39(−)
colog cos u′ = 0.199 673 73
log sin ω = 1̄.162 852 95(−); ω = −8◦ 21′ 57.741′′.
The argument
p for the last two columns of the tables is
√
log ( 34 e/ 1 − 43 e2 ) cos m , giving
√3
e
= 2̄.844 022
log p 4
1 − 34 e2
log cos m = 1̄.890 371
Argument = 2̄.734 393.
Computing the terms in the series (12) gives
2
e sin m ′
w≈ω− p
α σ + β ′ cos(2M + σ) sin σ
3
1 − 34 e2
log α′ = 1̄.698 758
log(− sin m) = 1̄.799 073
+ γ ′ cos(4M + 2σ) sin 2σ
+ δ ′ cos(6M + 3σ) sin 3σ + . . . .
e2
log p
= 3̄.811 575
3
1 − 34 e2
(12)
log σ = 4.278 523
1.587 929 = +38.719′′,
11. COMPUTING THE LONGITUDE DIFFERENCE
The first two coefficients of this series are given in the 4th
and 5th columns of the tables34 as functions of the argument
√3
4e
′
log k = log p
cos m .
1 − 34 e2
The convergence is commensurate with the 3 first columns
of the tables. We calculate ω using one of the formulas for
spherical triangles (Sec. 3), either35
sin ω =
sin σ sin m
− sin σ sin α
sin σ sin α′
=
,
=
′
cos u
cos u
cos u cos u′
and
log β ′ = 1.703
log(− sin m) = 1̄.799
e2
= 3̄.812
1 − 34 e2
log cos(2M + σ) sin σ = 2̄.963(−)
log p
3
2̄.277(−) = −0.019′′.
The sum of both terms is +38.700′′, and adding this to ω, we
find the longitude difference,
w = −8◦ 21′ 19.041′′.
or36
33
34
35
36
tan 12 ω =
sin 21 (u′ − u)
cot 21 (α′ + α)
cos 12 (u′ + u)
=
cos 21 (u′ − u)
cot 21 (α′ − α).
sin 12 (u′ + u)
1·4 2
See footnote 18 and set (1 − x)−1/3 = 1 + 31 x + 3·6
x + 1·4·7
x3 +
3·6·9
1·4·7·10 4
x
+
.
.
.
3·6·9·12
The value of β ′ in the tables includes the factor of 648 000/π necessary to
convert from radians to arc seconds.
The first two relations are the sine rule for angle N of triangle ABN of
Fig. 1. The last relation is obtained, for example, by substituting for sin α′
from (7).
These are Napier’s analogies for angle N of triangle ABN .
12. CONCLUSION
This illustration of the use of these tables shows that the
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
account for the earth’s ellipticity one needs, in addition, only
to solve equation (11) and to evaluate the series (12). Since
this approach is sufficiently convenient even for routine use,
it is unnecessary to use an approximate method which is valid
only for small distances.
(The tables are shown on the following pages.)
8
TABLES for computing geodesics 1.
−∆
log β ′
∆
1̄.698 970
0
3̄.035
200
2000
2000
2000
2000
2000
1̄.698 970
1̄.698 970
1̄.698 970
1̄.698 970
1̄.698 970
0
0
0
0
0
3̄.235
3̄.435
3̄.635
3̄.835
2̄.035
200
200
200
200
200
2̄.7124
2̄.9124
1̄.1124
1̄.3124
1̄.5124
2000
2000
2000
2000
2000
1̄.698 970
1̄.698 970
1̄.698 970
1̄.698 970
1̄.698 970
0
0
0
0
1
2̄.235
2̄.435
2̄.635
2̄.835
1̄.035
200
200
200
200
200
5
6
5
6
6
1̄.7124
1̄.7324
1̄.7524
1̄.7724
1̄.7924
200
200
200
200
200
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
0
0
0
0
0
1̄.235
1̄.255
1̄.275
1̄.295
1̄.315
20
20
20
20
20
5.314 423 77
5.314 423 70
5.314 423 63
5.314 423 56
5.314 423 49
7
7
7
7
8
1̄.8124
1̄.8324
1̄.8524
1̄.8724
1̄.8924
200
200
200
200
200
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
0
0
0
0
0
1̄.335
1̄.355
1̄.375
1̄.395
1̄.415
20
20
20
20
20
3̄.60
3̄.61
3̄.62
3̄.63
3̄.64
5.314 423 41
5.314 423 33
5.314 423 25
5.314 423 16
5.314 423 06
8
8
9
10
9
1̄.9124
1̄.9324
1̄.9524
1̄.9724
1̄.9924
200
200
200
200
200
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
1̄.698 969
0
0
0
0
0
1̄.435
1̄.455
1̄.475
1̄.495
1̄.515
20
20
20
20
20
3̄.65
3̄.66
3̄.67
3̄.68
3̄.69
5.314 422 97
5.314 422 86
5.314 422 76
5.314 422 65
5.314 422 53
11
10
11
12
12
0.0124
0.0324
0.0524
0.0724
0.0924
200
200
200
200
200
1̄.698 969
1̄.698 968
1̄.698 968
1̄.698 968
1̄.698 968
1
0
0
0
0
1̄.535
1̄.555
1̄.575
1̄.595
1̄.615
20
20
20
20
20
3̄.70
3̄.71
3̄.72
3̄.73
3̄.74
5.314 422 41
5.314 422 28
5.314 422 14
5.314 422 00
5.314 421 85
13
14
14
15
15
0.1124
0.1324
0.1524
0.1724
0.1924
200
200
200
200
200
1̄.698 968
1̄.698 968
1̄.698 968
1̄.698 968
1̄.698 968
0
0
0
0
0
1̄.635
1̄.655
1̄.675
1̄.695
1̄.715
20
20
20
20
20
3̄.75
3̄.76
3̄.77
3̄.78
3̄.79
5.314 421 70
5.314 421 54
5.314 421 37
5.314 421 19
5.314 421 01
16
17
18
18
20
0.2124
0.2324
0.2524
0.2724
0.2924
200
200
200
200
200
1̄.698 968
1̄.698 968
1̄.698 967
1̄.698 967
1̄.698 967
0
1
0
0
0
1̄.735
1̄.755
1̄.775
1̄.795
1̄.815
20
20
20
20
20
3̄.80
3̄.81
3̄.82
3̄.83
3̄.84
5.314 420 81
5.314 420 61
5.314 420 39
5.314 420 17
5.314 419 94
20
22
22
23
25
0.3124
0.3324
0.3524
0.3724
0.3924
200
200
200
200
200
1̄.698 967
1̄.698 967
1̄.698 967
1̄.698 967
1̄.698 967
0
0
0
0
1
1̄.835
1̄.855
1̄.875
1̄.895
1̄.915
20
20
20
20
20
3̄.85
3̄.86
3̄.87
3̄.88
3̄.89
5.314 419 69
5.314 419 44
5.314 419 17
5.314 418 89
5.314 418 59
25
27
28
30
31
0.4124
0.4324
0.4524
0.4724
0.4924
200
200
200
200
200
1̄.698 966
1̄.698 966
1̄.698 966
1̄.698 966
1̄.698 966
0
0
0
0
1
1̄.935
1̄.955
1̄.975
1̄.995
0.015
20
20
20
20
20
3̄.90
5.314 418 28
Arg
log α
4̄.4
5.314 425 13
1
3̄.5124
2000
4̄.5
4̄.6
4̄.7
4̄.8
4̄.9
5.314 425 12
5.314 425 12
5.314 425 11
5.314 425 09
5.314 425 06
0
1
2
3
4
3̄.7124
3̄.9124
2̄.1124
2̄.3124
2̄.5124
3̄.0
3̄.1
3̄.2
3̄.3
3̄.4
5.314 425 02
5.314 424 96
5.314 424 86
5.314 424 70
5.314 424 45
6
10
16
25
40
3̄.50
3̄.51
3̄.52
3̄.53
3̄.54
5.314 424 05
5.314 424 00
5.314 423 94
5.314 423 89
5.314 423 83
3̄.55
3̄.56
3̄.57
3̄.58
3̄.59
−∆
log β
0.5124
∆
log γ
∆
log α′
1̄.698 965
0.035
9
TABLES for computing geodesics 2.
−∆
log β ′
∆
1̄.698 965
1̄.698 965
1̄.698 965
1̄.698 965
1̄.698 965
0
0
0
0
1
0.035
0.055
0.075
0.095
0.115
20
20
20
20
20
2000
2000
2000
1999
2000
1̄.698 964
1̄.698 964
1̄.698 964
1̄.698 963
1̄.698 963
0
0
1
0
0
0.135
0.155
0.175
0.195
0.215
20
20
20
20
20
0.712 34
0.732 34
0.752 34
0.772 34
0.792 34
2000
2000
2000
2000
2000
1̄.698 963
1̄.698 962
1̄.698 962
1̄.698 962
1̄.698 961
1
0
0
1
0
0.235
0.255
0.275
0.295
0.315
20
20
20
20
20
65
67
71
74
77
0.812 34
0.832 34
0.852 34
0.872 33
0.892 33
2000
2000
1999
2000
2000
1̄.698 961
1̄.698 960
1̄.698 960
1̄.698 960
1̄.698 959
1
0
0
1
0
0.335
0.355
0.375
0.395
0.415
20
20
20
20
20
5.314 407 93
5.314 407 12
5.314 406 27
5.314 405 38
5.314 404 45
81
85
89
93
98
0.912 33
0.932 33
0.952 33
0.972 33
0.992 32
2000
2000
2000
1999
2000
1̄.698 959
1̄.698 958
1̄.698 957
1̄.698 957
1̄.698 956
1
1
0
1
0
0.435
0.455
0.475
0.495
0.515
20
20
20
20
20
2̄.15
2̄.16
2̄.17
2̄.18
2̄.19
5.314 403 47
5.314 402 45
5.314 401 38
5.314 400 26
5.314 399 09
102
107
112
117
123
1.012 32
1.032 32
1.052 32
1.072 32
1.092 31
2000
2000
2000
1999
2000
1̄.698 956
1̄.698 955
1̄.698 954
1̄.698 953
1̄.698 953
1
1
1
0
1
0.535
0.555
0.575
0.595
0.615
20
20
20
20
20
2̄.20
2̄.21
2̄.22
2̄.23
2̄.24
5.314 397 86
5.314 396 58
5.314 395 23
5.314 393 82
5.314 392 35
128
135
141
147
155
1.112 31
1.132 31
1.152 31
1.172 30
1.192 30
2000
2000
1999
2000
2000
1̄.698 952
1̄.698 951
1̄.698 950
1̄.698 949
1̄.698 948
1
1
1
1
1
0.635
0.655
0.675
0.695
0.715
20
20
20
20
20
2̄.25
2̄.26
2̄.27
2̄.28
2̄.29
5.314 390 80
5.314 389 18
5.314 387 49
5.314 385 72
5.314 383 86
162
169
177
186
195
1.212 30
1.232 29
1.252 29
1.272 29
1.292 28
1999
2000
2000
1999
2000
4̄.207
4̄.247
4̄.287
4̄.327
4̄.367
40
40
40
40
40
1̄.698 947
1̄.698 946
1̄.698 945
1̄.698 944
1̄.698 942
1
1
1
2
1
0.735
0.755
0.775
0.795
0.815
20
20
20
20
20
2̄.30
2̄.31
2̄.32
2̄.33
2̄.34
5.314 381 91
5.314 379 88
5.314 377 75
5.314 375 51
5.314 373 17
203
213
224
234
244
1.312 28
1.332 27
1.352 27
1.372 27
1.392 26
1999
2000
2000
1999
2000
4̄.407
4̄.447
4̄.487
4̄.527
4̄.567
40
40
40
40
40
1̄.698 941
1̄.698 940
1̄.698 938
1̄.698 937
1̄.698 935
1
2
1
2
1
0.835
0.855
0.875
0.895
0.915
20
20
20
20
20
2̄.35
2̄.36
2̄.37
2̄.38
2̄.39
5.314 370 73
5.314 368 16
5.314 365 48
5.314 362 67
5.314 359 72
257
268
281
295
308
1.412 26
1.432 25
1.452 25
1.472 24
1.492 23
1999
2000
1999
1999
2000
4̄.607
4̄.647
4̄.687
4̄.727
4̄.767
40
40
40
40
40
1̄.698 934
1̄.698 932
1̄.698 930
1̄.698 928
1̄.698 926
2
2
2
2
2
0.935
0.955
0.975
0.995
1.015
20
20
20
20
20
2̄.40
5.314 356 64
Arg
log α
−∆
log β
3̄.90
3̄.91
3̄.92
3̄.93
3̄.94
5.314 418 28
5.314 417 96
5.314 417 62
5.314 417 27
5.314 416 90
32
34
35
37
39
0.512 35
0.532 35
0.552 35
0.572 35
0.592 35
2000
2000
2000
2000
2000
3̄.95
3̄.96
3̄.97
3̄.98
3̄.99
5.314 416 51
5.314 416 10
5.314 415 68
5.314 415 23
5.314 414 76
41
42
45
47
48
0.612 35
0.632 35
0.652 35
0.672 35
0.692 34
2̄.00
2̄.01
2̄.02
2̄.03
2̄.04
5.314 414 28
5.314 413 76
5.314 413 23
5.314 412 67
5.314 412 08
52
53
56
59
61
2̄.05
2̄.06
2̄.07
2̄.08
2̄.09
5.314 411 47
5.314 410 82
5.314 410 15
5.314 409 44
5.314 408 70
2̄.10
2̄.11
2̄.12
2̄.13
2̄.14
1.512 23
∆
log γ
4̄.807
∆
log α′
1̄.698 924
1.035
10
TABLES for computing geodesics 3.
∆
log γ
∆
log α′
−∆
log β ′
∆
1.512 23
1.532 22
1.552 21
1.572 21
1.592 20
1999
1999
2000
1999
1999
4̄.807
4̄.847
4̄.887
4̄.927
4̄.967
40
40
40
40
40
1̄.698 924
1̄.698 922
1̄.698 920
1̄.698 918
1̄.698 915
2
2
2
3
2
1.035
1.055
1.075
1.095
1.115
20
20
20
20
20
406
425
446
466
489
1.612 19
1.632 18
1.652 18
1.672 17
1.692 16
1999
2000
1999
1999
1999
3̄.007
3̄.047
3̄.087
3̄.127
3̄.167
40
40
40
40
40
1̄.698 913
1̄.698 910
1̄.698 907
1̄.698 904
1̄.698 901
3
3
3
3
3
1.135
1.155
1.175
1.195
1.215
20
20
20
20
20
5.314 316 59
5.314 311 48
5.314 306 13
5.314 300 52
5.314 294 65
511
535
561
587
615
1.712 15
1.732 14
1.752 13
1.772 12
1.792 10
1999
1999
1999
1998
1999
3̄.207
3̄.247
3̄.287
3̄.327
3̄.367
40
40
40
40
40
1̄.698 898
1̄.698 894
1̄.698 891
1̄.698 887
1̄.698 883
4
3
4
4
4
1.235
1.255
1.275
1.295
1.315
20
20
20
20
20
2̄.55
2̄.56
2̄.57
2̄.58
2̄.59
5.314 288 50
5.314 282 06
5.314 275 32
5.314 268 27
5.314 260 88
644
674
705
739
774
1.812 09
1.832 08
1.852 07
1.872 05
1.892 04
1999
1999
1998
1999
1998
3̄.407
3̄.447
3̄.487
3̄.527
3̄.567
40
40
40
40
40
1̄.698 879
1̄.698 875
1̄.698 870
1̄.698 865
1̄.698 861
4
5
5
4
6
1.335
1.355
1.375
1.395
1.415
20
20
20
20
20
2̄.60
2̄.61
2̄.62
2̄.63
2̄.64
5.314 253 14
5.314 245 04
5.314 236 56
5.314 227 67
5.314 218 37
810
848
889
930
973
1.912 02
1.932 00
1.951 99
1.971 97
1.991 95
1998
1999
1998
1998
1998
3̄.607
3̄.646
3̄.686
3̄.726
3̄.766
39
40
40
40
40
1̄.698 855
1̄.698 850
1̄.698 844
1̄.698 838
1̄.698 832
5
6
6
6
6
1.435
1.455
1.475
1.495
1.515
20
20
20
20
20
2̄.65
2̄.66
2̄.67
2̄.68
2̄.69
5.314 208 64
5.314 198 44
5.314 187 76
5.314 176 58
5.314 164 88
1020
1068
1118
1170
1226
2.011 93
2.031 91
2.051 89
2.071 87
2.091 84
1998
1998
1998
1997
1998
3̄.806
3̄.846
3̄.886
3̄.926
3̄.966
40
40
40
40
40
1̄.698 826
1̄.698 819
1̄.698 812
1̄.698 804
1̄.698 797
7
7
8
7
9
1.535
1.555
1.575
1.595
1.615
20
20
20
20
20
2̄.70
2̄.71
2̄.72
2̄.73
2̄.74
5.314 152 62
5.314 139 79
5.314 126 35
5.314 112 29
5.314 097 56
1283
1344
1406
1473
1543
2.111 82
2.131 79
2.151 77
2.171 74
2.191 71
1997
1998
1997
1997
1997
2̄.006
2̄.046
2̄.086
2̄.126
2̄.166
40
40
40
40
40
1̄.698 788
1̄.698 780
1̄.698 771
1̄.698 762
1̄.698 752
8
9
9
10
11
1.635
1.654
1.674
1.694
1.714
19
20
20
20
20
2̄.75
2̄.76
2̄.77
2̄.78
2̄.79
5.314 082 13
5.314 065 98
5.314 049 08
5.314 031 37
5.314 012 84
1615
1690
1771
1853
1941
2.211 68
2.231 65
2.251 61
2.271 58
2.291 54
1997
1996
1997
1996
1996
2̄.206
2̄.246
2̄.286
2̄.326
2̄.366
40
40
40
40
39
1̄.698 741
1̄.698 731
1̄.698 719
1̄.698 708
1̄.698 695
10
12
11
13
13
1.734
1.754
1.774
1.794
1.814
20
20
20
20
20
2̄.800
2̄.805
2̄.810
2̄.815
2̄.820
5.313 993 43
5.313 983 39
5.313 973 11
5.313 962 60
5.313 951 84
1004
1028
1051
1076
1101
2.311 50
2.321 48
2.331 46
2.341 44
2.351 42
998
998
998
998
998
2̄.405
2̄.425
2̄.445
2̄.465
2̄.485
20
20
20
20
20
1̄.698 682
1̄.698 676
1̄.698 669
1̄.698 662
1̄.698 655
6
7
7
7
8
1.834
1.844
1.854
1.864
1.874
10
10
10
10
10
2̄.825
2̄.830
2̄.835
2̄.840
2̄.845
5.313 940 83
5.313 929 56
5.313 918 04
5.313 906 24
5.313 894 17
1127
1152
1180
1207
1234
2.361 40
2.371 37
2.381 35
2.391 33
2.401 30
997
998
998
997
998
2̄.505
2̄.525
2̄.545
2̄.565
2̄.585
20
20
20
20
20
1̄.698 647
1̄.698 640
1̄.698 632
1̄.698 624
1̄.698 616
7
8
8
8
8
1.884
1.894
1.904
1.914
1.924
10
10
10
10
10
2̄.850
5.313 881 83
Arg
log α
−∆
log β
2̄.40
2̄.41
2̄.42
2̄.43
2̄.44
5.314 356 64
5.314 353 41
5.314 350 03
5.314 346 50
5.314 342 79
323
338
353
371
388
2̄.45
2̄.46
2̄.47
2̄.48
2̄.49
5.314 338 91
5.314 334 85
5.314 330 60
5.314 326 14
5.314 321 48
2̄.50
2̄.51
2̄.52
2̄.53
2̄.54
2.411 28
2̄.605
1̄.698 608
1.934
11
TABLES for computing geodesics 4.
∆
log γ
∆
log α′
−∆
log β ′
∆
2.411 279
2.421 253
2.431 227
2.441 201
2.451 174
9974
9974
9974
9973
9972
2̄.605
2̄.625
2̄.645
2̄.665
2̄.685
20
20
20
20
20
1̄.698 608
1̄.698 600
1̄.698 591
1̄.698 582
1̄.698 573
8
9
9
9
9
1.934
1.944
1.954
1.964
1.974
10
10
10
10
10
1417
1450
1484
1518
1553
2.461 146
2.471 118
2.481 089
2.491 059
2.501 029
9972
9971
9970
9970
9969
2̄.705
2̄.725
2̄.745
2̄.765
2̄.785
20
20
20
20
19
1̄.698 564
1̄.698 554
1̄.698 545
1̄.698 535
1̄.698 525
10
9
10
10
11
1.984
1.994
2.004
2.014
2.023
10
10
10
9
10
5.313 741 43
5.313 725 53
5.313 709 27
5.313 692 63
5.313 675 61
1590
1626
1664
1702
1742
2.510 998
2.520 966
2.530 934
2.540 900
2.550 866
9968
9968
9966
9966
9965
2̄.804
2̄.824
2̄.844
2̄.864
2̄.884
20
20
20
20
20
1̄.698 514
1̄.698 504
1̄.698 493
1̄.698 482
1̄.698 471
10
11
11
11
12
2.033
2.043
2.053
2.063
2.073
10
10
10
10
10
2̄.925
2̄.930
2̄.935
2̄.940
2̄.945
5.313 658 19
5.313 640 36
5.313 622 12
5.313 603 46
5.313 584 37
1783
1824
1866
1909
1953
2.560 831
2.570 796
2.580 759
2.590 722
2.600 684
9965
9963
9963
9962
9961
2̄.904
2̄.924
2̄.944
2̄.964
2̄.984
20
20
20
20
20
1̄.698 459
1̄.698 447
1̄.698 435
1̄.698 423
1̄.698 410
12
12
12
13
13
2.083
2.093
2.103
2.113
2.123
10
10
10
10
10
2̄.950
2̄.955
2̄.960
2̄.965
2̄.970
5.313 564 84
5.313 544 85
5.313 524 40
5.313 503 47
5.313 482 06
1999
2045
2093
2141
2191
2.610 645
2.620 605
2.630 564
2.640 522
2.650 479
9960
9959
9958
9957
9956
1̄.004
1̄.024
1̄.044
1̄.064
1̄.083
20
20
20
19
20
1̄.698 397
1̄.698 384
1̄.698 370
1̄.698 356
1̄.698 342
13
14
14
14
15
2.133
2.143
2.153
2.163
2.173
10
10
10
10
10
2̄.975
2̄.980
2̄.985
2̄.990
2̄.995
5.313 460 15
5.313 437 74
5.313 414 81
5.313 391 34
5.313 367 34
2241
2293
2347
2400
2457
2.660 435
2.670 391
2.680 345
2.690 298
2.700 250
9956
9954
9953
9952
9951
1̄.103
1̄.123
1̄.143
1̄.163
1̄.183
20
20
20
20
20
1̄.698 327
1̄.698 312
1̄.698 297
1̄.698 281
1̄.698 266
15
15
16
15
17
2.183
2.193
2.203
2.212
2.222
10
10
9
10
10
1̄.000
1̄.005
1̄.010
1̄.015
1̄.020
5.313 342 77
5.313 317 64
5.313 291 93
5.313 265 62
5.313 238 71
2513
2571
2631
2691
2754
2.710 201
2.720 151
2.730 099
2.740 047
2.749 993
9950
9948
9948
9946
9945
1̄.203
1̄.223
1̄.243
1̄.263
1̄.282
20
20
20
19
20
1̄.698 249
1̄.698 232
1̄.698 215
1̄.698 198
1̄.698 180
17
17
17
18
18
2.232
2.242
2.252
2.262
2.272
10
10
10
10
10
1̄.025
1̄.030
1̄.035
1̄.040
1̄.045
5.313 211 17
5.313 182 99
5.313 154 16
5.313 124 67
5.313 094 49
2818
2883
2949
3018
3087
2.759 938
2.769 881
2.779 824
2.789 765
2.799 704
9943
9943
9941
9939
9939
1̄.302
1̄.322
1̄.342
1̄.362
1̄.382
20
20
20
20
20
1̄.698 162
1̄.698 143
1̄.698 124
1̄.698 104
1̄.698 084
19
19
20
20
20
2.282
2.292
2.302
2.312
2.322
10
10
10
10
10
1̄.050
1̄.055
1̄.060
1̄.065
1̄.070
5.313 063 62
5.313 032 03
5.312 999 71
5.312 966 65
5.312 932 82
3159
3232
3306
3383
3460
2.809 643
2.819 579
2.829 515
2.839 449
2.849 381
9936
9936
9934
9932
9931
1̄.402
1̄.422
1̄.442
1̄.461
1̄.481
20
20
19
20
20
1̄.698 064
1̄.698 043
1̄.698 021
1̄.697 999
1̄.697 977
21
22
22
22
23
2.332
2.342
2.351
2.361
2.371
10
9
10
10
10
1̄.075
1̄.080
1̄.085
1̄.090
1̄.095
5.312 898 22
5.312 862 81
5.312 826 58
5.312 789 52
5.312 751 61
3541
3623
3706
3791
3879
2.859 312
2.869 241
2.879 169
2.889 095
2.899 019
9929
9928
9926
9924
9922
1̄.501
1̄.521
1̄.541
1̄.561
1̄.581
20
20
20
20
19
1̄.697 954
1̄.697 930
1̄.697 906
1̄.697 881
1̄.697 856
24
24
25
25
26
2.381
2.391
2.401
2.411
2.421
10
10
10
10
10
1̄.100
5.312 712 82
Arg
log α
−∆
log β
2̄.850
2̄.855
2̄.860
2̄.865
2̄.870
5.313 881 83
5.313 869 19
5.313 856 26
5.313 843 03
5.313 829 50
1264
1293
1323
1353
1385
2̄.875
2̄.880
2̄.885
2̄.890
2̄.895
5.313 815 65
5.313 801 48
5.313 786 98
5.313 772 14
5.313 756 96
2̄.900
2̄.905
2̄.910
2̄.915
2̄.920
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: rod.deakin@rmit.edu.au
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.
αAB
C
vertex
•
•α
BA
φmax
B
desic
g eo
b
no
r ma
φA l O φB
•
a HA • H a
B
equator
al
•
A
n
no
rm
Greenwich
me
rid
ia
N
λA
λB
S
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 360 . 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
f =
a −b
b
= 1−
a
a
b = a (1 − f )
e2 =
(2)
a 2 − b2
b2
=
−
= f (2 − f )
1
a2
a2
1 − e2 =
(1)
b2
2
= 1 − f (2 − f ) = (1 − f )
2
a
(3)
(4)
The second eccentricity e ′ of an ellipsoid is also of use and
e ′2 =
f (2 − f )
a 2 − b2
a2
e2
=
−
=
=
1
2
2
2
2
b
b
1 −e
(1 − f )
(5)
e ′2
1 + e ′2
(6)
e2 =
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 )
(1 − e 2 sin2 φ)
ν=
3
2
a
(1 − e sin φ)
2
2
1
2
a (1 − e 2 )
=
(7)
W3
=
a
W
(8)
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
ρ=
ν=
c =
a2
b (1 + e ′2 cos2 φ)
3
2
a2
b (1 + e ′2 cos2 φ)
1
2
=
c
V3
(10)
=
c
V
(11)
a2
a
=
1− f
b
(12)
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
W2 =
V2
1 + e ′2
and W =
V
(1 + e ′ )
2
1
2
b
= V
a
(14)
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λ
meridian
P
•
•
φ
w
no
rm
φ
a
parallel
al
α + dα
Q
O
ρ dφ
α
φ +d φ
Q
H
•
α
ds
P
equator
•
ν cos φ d λ
λ λ+ d λ
φ + dφ
λ
φ
λ+d λ
Figure 2: Differential rectangle on the ellipsoid
The differential distance ds is given by
ds = dp 2 + dm 2 =
Geodesics – Bessel's method
(
) (
2
ν cos φ d λ + ρ d φ
)
2
(18)
6
and so
⎛d λ ⎞
ds
= ν 2 cos2 φ ⎜⎜ ⎟⎟⎟ + ρ 2
⎜⎝d φ ⎠⎟
dφ
2
⎛d φ ⎞
ds
= ν 2 cos2 φ + ρ 2 ⎜⎜ ⎟⎟⎟
⎝d λ ⎠
dλ
2
or
while
sin α = ν cos φ
dλ
ds
cos α = ρ
and
dφ
ds
(19)
spa
MATHEMATICAL DEFINITION OF A GEODESIC
curve
e
s
c
x
concepts associated with space curves and surfaces. A
•
Q
space curve may be defined as the locus of the terminal
r +δr
z
k
A geodesic can be defined mathematically by considering
points P of a position vector r (t ) defined by a single
r
i
P
•
C
δr
scalar parameter t,
r (t ) = x (t ) i + y (t ) j + z (t ) k
j
y
(20)
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
⎛dx ⎞ ⎛dy ⎞ ⎛dz ⎞
ds
= ⎜⎜ ⎟⎟⎟ + ⎜⎜ ⎟⎟⎟ + ⎜⎜ ⎟⎟⎟ or s =
⎝ dt ⎠ ⎝ dt ⎠ ⎝ dt ⎠
dt
2
2
2
∫
dr dr
•
dt . Hence s is a function of t and x,y,z are
dt dt
functions of s. Let Q, a small distance δs along the curve from P, have a position vector
δr
δs . Both when δs is positive or negative
r + δ r . Then δ r = PQ and δ r
δ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
ds
ds
ds
ds
(21)
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
ds
Geodesics – Bessel's method
κ>0
(22)
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
ˆ•
= κ ; i.e., n̂ is the unit
with this radius ρ is called the osculating circle. Also n
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
ˆ form a right-handed triad. Differentiating equation (23) with respect to s
thus ˆt, b
gives
ˆ d
ˆ
ˆ ˆ dn
ˆ
db
dˆt
dn
dn
ˆ) = × n
ˆ + ˆt ×
ˆ×n
ˆ + ˆt ×
= (ˆt × n
= κn
= t×
ds ds
ds
ds
ds
ds
then
ˆ
ˆ ⎟⎞ dn
ˆ ˆ ˆ
ˆt • db = ˆt • ⎛⎜ˆt × dn
=
• (t × t) = 0
⎟
⎜
⎟
⎝ ds ⎠ ds
ds
ˆ
ˆ
ˆ
db
ˆ•b
ˆ = 1 it follows that b
ˆ • db = 0 so that db is
is orthogonal to t̂ . But from b
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
is opposite n̂
and n̂ and is orthogonal to t̂ , it must be parallel to n̂ . The direction of
ds
ˆ
db
× ˆt is in the direction of b̂ . Hence
as it must be to ensure the cross product
ds
so that
ˆ
db
ˆ,
= −τ n
ds
τ>0
(24)
1
the radius of torsion. t̂ , n̂ and
τ
b̂ form a right-handed set of orthogonal unit vectors along a space curve.
We call b̂ the unit binormal vector, τ the torsion, and
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
z
k
x
i
b
P
^
t
^
n
r
j
normal plane
^
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
ˆ × dt = −τ n
ˆ × κn
ˆ − κˆt
ˆ × ˆt + b
ˆ = τb
= (b × t) =
× ˆt + b
ds ds
ds
ds
(25)
Equations (22), (24) and (25) are known as the Frenet-Serret formulae.
dˆt
ˆ
= κn
ds
ˆ
db
ˆ
= −τ n
ds
ˆ
dn
ˆ − κˆt
= τb
ds
(26)
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
S
P
•
Q' A
C
CN
Q
B
ξ
^
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-BaptisteMarie-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 γ
γ
1•
α
2
r
β
•
r
r 2 = r cos β
y
x
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
ˆ=
n
1 d 2 r x ′′
y ′′
z ′′
=
i+
j + k = ρ x ′′ i + ρ y ′′ j + ρ z ′′ k
2
κ ds
κ
κ
κ
Geodesics – Bessel's method
(27)
11
dx
d 2x
1
′
′′
and x = 2 are first and second derivatives with respect to arc
where ρ = . x =
κ
ds
ds
length respectively and similarly for y ′, z ′, y ′′, z ′′ .
ˆ = N 1 i + N 2 j + N 3 k where N , N , N are
The unit normal N̂ to the ellipsoid surface is N
1
2
3
ν
ν
ν
N1
= cos α ,
the Cartesian components of the normal vector PH and ν is the magnitude.
ν
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
Greenwich m
erid
ia
n
λ
x
^
O
•
P
no
rm
a
ν l
N
y
φ
H•
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
= ρ x ′′ ;
ν
−y
= ρ y ′′ ;
ν
−ν sin φ
= ρ z ′′
ν
This leads to
ρ x ′′ ρ y ′′
ρ z ′′
= y =
xν
ν sin φ
ν
ν
Geodesics – Bessel's method
(29)
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
which can be written as
d
(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 λ
+
∂φ ds
∂λ ds
∂y d φ ∂y d λ
y′ =
+
∂φ ds
∂λ ds
x′ =
(31)
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φ
= −ν sin φ cos λ + cos φ cos λ
ae 2 sin φ cos φ
(1 − e 2 sin2 φ)
3
2
Using equation (8) and simplifying yields
∂x
= −ρ sin φ cos λ
∂φ
Similarly
∂y
dν
= −ν sin φ sin λ + cos φ sin λ
= −ρ sin φ sin λ
∂φ
dφ
Placing these results, together with the derivatives
∂x
∂y
and
into equations (31) gives
∂λ
∂λ
dφ
dλ
− ν cos φ sin λ
ds
ds
dφ
dλ
+ ν cos φ cos λ
y ′ = −ρ sin φ sin λ
ds
ds
x ′ = −ρ sin φ cos λ
These values of x ′ and y ′ together with x and y from equations (15) substituted into
equation (30) gives
ν 2 cos2 φ
Geodesics – Bessel's method
dλ
=C
ds
(32)
13
which can be re-arranged to give an expression for the differential distance ds
ds =
ν 2 cos2 φ
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)
dλ
and substituting into equation (32) gives the
ds
characteristic equation of the geodesic on the ellipsoid
From equation (19), sin α = ν cos φ
ν 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
node
•
•
λ
node
B
•
φmin
equator
node
•
A'
•
A
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.
ellipsoid having semi-major axis OE = a and semiminor axis ON = b . P is a point on the ellipsoid
and P ′ is a point on an auxiliary circle centred on O
of radius a. P and P ′ have the same perpendicular
z
b
distance w from the axis of revolution ON. The
normal to the ellipsoid at P cuts the major axis at
an angle φ (the geodetic latitude) and intersects the
rotational axis at H. The distance PH = ν . The
auxiliary circle
N'
N
P'
•
•
w
P
a
no ν
rm
al
Figure 10 shows a portion of a meridian NPE of an
O ψ
φ
a
tan
ge
nt
M
E
w
H•
angle P ′OE = ψ is the parametric latitude
Figure 10: Meridian section of ellipsoid
The Cartesian equation of the ellipse and the
w2 z2
+ 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
auxiliary circle of Figure 10 are
w = OM = a cos ψ
z = MP = b sin ψ
Note that writing equations (35) as
gives
(35)
w
z
= cos ψ and = sin ψ then squaring and adding
a
b
w2 z2
+ 2 = cos2 ψ + sin 2 ψ = 1 which is the Cartesian equation of an ellipse.
2
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
Since e 2 =
a 2 − b2
b2
b2
2
=
−
then
1
1
−
e
=
and we may define parametric latitude ψ by
a2
a2
a2
tan ψ =
1
b
tan φ = (1 − e 2 )2 tan φ = (1 − f ) tan φ
a
(38)
Alternatively, using equations (36) and (8) we may define the parametric latitude ψ by
cos ψ =
cos φ
(39)
1
2
(1 − e 2 sin2 φ)
or equivalently by
sin φ =
sin ψ
(40)
1
2
(1 − e 2 cos2 ψ)
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
Now Clairaut's equation (34) is ν cos φ sin α = constant = C , where ν =
a
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 α
Geodesics – Bessel's method
(42)
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
cos α =
cos2 ψ − cos2 ψ0
cos ψ
(44)
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
N
α2
node
vertex
A = 90°
A2
•
90°
α 1 s •P
sic 2
de
o
e
P'1
AE
•
λ1
90°− ψ0
90°− ψ 1
node
λ 2 equator
•
g
•
g
P1
αE
vertex
α = 90°
N'
A1 σ • P'
sic 2
de
o
e
H
•
c
i
r
t
c
a
l
e)
( gre
•
E ω
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'
on the auxiliary sphere.
2
1 and P'
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φ
ds
•
ν cos φ d λ
λ
α + dα
dψ
ρ dφ
α + dα
cos ψ dω
ω
λ +d λ
ψ+ d ψ
dσ
•
φ
Figure 12a: Differential rectangle
on ellipsoid
α
•
ψ
ω+ d ω
Figure 12b: Differential rectangle
on sphere
We have for the ellipsoid [see Figure 2 and equations (19)]
ds cos α = ρ d φ
ds sin α = ν cos φ d λ
Geodesics – Bessel's method
(47)
19
and for the sphere
d σ cos α = d ψ
(48)
d σ sin α = cos ψ d ω
Dividing equations (47) by equations (48) gives
ρ dφ
ds cos α
=
;
d σ cos α
dψ
ν cos φ d λ
ds sin α
=
d σ sin α
cos ψ d ω
and noting from equation (36) that ν cos φ = a cos ψ , then cancelling terms gives
ds
dφ
dλ
=ρ
=a
dσ
dψ
dω
(49)
We may write these equations as two separate relationships
ds
dφ
=ρ
dσ
dψ
(50)
dλ
1 ds
=
d ω a dσ
(51)
dφ
then we may develop two relatively simple
dψ
ds
(s ellipsoid and σ sphere) and the other
differential equations; one involving distance
dσ
dλ
( λ ellipsoid and ω sphere). Integration yields equations that will
involving longitude
dω
enable us to compute geodesic lengths s on the ellipsoid given great circle distances σ on
and if we can obtain an expression for
an auxiliary sphere, and equations to compute longitude differences Δλ on the ellipsoid
given longitude differences Δω on the auxiliary sphere.
An expression for
dφ
can be determined as follows.
dψ
From equation (38) we have
1
tan ψ = (1 − e 2 )2 tan φ
and differentiating with respect to ψ gives
{
}
1
d
d
dφ
(tan ψ ) =
(1 − e 2 )2 tan φ
dψ
dφ
dψ
sec2 ψ = (1 − e 2 )2 sec2 φ
1
and
Geodesics – Bessel's method
dφ
dψ
20
1
cos2 φ
dφ
=
1
d ψ (1 − e 2 )2 cos2 ψ
giving
(52)
Substituting equation (52) into equation (50) gives
cos2 φ
ρ
ds
=
1
d σ (1 − e 2 )2 cos2 ψ
(53)
and substituting equation (53) into equation (51) gives
cos2 φ
ρ
dλ
=
1
d ω a (1 − e 2 )2 cos2 ψ
(54)
Now from equation (36) we may write
a
cos φ
=
ν
cos ψ
a2
cos2 φ
= 2
ν
cos2 ψ
and
and using the relationships given in equations (4), (10), (11) and (12) we may write
cos2 φ
a2
b 2V 2
=
=
;
a2
ν2
cos2 ψ
ρ
(1 − e 2 )
1
2
=
c a
a3
=
;
V 3 b b 2V 3
ρ
a (1 − e 2 )2
1
=
a2
b 2V 3
(55)
Substituting these results into equations (53) and (54) gives
and
ds
a
=
dσ V
(56)
dλ
1
=
dω V
(57)
Now from equation (13) we may write V 2 = 1 + e ′2 cos2 φ and also from equation (55) we
may write cos2 φ =
b 2V 2
cos2 ψ . Using these gives
a2
V = 1 + e ′2
2
b 2V 2
cos2 ψ
2
a
Now using equations (4) and (5) gives
e2
1 − e 2 )V 2 cos2 ψ
V =1+
2 (
1 −e
= 1 + e 2V 2 cos2 ψ
2
and V 2 (1 − e 2 cos2 ψ) = 1 from which we obtain
V =
Geodesics – Bessel's method
1
(1 − e
2
1
cos2 ψ)2
(58)
21
Substituting equation (58) into equations (56) and (57) gives
1
ds
= a (1 − e 2 cos2 ψ)2
dσ
(59)
1
dλ
= (1 − e 2 cos2 ψ)2
dω
(60)
and
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'
1
ψ
90°
90°−
σ
ψ0
90°−
ψ2
°−
90
α1
P'2
vertex
α = 90°
esic
geod
− σ1
90°
α2
•
•
H
σ1
P'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.
N'
From the spherical triangle P1′N ′ H with the right-
°−
90
angle at H, using the sine rule (for spherical
sin α1
1
=
cos ψ0
cos ψ1
so
sin α1 cos ψ1 = cos ψ0
1
90°−
ψ
sin (90 )
sin α1
=
sin (90 − ψ0 ) sin (90 − ψ1 )
or
ψ0
trigonometry)
H
− σ1
90°
α1
(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°− ( 90°− ψ1 )
90°− ψ0
sin (90 − α1 ) = tan ψ1 tan (90 − σ1 )
ψ1
cos α1 = tan ψ1 cot σ1
90°− σ1
=
90°− α1
tan ψ1
tan σ1
and
tan σ1 =
Geodesics – Bessel's method
tan ψ1
cos α1
(63)
23
Using Napier's Rules for circular parts in the right-angled spherical triangle P2′ N ′ H
P'2
α2
•
σ)
(σ 1 +
−
°
90
•
90°− ψ0
90°− ( 90°− ψ 2 )
ψ0
90° −
°−
90
ψ2
N'
ψ2
90°− α 2
H
90°− (σ 1 + σ )
sin (mid-part) = product of cos (opposite-parts)
sin ψ2 = cos (90 − (σ1 + σ )) cos (90 − ψ0 )
sin ψ2 = sin (σ1 + σ ) sin ψ0
Note:
(64)
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)
x = σ1 + σ
(67)
cos2 ψ = 1 − sin2 x sin2 ψ0
(68)
Let
and equation (66) becomes
We may now write equation (59) with dx = d σ since σ1 is constant, as
ds = a (1 − e 2 cos2 ψ)2 d σ
1
2
= a (1 − e 2 ⎡⎣1 − sin2 x sin2 ψ0 ⎤⎦ ) dx
1
1
= 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
2
⎛ 1
e ′2
2
2
⎟⎞⎟ dx
+
ψ
sin
sin
ds = a ⎜⎜
x
0⎟
⎝⎜1 + e ′2 1 + e ′2
⎠
1
a
′2 sin2 x sin2 ψ0 )2 dx
=
1 (1 + e
(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
ds = b (1 + u 2 sin2 x )2 dx
1
(70)
The length of the geodesic arc s between P1 and P2 is found by integration as
x =σ1 +σ
s =b
2
2
∫ (1 + u sin x )
1
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
Bnβ =
β (β − 1)(β − 2)(β − 3)
n!
(β − n + 1)
(73)
The binomial series (72) is convergent when −1 < x < 1 . In equation (73) n! denotes nfactorial 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
Bnk =
k!
n ! (k − n ) !
(75)
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
n =1
B12 =
n=2
B22 =
n=3
B32 =
1
1
1
1
2
( 21 )(− 21 )
2!
=−
( 21 )(− 21 )(− 23 )
3!
1
8
=
1
16
1
Inspecting the results above, we can see that the binomial coefficients Bn2 form a sequence
1,
1
1⋅1 1⋅1⋅ 3
1⋅1⋅ 3 ⋅ 5 1⋅1⋅ 3 ⋅ 5 ⋅ 7
1⋅ 1⋅ 3 ⋅ 5 ⋅ 7 ⋅ 9
, −
,
, −
,
, −
,
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 + u 2 sin2 x )
1
2
1
1⋅1 4
1⋅1⋅ 3 6
= 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 +
−
2⋅4⋅6⋅8
2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10
(76)
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
sin x = 2n
2
2n
⎛2n ⎞⎟ (−1)n
⎜ ⎟
⎜⎜⎜⎝ n ⎟⎟⎠ + 22n −1
⎛2n ⎞⎟
⎛2n ⎞⎟
⎪⎧⎪
⎜
⎜
⎨cos 2nx − ⎜⎜ ⎟⎟⎟ cos (2n − 2) x + ⎜⎜ ⎟⎟⎟ cos (2n − 4) x
⎪⎪
⎜⎝ 1 ⎠⎟
⎝⎜ 2 ⎠⎟
⎪⎩
⎫
⎛2n ⎞⎟
⎛ 2n ⎞⎟
⎪
n
⎟⎟ cos 2x ⎪⎬
− ⎜⎜⎜ ⎟⎟ cos (2n − 6) x + (−1) ⎜⎜⎜
⎪
⎜⎝ 3 ⎠⎟⎟
⎝⎜n − 1⎠⎟⎟
⎪
⎪
⎭
(77)
⎛2n ⎞
Using equation (77) and the binomial coefficients Bn2n = ⎜⎜⎜ ⎟⎟⎟ computed using equation
⎜⎝ n ⎟⎠
(75) gives
Geodesics – Bessel's method
26
sin2 x =
1 1
− cos 2x
2 2
sin 4 x =
3 1
1
+ cos 4x − cos 2x
8 8
2
sin6 x =
5
1
3
15
− cos 6x + cos 4x − cos 2x
16 32
16
32
sin 8 x =
35
1
1
7
7
cos 8x − cos 6x +
cos 4x − cos 2x
+
128 128
16
32
16
sin10 x =
63
1
5
45
15
105
cos10x +
cos 8x −
cos 6x +
cos 4x −
cos 2x
−
256 512
256
512
64
256
(78)
Substituting equations (78) into equation (76) and arranging according to cos 2x , cos 4x ,
etc, we obtain (Rapp 1981, p. 7-8)
(1 + u 2 sin2 x )
1
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 =
u −
u +
u
− u4+
64
256
4096
16384
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
−
+
−
(80)
+
−
+
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 +σ
s
= A ∫ dx + B
b
σ
1
σ1 +σ
∫
σ1 +σ
cos 2x dx + C
σ1
∫
σ1
Geodesics – Bessel's method
cos 4x dx + D
σ1
σ1 +σ
+E
∫
σ1 +σ
σ1
σ1 +σ
cos 8x dx + F
∫
∫
cos 6x dx
(82)
cos10x dx
σ1
27
The evaluation of the integral
σ1 +σ
∫
cos nx dx =
σ1
1
1
σ +σ
[ sin nx ]σ11 = {sin n (σ1 + σ ) − sin n σ1 }
n
n
(83)
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 +σ
∫
cos nx dx =
σ1
n
2
cos n σm sin σ
n
2
(84)
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
σm =
and putting
σ1 + σ2
2
(85)
then
2σm = 2σ1 + σ
(86)
and
sin n (σ1 + σ ) − sin n σ1 = 2 cos n σm sin
n
σ
2
(87)
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)
{
C
D
cos 4σm sin 2σ + cos 6σm sin 3σ
2
3
E
F
+ cos 8σm sin 4σ + cos10σm sin 5σ +
4
5
s = b Aσ + B cos 2σm sin σ +
}
(88)
Equation (88) may be modified by adopting another set of constants; defined as
B0 = A;
Geodesics – Bessel's method
B2 = B;
B4 =
C
;
2
B6 =
D
;
3
B8 =
E
;
4
B10 =
F
5
(89)
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σ +
+ B2n cos 2n σm sin n σ +
(90)
}
where the coefficients B0 , B2 , B4 , … are
1 2
3
5 6
u − u4 +
u
4
64
256
1
1
15 6
u
− u2 + u 4 −
4
16
512
1 4
3 6
u +
u
−
128
512
1
u6
−
1536
B0 = 1 +
B2 =
B4 =
B6 =
B8 =
B10 =
175 8
441 10
u +
u −
16384
65536
35 8
735 10
u −
u +
+
2048
65536
35 8
105 10
u +
u −
−
8192
32768
5
35
u8 −
u 10 +
+
6144
393216
5
35
u8 +
u 10 −
−
65536
262144
7
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σ
+B8 cos 8σm sin 4σ }
(91)
where
1 2
3
5 6
u − u4 +
u
4
64
256
1
1
15 6
u
− u2 + u 4 −
4
16
512
1 4
3 6
u +
u
−
128
512
1
u6
−
1536
B0 = 1 +
B2 =
B4 =
B6 =
B8 =
175 8
u
16384
35 8
u
+
2048
35 8
u
−
8192
5
u8
+
6144
5
u8
−
65536
−
(92)
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 NewtonRaphson iteration for the real roots of the equation f (σ ) = 0 given in the form of an
iterative equation
σ(n +1) = σ n −
( )
f (σ n )
f ′ (σ n )
( )
(93)
( )
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
+B8 cos 8σm sin 4σ −
b
and the derivative f ′ (σ ) =
(94)
d
{f (σ )} is given by
dσ
(
f ′ (σ ) = 1 + u 2 sin2 x
)
1
2
(95)
(
[Note here that f (σ ) is the result of integrating the function 1 + u 2 sin2 x
)
1
2
with respect
to dx; so then the derivative f ′ (σ ) must be the original function.]
An initial value, σ(1) ( σ for n = 1 ) can be computed from σ(1) =
s
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'
°−
90
vertex
1
ψ
9 0°
90°−
P'2
α1
•
P'i
•
P'i+1
•
•
c
desi
geo
H
dσ
σ1
P'1 •
αi
α = 90°
ψ0
dω
α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′
90
°−
ψi
dω
cos ψi dω
Q
αi
•
•
dσ
ic
geodes
P'i+1
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
dω =
sin αi
dσ
cos ψi
(96)
cos ψ0
cos ψi
(97)
From equation (43)
sin αi =
and substituting equation (97) into (96) gives the relationship (dropping the subscript i)
dω =
cos ψ0
dσ
cos2 ψ
(98)
Substituting equation (98) into equation (60) and re-arranging gives
d λ = cos ψ0
(1 − e 2 cos2 ψ)
cos2 ψ
1
2
dσ
(99)
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σ
cos2 ψ
cos2 ψ ⎥
⎢
⎣
⎦
(100)
1
Equation (100) can be simplified by expanding (1 − e 2 cos2 ψ)2 using the binomial series
(72)
∞
(1 − e 2 cos2 ψ)2 = ∑ Bn2 (−e 2 cos2 ψ)
1
1
n
n =0
1
and from the previous development, the binomial coefficients Bn2 form a sequence
1,
1
1⋅1 1⋅1⋅ 3
1⋅1⋅ 3 ⋅ 5 1⋅1⋅ 3 ⋅ 5 ⋅ 7
1⋅1⋅ 3 ⋅ 5 ⋅ 7 ⋅ 9
, −
,
, −
,
, −
,
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 − e 2 cos2 ψ)
1
2
1
1⋅1 4
1⋅1⋅ 3 6
= 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 ψ +
2⋅4⋅6⋅8
2 ⋅ 4 ⋅ 6 ⋅ 8 ⋅ 10
(101)
so that
(1 − e 2 cos2 ψ)
1
2
=
cos ψ
2
Now, subtracting
1
1
1
1
− e 2 − e 4 cos2 ψ − e 6 cos4 ψ
2
cos ψ 2
8
16
5 8
7 10
e cos6 ψ −
e cos8 ψ +
−
128
256
(102)
1
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
7 10
−
e cos6 ψ −
e cos8 ψ +
128
256
}d σ
(103)
which can be re-arranged as
d ω − d λ− =
{
1
1
e2
cos ψ0 1 + e 2 cos2 ψ + e 4 cos4 ψ
2
4
8
5
7 8
+ e 6 cos6 ψ +
e cos8 ψ +
64
128
}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
Now cos4 ψ = (1 − sin2 ψ0 sin2 x ) , cos6 ψ = (1 − sin2 ψ0 sin2 x ) , cos8 ψ = (1 − sin2 ψ0 sin2 x ) ,
2
3
4
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
1
cos ψ0 1 + e 2 (1 − sin2 ψ0 sin2 x )
2
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
d ω − d λ− =
⎧⎪
e2
1 ⎛
⎡1 1
⎤⎞
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 ⎥
⎢⎣ 2 2
⎥⎦
8
1
⎡3 1
⎤⎞
+ sin 4 ψ0 ⎢ + cos 4x − cos 2x ⎥ ⎟⎟⎟
2
⎣⎢ 8 8
⎦⎥ ⎠
5
⎡1 1
⎤
+ e 6 (1 − 3 sin2 ψ0 ⎢ − cos 2x ⎥
⎢⎣ 2 2
⎥⎦
64
1
⎡3 1
⎤
+ 3 sin 4 ψ0 ⎢ + cos 4x − cos 2x ⎥
⎥⎦
2
⎣⎢ 8 8
1
3
15
⎡5
⎤⎞
− 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
⎦⎥
1
⎡3 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
Geodesics – Bessel's method
(106)
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 ⎟⎟
⎝
⎠
4
2
2
(107)
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 ⎟⎟
⎠
8
8
2
(108)
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 ⎟⎟
⎠
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 ⎟⎟
⎠
132
16
(109)
(110)
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
d ω − dλ =
e2
cos ψ0 {C 0 + C 2 cos 2x + C 4 cos 4x + C 6 cos 6x + C 8 cos 8x +
2
}dx
(111)
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
+ ⎜⎜
e +
⎝16384
−
⎞⎟ 8
sin ψ0
⎠⎟
(112)
1
15 6
7
⎛1
⎞
C 2 = ⎜⎜ e 2 + e 4 +
e + e 8 + ⎟⎟ sin2 ψ0
⎝8
⎠
8
128
64
15 6
21 8
⎛1
⎞
e +
e + ⎟⎟ sin 4 ψ0
− ⎜⎜ e 4 +
⎝16
⎠
128
128
105 8
⎛ 75 6
⎞
e +
e + ⎟⎟ sin6 ψ0
+ ⎜⎜
⎝ 2048
⎠
1024
⎛ 49 8
⎞
e + ⎟⎟ sin 8 ψ0
+ ⎜⎜
⎝ 2048
⎠
−
(113)
15 6
21 8
⎛1
⎞
C 4 = ⎜⎜ e 4 +
e +
e + ⎟⎟ sin 4 ψ0
⎝ 64
⎠
512
512
21 8
⎛ 15 6
⎞
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
C 8 = ⎜⎜
e8 +
⎝16384
⎟⎞⎟ sin 8 ψ0 −
⎠
(116)
The longitude differences (spherical ω minus geodetic λ ) are given by the integral
Δω − Δλ =
e2
cos ψ0
2
x =σ1 +σ
∫
{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
C
C
+ 6 cos 6σm sin 3σ + 8 cos 8σm sin 4σ +
3
4
}
(118)
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
e 6 = 8 f 3 − 12 f 4 + 6 f 5 − f 6
(121)
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
⎧
e2
e2
⎪e 2
Δω − Δλ = sin αE ⎨⎪ C 0σ + C 2 cos 2σm sin σ + C 4 cos 4σm sin 2σ
⎪
2
4
⎪
⎩2
⎫
e2
e2
⎪
+ C 6 cos 6σm sin 3σ + C 8 cos 8σm sin 4σ + ⎪
⎬
⎪
6
8
⎪
⎭
Now, with equations (112) and (120) the coefficient
e2
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
2
⎛ 3 6
⎞
45 8
+ ⎜⎜
e +
e + ⎟⎟ (1 − sin2 αE )
⎝128
⎠
1024
3
⎛ 25 8
⎞
− ⎜⎜
e + ⎟⎟ (1 − sin2 αE )
⎝ 2048
⎠
+
Geodesics – Bessel's method
(122)
(123)
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
+
Now for any geodetic ellipsoid e 8
2.01e-009 and f 4
(124)
1.26e-010 , and since terms greater
than e have been ignored in the development of equation (123) then no additional errors
8
will be induced by ignoring terms greater than f 4 in equation (124). Hence we define
{
e2
1
C 0 ≡ f 1 − f (1 + f + f 2 ) cos2 αE
2
4
3 ⎛
9 ⎞
+ f 2 ⎜⎜1 + f ⎟⎟ cos 4 αE
16 ⎝
4 ⎠
25 3
f cos6 αE
−
128
}
(125)
Using similar reasoning we also define
⎧1
⎫
1 ⎛
9 ⎞
75 3
e2
C 2 ≡ f ⎪⎨ f (1 + f + f 2 ) cos2 αE − f 2 ⎜⎜1 + f ⎟⎟ cos 4 αE +
f cos6 αE ⎪⎬
⎪
⎪
2
4 ⎝
4 ⎠
256
⎪4
⎪
⎩
⎭
(126)
⎧ 1 2⎛
⎫
e2
9 ⎞ 4
15 3
C4 ≡ f ⎪
f cos6 αE ⎪
⎨ f ⎜⎜1 + f ⎟⎟ cos αE −
⎬
⎪
⎪
4
4 ⎠
256
⎪ 32 ⎝
⎪
⎩
⎭
(127)
{
e2
5 3
C6 ≡ f
f cos6 αE
6
768
}
(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
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
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
A0 = 1 −
(130)
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 rearranged 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σ
B0
(131)
or
σ =
s
+Δσ
bB0
(132)
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σ
B0
Δσ = −
(133)
1
3
5 6
175 8
u −
u = 1 + x and
Now, from equations (92) B0 = 1 + u 2 − u 4 +
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
⎛1
1
3
= 1− ⎜⎜ u 2 − u 4 +
⎝
4
64
B0
⎛1
3
+ ⎜⎜ u 2 − u 4 +
⎝4
64
⎞⎟ ⎛ 1 2
3
+ ⎜ u − u4 +
⎠⎟ ⎝⎜ 4
64
⎞⎟ ⎛ 1 2
3
− ⎜ u − u4 +
⎠⎟ ⎝⎜ 4
64
2
⎟⎟⎞
⎠
3
⎞
⎟⎠⎟ −
1
7
15 6
579 8
u +
u −
= 1 − u2 + u4 −
4
64
256
16384
4
and using this result gives
B2
⎛ 1
1
15 6
35 8
= ⎜⎜− u 2 + u 4 −
u +
u −
⎝ 4
16
512
2048
B0
1
1
37 6
47 8
u +
u −
= − u2 + u4 −
4
8
512
1024
⎞⎛
1 2
7 4
15 6
579 8
⎟
⎟⎠⎝⎜⎜1 − 4 u + 64 u − 256 u + 16384 u −
⎟⎞
⎟⎠
Similarly, the other ratios are obtained and
B2
B0
B4
B0
B6
B0
B8
B0
1
= − u2
4
=
=
=
1
37 6
47 8
+ u4 −
u +
u
8
512
1024
1 4
1 6
27 8
−
u +
u −
u
128
128
4096
1
1
−
u6 +
u8
1536
1024
5
−
u8
65536
−
+
(134)
−
+
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
last term in equations (131) and (133) is
Geodesics – Bessel's method
B8
cos 8σm sin 4σ = 1.5739827e-013 radians .
B0
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σ
B0
B0
B0
(135)
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
⎧
⎪ B
B
Δσ = sin σ ⎨⎪− 2 cos 2σm − 2 4 cos σ (2 cos2 2σm − 1)
⎪
B0
⎪
⎩ B0
⎫
⎪
B
− 6 cos 2σm (3 − 4 sin2 σ )(4 cos2 2σm − 3)⎪
⎬
⎪
B0
⎪
⎭
(136)
Now
⎛ −B2 ⎟⎞
1 4 1 6
53 8
⎜⎜
⎟⎟ =
u − u +
u −
⎜⎝ B0 ⎟⎠
16
16
1024
2
⎛ −B ⎞
⎜⎜ 2 ⎟⎟⎟ =
⎜⎝ B ⎟⎠
3
0
(137)
1 6
3 8
u −
u +
64
128
Comparing equations (137) with equations (134) we have
⎛B ⎞
1 4 1 6
54 8
u − u +
u
−2 ⎜⎜ 4 ⎟⎟⎟ =
⎜⎝ B ⎠⎟
64
64
4096
0
1 ⎛⎜ −B2 ⎞⎟
1 4 1 6
53 8
⎟⎟ =
u − u +
u
⎜⎜
4 ⎝ B0 ⎟⎠
64
64
4096
2
Geodesics – Bessel's method
41
1
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
and these two equations differ by
difference, we define
⎛ B ⎞ 1 ⎛ −B ⎞
−2 ⎜⎜ 4 ⎟⎟⎟ ≡ ⎜⎜ 2 ⎟⎟⎟
⎜⎝ B ⎠⎟ 4 ⎜⎝ B ⎠⎟
0
0
2
(138)
Again, comparing equations (137) with equations (134) we have
⎛B ⎞
1
1
u6 +
u8
− ⎜⎜ 6 ⎟⎟⎟ =
⎜⎝ B0 ⎠⎟
1536
1024
1 ⎛⎜ −B2 ⎞⎟
1
3
⎟ =
u6 +
u8
⎜
⎟
⎟
⎜
24 ⎝ B0 ⎠
1536
3072
2
and noting that
1
3
u8 =
u 8 we may say
1024
3072
⎛B ⎞
1 ⎜⎛ −B2 ⎟⎞
⎟
− ⎜⎜ 6 ⎟⎟⎟ =
⎜⎝ B ⎠⎟ 24 ⎜⎜⎝ B ⎟⎟⎠
0
0
3
(139)
Using equations (138) and (139) we may write equation (136) as
2
⎧
⎪⎛ −B ⎞
1 ⎜⎛ −B2 ⎞⎟
2⎟
⎪
⎜
⎟⎟ cos 2σm + ⎜
⎟⎟ cos σ (2 cos2 2σm − 1)
Δσ = sin σ ⎨⎜
⎜
⎜
⎟
⎪
4 ⎝ B0 ⎠⎟
B
⎪
⎪
⎩⎝ 0 ⎠
3
⎫
⎪
1 ⎛⎜ −B2 ⎟⎞
2
2
⎟⎟ cos 2σm (3 − 4 sin σ )(4 cos 2σm − 3)⎪⎬
+ ⎜
⎪
24 ⎜⎝ B0 ⎠⎟
⎪
⎪
⎭
We may now express the great circle arc length σ as
σ =
s
+Δσ
bA′
(140)
where
{
Δσ = 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
⎪
⎭
(141)
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+
4096 + u 2 (−768 + u 2 (320 − 175u 2 ))
16384
(
B′ =
)
1
1
37 6 47 8
−B2
= 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
=
256 + u 2 (−128 + u 2 (74 − 47u 2 ))
1024
(
)
(142)
(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
f (1 + f ) cos2 αE − f 2 cos4 αE
4
16
1
1
A2′ = f (1 + f ) cos2 αE − f 2 cos4 αE
4
4
1 2
A4′ =
f cos 4 αE
32
A0′ = 1 −
(145)
Equation (144) can be written as
⎧
⎫
⎪
⎪
A′
A′
Δω − Δλ = A0′ f sin αE ⎪⎨σ + 2 cos 2σm sin σ + 4 cos 4σm sin 2σ⎪⎬
⎪
⎪
A0′
A0′
⎪
⎪
⎩
⎭
(146)
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′
(147)
= A0′ f sin αE ⎪⎨σ + sin σ ⎢ 2 cos 2σm + 2 4 cos σ (2 cos2 2σm − 1)⎥ ⎪
⎢ A0′
⎥⎬
⎪
⎪
′
A
0
⎣
⎦ ⎭⎪
⎩⎪
Now the coefficient A0′ may be re-arranged as follows
1
3 2
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
A0′ = 1 −
or
A0′ = 1 − C
where
C =
f
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
Ignoring terms greater than f 3 (greater than f 2 in
A2′
) we have
A0′
1
1
3
A2′
≡ f cos2 αE + f 2 cos2 αE − f 2 cos4 αE
4
4
16
A0′
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
and ignoring terms greater than f 3 (greater than f 2 in
A4′
1 2
≡
f cos 4 αE
A0′
32
and 2
A4′
) we have
A0′
A4′
1 2
=
f cos 4 αE
A0′ 16
Now
C2 =
1 2
1
3 3
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
C2 ≡
A′
1 2
f cos 4 αE = 2 4
A0′
16
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
C =
Geodesics – Bessel's method
f
cos2 αE (4 + f (4 − 3 cos2 αE ))
16
(149)
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 )
e ′2 2nd-eccentricity of ellipsoid squared, e ′2 =
e2
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.
σ1 angular distance from equator to P1′ on the auxiliary sphere, tan σ1 =
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.
With the ellipsoid constants a, f , b = a (1 − f ), e 2 = f (2 − f ) and e ′2 =
e2
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 =
5.
tan ψ1
cos α1
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
A′ = 1 +
B′ =
7.
u2
4096 + u 2 (−768 + u 2 (320 − 175u 2 ))
16384
(
)
u2
256 + u 2 (−128 + u 2 (74 − 47u 2 ))
1024
(
)
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′
The first approximation for σ in this iterative solution can be taken as σ
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 )
tan φ2 =
9.
s
bA′
sin ψ1 cos σ + cos ψ1 sin σ cos α1
(1 − f ) sin2 αE + (sin ψ1 sin σ − cos ψ1 cos σ cos α1 )
2
Compute the longitude difference Δω on the auxiliary sphere from
tan Δω =
Geodesics – Bessel's method
sin σ sin α1
cos ψ1 cos σ − sin ψ1 sin σ cos α1
48
10.
Compute Vincenty's constant C from
C =
11.
f
cos2 αE (4 + f (4 − 3 cos2 αE ))
16
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
tan α2 =
13.
}
sin αE
cos ψ1 cos σ cos α1 − sin ψ1 sin σ
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.
With the ellipsoid constants a, f , b = a (1 − f ), e 2 = f (2 − f ) and e ′2 =
φ1, λ1 and φ2 , λ2
1.
e2
and given
1 − e2
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 .
sin2 σ = (cos ψ2 sin Δω ) + (cos ψ1 sin ψ2 − sin ψ1 cos ψ2 cos Δω )
2
2
cos σ = sin ψ1 sin ψ2 + cos ψ1 cos ψ2 cos Δω
sin σ
cos σ
cos ψ1 cos ψ2 sin Δω
sin αE =
sin σ
2 sin ψ1 sin ψ2
cos 2σm = cos σ −
cos2 αE
f
cos2 αE (4 + f (4 − 3 cos2 αE ))
C=
16
tan σ =
{
Δω = Δλ + (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
A′ = 1 +
B′ =
7.
u2
4096 + u 2 (−768 + u 2 (320 − 175u 2 ))
16384
(
)
u2
256 + u 2 (−128 + u 2 (74 − 47u 2 ))
1024
(
)
Compute geodesic distance s from
{
Δσ = 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 (σ − Δσ )
8.
Compute the forward azimuth α12 = α1 from
tan α1 =
Geodesics – Bessel's method
cos ψ2 sin Δω
cos ψ1 sin ψ2 − sin ψ1 cos ψ2 cos Δω
51
9.
Compute azimuth α2 from
tan α2 =
10.
cos ψ1 sin Δω
− sin ψ1 cos ψ2 + cos ψ1 sin ψ2 cos Δω
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 α
φ = −10
φ = −10
α12 = 94 06′ 55.752182′′
λ = 110
λ = 155
α21 = 265 53′ 04.247 818 ′′
φ = −10
φ = −45
α12 = 140 30′ 03.017 703′′
λ = 110
λ = 155
α21 = 297 48 ′ 47.310 738 ′′
φ = −10
φ = −45
α12 = 180 00′ 00.000 000′′
λ = 110
λ = 110
α21 = 0 00′ 00.000 000′′
φ = −10
φ = −45
α12 = 219 29′ 56.982 297 ′′
λ = 155
λ = 110
α21 = 62 11′ 12.689 262′′
φ = −45
φ = −10
α12 = 1 43′ 25.876 544 ′′
λ = 132
λ = 133
α21 = 181 14 ′ 22.613 213′′
φ = −35
φ = −36
α12 = 105 00′ 10.107 712′′
λ = 110
λ = 155
α21 = 257 56′ 53.869 209′′
distance s
s = 4 929 703.675 416 m
s = 5 783 228.548 429 m
s = 3 879 089.544 659 m
s = 5 783 228.548 429 m
s = 3 880 275.684153 m
s = 4 047 421.887 193 m
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: rod.deakin@rmit.edu.au
%
% 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: rod.deakin@rmit.edu.au
%
% 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
s2
c1
c2
=
=
=
=
sin(psi1);
sin(psi2);
cos(psi1);
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
[D,M,S] = DMS(lat1);
if D==0 && lat1<0
fprintf('\nlatP1 = -0 %2d %9.6f
else
fprintf('\nlatP1 = %3d %2d %9.6f
end;
[D,M,S] = DMS(lon1);
if D==0 && lon1<0
fprintf('\nlonP1 = -0 %2d %9.6f
else
fprintf('\nlonP1 = %3d %2d %9.6f
end;
fprintf('\n\nLatitude & Longitude of
[D,M,S] = DMS(lat2);
if D==0 && lat2<0
Geodesics – Bessel's method
P1');
(D M S)',M,S);
(D M S)',D,M,S);
(D M S)',M,S);
(D M S)',D,M,S);
P2');
63
fprintf('\nlatP2
else
fprintf('\nlatP2
end;
[D,M,S] = DMS(lon2);
if D==0 && lon2<0
fprintf('\nlonP2
else
fprintf('\nlonP2
end;
=
-0 %2d %9.6f (D M S)',M,S);
= %3d %2d %9.6f (D M S)',D,M,S);
=
-0 %2d %9.6f (D M S)',M,S);
= %3d %2d %9.6f (D M S)',D,M,S);
fprintf('\n\nParametric Latitudes of
[D,M,S] = DMS(psi1*d2r);
if D==0 && psi1<0
fprintf('\npsiP1 = -0 %2d %9.6f
else
fprintf('\npsiP1 = %3d %2d %9.6f
end;
[D,M,S] = DMS(psi2*d2r);
if D==0 && psi2<0
fprintf('\npsiP2 = -0 %2d %9.6f
else
fprintf('\npsiP2 = %3d %2d %9.6f
end;
P1 and P2');
(D M S)',M,S);
(D M S)',D,M,S);
(D M S)',M,S);
(D M S)',D,M,S);
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
D =
M =
S =
= abs(DecDeg);
fix(val);
fix((val-D)*60);
(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. 978987.
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: rod.deakin@rmit.edu.au
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.
vertex
B
•
•α
c
i
s
BA
de
geo
b
no
rm
a
φA l O φB
•
a HA • H a
B
equator
αAB
C
φmax
al
•
n
rm
A
no
Greenwic
hm
e ri
dia
N
λA
λB
S
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
1
= 1 − ; b = a (1 − f ) ; e 2 =
=
−
= f (2 − f )
a
a
a2
a2
The second eccentricity e′ of an ellipsoid is also of use and
f =
( e′)
2
=
f (2 − f )
a 2 − b2
e2
=
=
2
2
2
1− e
b
(1 − f )
(1)
(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 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 )
(1 − e
2
sin φ )
2
3
2
and
(1 − e
sin φ )
a
2
ρ dφ
In the development that follows, use
will be made of relationships that can be
obtained from the differential rectangle on
the ellipsoid shown in Figure 2. Here P
and Q are two points on the surface
connected by a curve of length ds with
azimuth α at P. The meridians λ and
λ + d λ , and parallels φ and φ + dφ form
a differential rectangle on the surface of
the ellipsoid.
From Figure 2 the following
relationships can be obtained
ν=
2
α
(3)
1
2
Q
•
ds
P
•
ν cos φ dλ
λ
α+dα
φ+dφ
φ
λ+dλ
Fig. 2: Differential rectangle on ellipsoid
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 AlexisClaude 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 .
φ max
P0 vertex
•
s
φ
A
node
P
•
•
λ
Δλ
Δ λ4
λ0
node
B
•
equator
node
φ min
•
A'
•
A
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 northeasterly 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.
n or
a
ma
l
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
z
NPE of an ellipsoid having semi-major axis
auxiliary circle
OE = a and semi-minor axis ON = b . P is a
N'
Q
point on the ellipsoid and Q is a point on an
N
•
auxiliary circle centred on O of radius a. P and
• P
Q have the same perpendicular distance from the
ta n
axis of revolution ON. The normal to the
ge
b
nt
ellipsoid at P cuts the major axis at an angle φ
(the geodetic latitude) and intersects the
rotational axis at H and the distance PH = ν .
O ψ φ
E
M
The angle QOE = ψ is the parametric latitude.
a
w
The Cartesian equation of the ellipse is
H•
w2 z 2
+
=
and
the
Cartesian
equation
of
the
1
a 2 b2
Fig. 4: Meridian section of ellipsoid
auxiliary circle is w2 + z 2 = a 2 . We may rearrange 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
2
and Q are the same then a − 2 z P = a 2 − zQ2 which leads to z P = zQ .
b
a
Using this relationship
w = OM = a cosψ
and
z = MP = b sin ψ
and differentiating equations (6) with respect to ψ gives
and the chain rule gives
dz
dz dψ
b
=
= − cotψ .
dw dψ dw
a
6
(6)
dw
dz
= − a sinψ ,
= b cosψ
dψ
dψ
Now by definition,
dz
is the gradient of the tangent and from Figure 4 we may write
dw
dz
= − tan ( 90 − φ ) = − cot φ . Equating the two expressions for dz dw gives a
dw
relationship between ψ and φ as
tanψ =
b
tan φ = (1 − f ) tan φ
a
(7)
From equation (6) and Figure 4, w = a cosψ = ν cos φ and using equation (3) gives
cosψ =
(1 − e
cos φ
2
sin 2 φ )
(8)
12
Alternatively, using the trigonometric identity sin 2 A + cos 2 A = 1 , equation (8) can be
written as
sin φ =
(1 − e
sinψ
2
cos 2 ψ )
(9)
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
can obtain the azimuth α of a geodesic as
2
2
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
Differential equations for distance
ds
dλ
and longitude difference
dψ
dψ
From equation (9) we may write sin 2 ψ = (1 − e 2 cos 2 ψ ) sin 2 φ and differentiating
2
2
dφ (1 − e sin φ ) sinψ cosψ
=
dψ (1 − e 2 cos 2 ψ ) sin φ cos φ
implicitly and re-arranging gives
(13)
Using the chain rule and equation (4) gives an expression for the derivative
2
2
ds ds dφ
ρ (1 − e sin φ ) sinψ cosψ
=
=
dψ dφ dψ cos α (1 − e 2 cos 2 ψ ) sin φ cos φ
Using equations (7), (8), (9) and the fact that 1 − e 2 =
ds
as
dψ
(14)
b2
, we may write
a2
(1 − e2 cos2 ψ )
ds
= a cosψ
12
dψ
( cos2 ψ − cos2 ψ 0 )
12
(15)
(1 − e2 cos2 ψ )
sin α
d λ d λ ds
=
=
a cosψ
12
dψ ds dψ ν cos φ
( cos2 ψ − cos2 ψ 0 )
Similarly, the chain rule and equations (4) and (15) gives
12
(16)
Using equation (10) and the relationship a cosψ = ν cos φ , we may write
2
2
d λ cosψ 0 (1 − e cos ψ )
=
dψ cosψ ( cos 2 ψ − cos 2 ψ )1 2
0
12
(17)
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
dψ
2
2
ds
du (1 − e cos ψ )
=a
dψ
dψ ( u 2 − u 2 )1 2
0
12
8
(18)
2
2
du a (1 − e cos ψ )
=
12
dψ
(u 2 − u 2 )
ds ds
=
The chain rule gives
du dψ
but using cos 2 ψ = 1 − sin 2 ψ
12
0
2
ds b (1 + ε u )
=
du ( u 2 − u 2 )1 2
0
and equations (1) and (2) we are able to obtain, after some manipulation
12
(19)
where ε = ( e′ ) . The geodesic distance s between P and the vertex P0 is given by
2
s=b
(1 + ε p )
∫ u −p
(
)
p = u0
2 12
p =u
2 12
2
0
(20)
dp
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
1
3 − 2n 12
Bn −1 , n ≥ 1 and B02 = 1
2n
Equation (20) can now be written as
Bn2 =
1
s = b∫
u0
u
(u
1
2
0
−p
∑B ε
∞
)
2 12
1
2
n =0
n
n
p dp = b∑ Bn ε
∞
2n
n =0
In =
where
∫
u0
u
(u
1
2
∫
u0
n
u
(u
− p2 )
p 2n
2
0
12
p 2n
2
0
−p
dp ,
)
(22)
dp = b∑ ε n Bn2 I n
∞
2 12
1
n =0
for n ≥ 0
(23)
(24)
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.
Now
In =
∫
u0
u
(u
p 2n
2
0
−p
)
2 12
dp = − ∫ p 2 n −1
u0
u
(u
−p
2
0
−p
)
2 12
dp = − ∫ p 2 n −1
u0
u
12
d 2
u0 − p 2 ) dp
(
dp
and using integration by parts (e.g., Ayres 1972) the integral I n becomes
9
12
12
I n = − ⎡⎢ p 2 n −1 ( u02 − p 2 ) − ∫ ( u02 − p 2 ) ( 2n − 1) p 2 n − 2 dp ⎤⎥
⎣
⎦ p =u
p = u0
= u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) ∫ ( u02 − p 2 )
u0
12
(u
= u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) ⎣⎡u02 I n −1 − I n ⎦⎤
u
p 2n−2
2
0
−p
)
2 12
dp
12
and
2n I n = u 2 n −1 ( u02 − u 2 ) + ( 2n − 1) u02 I n −1
for n = 1, 2,3,…
12
Let U =
u
so that u = Uu0 , u02 − u 2 = u02 (1 − U 2 ) giving
u0
2n I n = (Uu0 )
2 n −1
(25)
u0 (1 − U 2 ) + ( 2n − 1) u02 I n−1
12
(26)
for n = 1, 2,3,…
2 ( n − 1) u02
2n I n
so
that
=
I n −1 and the recurrence formula for I n becomes
J
n −1
u02 n
u02 n
a simpler recurrence formula for J n
Let J n =
J n = U 2 n −1 1 − U 2 +
2n − 1
J n −1
2 ( n − 1)
for n = 2, 3,…
(27)
(28)
with initial condition
J1 =
2 I1
= U 1 − U 2 + I0
u02
I 0 has a simple result derived from equation (24) as follows:
(
I 0 = (1 u0 ) ∫ 1 − [ p u0 ]
u0
)
2 −1 2
(29)
dp
(30)
and with the transformation p = u0 cos θ , dp dθ = −u0 sin θ and 1 − [ p u0 ] = 1 − cos 2 θ
u
2
I0 =
∫
0
⎛u ⎞
θ = arccos⎜ ⎟
⎝ u0 ⎠
⎛u⎞
⎟ = arccos U
⎝ u0 ⎠
( −1) dθ = arccos ⎜
(31)
Using these results, the distance s along the geodesic between P and the vertex P0 is
1
1 ∞ 1
⎧
⎫
s = b ⎨ I 0 + ∑ ε nu02 n Bn2 J n ⎬
2 n =1 n
⎩
⎭
1
1
1
b
b
b
= bI 0 + ε u02 B12 J1 + ε 2u04 B22 J 2 + ε 3u06 B32 J 3 +
2
4
6
= D0 + D1 + D2 + D3 +
10
(32)
Formula for computing difference in longitude ∆λ between P and P0
Using the binomial series we may write equation (17) as
∞
1
cos 2 n −1 ψ
dλ
n
= cosψ 0 ∑ ( −1) e 2 n Bn2
12
dψ
n=0
( cos2 ψ − cos2 ψ 0 )
(33)
and the difference in longitude between P and the vertex P0 is
Δλ =
where the integral Ln is
Ln =
∫
ψ0
θ =ψ
∫
ψ0
θ =ψ
∞
1
dλ
n
dθ = cosψ 0 ∑ ( −1) e 2 n Bn2 Ln
dθ
n=0
cos 2 n θ
cos θ ( cos 2 θ − cos 2 ψ 0 )
12
dθ ,
(34)
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 −1
(
(
cos 2 n θ
dθ =
dp = (1 − p 2 ) dp
cos θ dθ =
2
2
cos θ
cos θ
1− p
n
and
( cos θ − cos ψ )
2
12
2
0
giving
n
(
= 1 − sin 2 θ − (1 − sin 2 ψ 0 )
(1 − p )
=∫
(u − p )
2 n −1
u0
Ln
2
0
u
polynomial (1 − p 2 )
2 12
)
12
= ( u02 − p 2 )
12
dp, n ≥ 1
(36)
= ∑ ( −1) Bmn −1 p 2m , where the binomial coefficients Bmn −1 are
Using the binomial series, the numerator of the integrand can be expanded into a
n −1
n −1
m
m =0
given by
n − m n −1
Bm −1 for m = 2,3, 4,…
m
with an initial value B1n −1 = n − 1 and noting that B0n −1 = 1 .
Using these results, equation (36) becomes
Bmn −1 =
Ln = ∑ ( −1) Bmn −1 ∫
n −1
u0
m
m=0
where
u
Im =
∫
u0
u
( u02 − p
)
p 2m
n −1
2 12
( u02 − p 2 )
p 2m
12
11
dp = ∑ ( −1) Bmn −1 I m
dp ,
m
m =0
for m ≥ 0
(37)
(38)
(39)
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
1
⎧
⎫
n
m
Δλ = cosψ 0 ⎨ L0 + ∑ ( −1) e 2 n Bn2 ∑ ( −1) Bmn −1 I m ⎬
n =1
m =0
⎩
⎭
Equation (40) can expanded as
(40)
∞
1
1 ⎤
⎧
⎡
n
Δλ = cosψ 0 ⎨ L0 + ⎢ −e2 B12 + ∑ ( −1) e2 n Bn2 ⎥ I 0
n=2
⎣
⎦
⎩
+ ∑ ( −1) e Bn ∑ ( −1)
∞
n
2n
n=2
(1 − e2 )
n −1
1
2
m =1
m
⎫
B I ⎬
⎭
and then simplified by use of the binomial series, where
12
The terms in
(41)
n −1
m
m
= ∑ ( −1) e 2 n Bn2 = 1 + ∑ ( −1) e 2 n Bn2 = 1 − e 2 B12 + ∑ ( −1) e 2 n Bn2
∞
[ ]
∞
1
n
n=0
1
n
∞
1
n =1
1
n
n=2
(42)
of equation (41) are the last two terms on the right-hand side of
(
)
equation (42) and using this equivalence gives
⎧
Δλ = cosψ 0 ⎨ L0 +
⎩
⎧⎪
= cosψ 0 ⎨ L0 +
⎪⎩
(
∞
n −1
1
⎫
n
m
1 − e 2 − 1 I 0 + ∑ ( −1) e 2 n Bn2 ∑ ( −1) Bmn −1 I m ⎬
n=2
m =1
⎭
)
1 − e −1 I0 +
2
∑ ( −1)
∞
1
2
n=2
n
e Bn ∑
1
2
2n
n −1
m =1
( −1)
⎫⎪
u02 m Bmn −1 J m ⎬
m
⎪⎭
m
(43)
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
L0 =
∫
ψ0
θ =ψ
cos θ ( cos 2 θ − cos 2 ψ 0 )
1
12
dθ =
∫
ψ0
θ =ψ
( sin ψ
2
Putting x = cotψ 0 tan θ then dθ dx = tanψ 0 cos 2 θ and
sec 2 θ
2
2
0 − tan θ cos ψ 0 )
12
dθ
(44)
⎛
cos 2 ψ 0 ⎞
sin 2 ψ 0 − tan 2 θ cos 2 ψ 0 = sin 2 ψ 0 ⎜ 1 − tan 2 θ
⎟
sin 2 ψ 0 ⎠
⎝
= sin 2 ψ 0 (1 − tan 2 θ cot 2 ψ 0 )
= sin 2 ψ 0 (1 − x 2 )
so that
tanψ 0
L0 =
sinψ 0
∫ψ
1
tan
x=
tanψ 0
12
dx
1 − x2
(45)
∫
since
arcsin x
⎧
= ⎨π
, then using the second result gives
1− x
⎩ 2 − arccos x
dx
2
L0 = secψ 0
⎛ tanψ ⎞
= secψ 0 arccos ⎜
⎟
1− x
⎝ tanψ 0 ⎠
∫ψ
1
dx
2
tan
x=
tanψ 0
(46)
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 +
where
⎧L
⎪ 0
⎪
M n = ⎨ 1 − e2 − 1 I 0
⎪ 1
⎪⎩ 12 Bn2 ( −1)n e 2 n K n
Kn = ∑
n −1
and
)
(
m =1
( −1)
m
m
}
for n = 0
(47)
for n = 1
(48)
for n ≥ 2
for n = 2,3, 4,…
u02 m Bmn −1 J m
(49)
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
4 ( Δλ4 ) = 4 cosψ 0
(1 − e cos θ )
∫ cos θ cos θ − cos ψ
(
)
ψ0
2
θ =0
2
12
2
12
2
dθ
(50)
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 θ )
12
≤ (1 − e2 cos 2 ψ 0 )
12
so that on the one hand
(1 − e cos ψ )
4 ( Δλ ) ≤ 4 cosψ ∫
cos θ ( cos θ − cos ψ )
= 4 cosψ (1 − e cos ψ ) L
= 4 cosψ (1 − e cos ψ ) π secψ
= 2π (1 − e cos ψ )
ψ0
4
0
2
0
θ =0
2
12
2
dθ
0
2
12
2
0
0 ψ =0
0
2
12
2
0
0
2
12
2
12
2
0
13
1
2
0
(51)
(1 − e )
while on the other hand
4 ( Δλ4 ) ≥ 4 cosψ 0
∫
ψ0
cos θ ( cos 2 θ − cos 2 ψ 0 )
2 12
θ =0
= 2π (1 − e 2 )
12
dθ
12
Combining these inequalities gives the bounds for the quantity 4 ( Δλ4 ) as
2π (1 − e2 )
12
≤ 4 ( Δλ4 ) ≤ 2π (1 − e 2 cos 2 ψ 0 )
12
(52)
Therefore, after a single revolution, 4 ( Δλ4 ) < 2π when 0 < ψ 0 < 90 . Note that when
(53)
ψ 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 .
b = a (1 − f )
Numerical constants for GRS80 ellipsoid and geodesic
= 6356752.314140356 metres
ψ = arctan ⎡⎣(1 − f ) tan φ ⎤⎦ = 0.166826262923 radians
ψ 0 = arccos [ cosψ sin α ] = 0.829602797993 radians
u = sinψ
U =
V =
= 0.166053515348; u0 = sinψ 0
= 0.737663250899
u
sinψ
=
= 0.225107479796; I 0 = arccos U = 1.343742980976 radians
u0 sinψ 0
tanψ
tanψ 0
= 0.154125311675; L0 = secψ 0 arccos V = 2.097333540996 radians
14
Table 1: Ellipsoid and geodesic constants and binomial coefficients for
equations (32) and (47)
εn
n
e2 n
1
2
3
4
5
6
7
8
6.694380022901e-003
4.481472389101e-005
3.000067923478e-007
2.008359477428e-009
1.344472156450e-011
9.000407545482e-014
6.025214847044e-016
4.033507790574e-018
1
u02 n
6.739496775479e-003
4.542081678669e-005
3.061134482735e-007
2.063050597570e-009
1.390392284997e-011
9.370544321391e-014
6.315275323850e-016
4.256177768135e-018
Bn2
0.544147071727
0.296096035669
0.161119790759
0.087672862339
0.047706931312
0.025959586974
0.014125833235
0.007686530791
0.500000000000
-0.125000000000
0.062500000000
-0.039062500000
0.027343750000
-0.020507812500
0.016113281250
-0.013092041016
Table 2: Recurrence formula values and distance components for equation (32)
Dn
n
Jn
1
2
3
4
5
6
7
8
1.563072838216
2.355723441968
2.945217495733
3.436115617261
3.865631515581
4.252194740421
4.606544305836
4.935583185013
sum
8.541841303930e+006
9.109578467516e+003
-6.293571169346e+000
9.618619108010e-003
-1.929070816523e-005
4.456897529564e-008
-1.123696751599e-010
3.006580650377e-013
8.550944598425e+006
8541841.303930 m
9109.5784675
-6.2935712
0.0096186
-0.0000193
0.0000000
-0.0000000
0.0000000
s = 8550944.598425 m
Table 3: Recurrence formula values and longitude components for equation (47)
n
0
1
2
3
4
5
6
7
8
Jn
1.563072838216
2.355723441968
2.945217495733
3.436115617261
3.865631515581
4.252194740421
4.606544305836
4.935583185013
sum
Mn
2.097333540996e+000
-4.505315819380e-003
2.382298926901e-006
1.267831357153e-008
6.525291638252e-011
3.431821056093e-013
1.852429353592e-015
1.023576994037e-017
5.769507252421e-020
2.092830620219e+000
Δλ = cosψ 0 ( sum )
≅ 1.413013969112 radians
= 80.959736823113 degrees
= 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
Δλ 2
φmax
φ1
P2
P1
s3
A
node
•
•
s2
•
α1 = α12
P0 vertex
•
s s1
•
•
α21
P1 •
s4
Δλ1
λ1
P2
λ0
node
B
•
equator
node
A'
•
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
4.
5.
⎧ s − s1 if geodesic is heading towards P0
. If s2 > 0 then P2 is
Compute s2 = ⎨
⎩ 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 )
Compute ψ 2 by iteration. An approximate value ψ 2′ is found from equations (32)
by taking the first term only; hence
⎛s ⎞
and sinψ 2′ = sinψ 0 cos ⎜ 2 ⎟ .
⎝b⎠
⎛ sinψ ⎞
s
= I 0 = arccos ⎜
⎟
b
⎝ sinψ 0 ⎠
ds u02 − u 2
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 ).
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.
Now a re-arrangement of the differential equation (19) gives du =
6.
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.
2.
3.
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 .
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 .
Compute ψ 0 by iteration. Approximations Δλ1′ and Δλ2′ can be obtained from
equation (47) noting that
M 1 , M 2 , M 3 ,…
⎛ tanψ ⎞
M 0 = secψ 0 arccos ⎜
⎟
⎝ tanψ 0 ⎠
and ignoring terms
⎛ 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)
(ψ 0 )n +1 = (ψ 0 )n −
f (ψ 0 )
f ′ (ψ 0 )
(54)
where f ′ (ψ 0 ) is the derivative of f (ψ 0 ) . An initial value of ψ 0 can be computed
4.
from equation (11).
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: rod.deakin@rmit.edu.au
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
λ
Gre
en
wi
b
a
x
O•
φ
H•
equator
P
•
a
y
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
a2
b
(1)
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
= f (2 − f )
a2
a −b
f =
a
e2 =
(2)
and the polar radius c, and the second-eccentricity squared e ′2 are defined by
a2
a
=
b
1− f
2
f (2 − f )
a − b2
e2
2
′
=
=
e =
2
2
b2
(1 − f ) 1 − e
c =
(3)
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 zaxis 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 2 b2
(a < b )
(4)
z
np
•
a
P
no
rm
al
b
p
φ
O
•
H
•
C
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 ⎞⎟
⎜
x + y = a ⎜1 − 2 ⎟⎟ = p 2
⎜⎝
b ⎠
2
2
2
(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 ⎤
⎢ ⎥
⎢ ⎥
⎢ ⎥
′
⎢y ⎥ = R ⎢⎢y ⎥⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
z
⎢⎣ z ′ ⎦⎥
⎣⎢ ⎦⎥
⎡r r
⎤
⎢ 11 12 r13 ⎥
where R = ⎢⎢r21 r22 r23 ⎥⎥
⎢
⎥
r r
r
⎣⎢ 31 32 33 ⎦⎥
where R is an orthogonal rotation matrix and R−1 = RT so
Normal Section.doc
4
⎡ ⎤
⎡x ⎤
⎢x ′⎥
⎢ ⎥
⎢y ⎥ = R−1 ⎢⎢y ′ ⎥⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎢⎣ z ⎥⎦
⎢⎣ z ′ ⎥⎦
and
⎡x ⎤ ⎡r r r ⎤ ⎢⎡x ′⎥⎤
⎢ ⎥ ⎢ 11 21 31 ⎥ ⎢ ⎥
⎢y ⎥ = ⎢r r r ⎥ ⎢y ′ ⎥
⎢ ⎥ ⎢ 12 22 32 ⎥ ⎢ ⎥
⎢ ⎥ ⎢
⎥
⎢⎣ 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 ⎪⎪+2 (r11r31 + r12r32 ) x ′z ′ + 2 (r21r31 + r22r32 ) y ′z ′
⎪
⎪
⎩
⎭
1
+ 2 {r132 x ′2 + r232 y ′2 + r332 z ′2 + 2r13r23x ′y ′ + 2r13r33x ′z ′ + 2r23r33y ′z ′} = 1
b
(6)
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.,
{
}
⎧⎪
⎧⎪⎪r212 + r222
r112 + r122
r132 ⎫⎪⎪ 2
r11r21 + r12r22 r13r23
r232 ⎫⎪⎪ 2
′
′
′
2
x
x
y
+
+
+
+
+
⎨⎪
⎬
⎨
⎬y ′
⎪⎩⎪ a 2
⎪⎩⎪ a 2
b 2 ⎪⎪⎭
a2
b2
b 2 ⎪⎪⎭
+ {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
normal section P2 P1
an
i di
r
e
m
P1
of
α12
P1
•
•
P2
α 21
a
φ1
l
ma
no r
nor
ma
l
normal section P1P2
φ2
rotational axis of ellipsoid
north pole
O centre of ellipsoid
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
ch
λ
N
Gre
en
wi
b
a
x
U
P
•
O•
φ
H•
equator
a
E
y
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
1 − e 2 sin 2 φ
(10)
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 ⎤
⎢ ⎥
⎢E ⎥ = R
⎢ ⎥
φλ
⎢ ⎥
⎢⎣N ⎥⎦
Normal Section.doc
⎡x − x ⎤
0⎥
⎢
⎢y − y ⎥
⎢
0⎥
⎢
⎥
⎢⎣ z − z 0 ⎥⎦
(11)
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.
R φλ
⎡ cos φ
0
⎢
⎢
= R φRλ = ⎢ 0
⎢
⎢− sin φ0
⎢⎣
0 sin φ0 ⎤⎥ ⎡⎢ cos λ0
⎥⎢
1
0 ⎥ ⎢− sin λ0
⎥⎢
0 cos φ0 ⎥⎥ ⎢⎢ 0
⎦⎣
sin λ0
cos λ0
0
0⎤⎥
⎥
0⎥
⎥
1 ⎥⎥
⎦
(12)
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
sin
λ
y
z (z')
sλ
co
x
λ
y
x
λ
sin
sλ
co
•P
⎡x ′⎤ ⎡ cos λ sin λ 0⎤ ⎡x ⎤
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢y ′ ⎥ = ⎢− sin λ cos λ 0⎥ ⎢y ⎥
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢ ′⎥ ⎢
⎥⎢ ⎥
0
1⎥ ⎢ z ⎥
⎢⎣ z ⎥⎦ ⎢⎣ 0
⎦⎣ ⎦
Rλ
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'
•
z'
z"
φ
φ
sφ
co
x'
φ
si n
s
x'
x'
x"
in
P
s
co
z'
φ
⎡x ′′⎤ ⎡ cos φ 0 sin φ ⎤ ⎡x ′⎤
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢y ′′ ⎥ = ⎢ 0
⎥ ⎢y ′ ⎥
1
0
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢ ′′ ⎥ ⎢
⎥⎢ ⎥
⎢⎣ z ⎥⎦ ⎢⎣− sin φ 0 cos φ ⎥⎦ ⎢⎣z ′ ⎥⎦
Rφ
y'(y")
Normal Section.doc
8
Performing the matrix multiplication in equation (12) gives
R φλ
⎡
cos φ0 sin λ0
⎢ cos φ0 cos λ0
⎢
= ⎢ − sin λ0
cos λ0
⎢
⎢− sin φ0 cos λ0 − sin φ0 sin λ0
⎢⎣
sin φ0 ⎥⎤
⎥
0 ⎥
⎥
cos φ0 ⎥⎥
⎦
(13)
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 ⎥
⎢ ⎥
⎢
0⎥
⎢ ⎥
⎢
⎥
−
U
z
z
⎢⎣ ⎥⎦
⎢⎣
0 ⎦⎥
where
⎡ − sin λ
cos λ0
0
⎢
⎢
R = ⎢− sin φ0 cos λ0 − sin φ0 sin λ0
⎢
⎢ cos φ0 cos λ0
cos φ0 sin λ0
⎣⎢
(14)
0 ⎤⎥
⎥
cos φ0 ⎥
⎥
sin φ0 ⎥⎥
⎦
(15)
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 ⎥
⎢
⎥
⎢ ⎥
⎢
⎥
⎢ ⎥
Δ
U
⎢⎣
⎥⎦
⎢⎣ Δz ⎦⎥
(16)
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
tan α12 =
ΔE
ΔN
(17)
By inspection of equations (15) and (16) we may write the equation for normal section
azimuth between points P1 and P2 as
tan α12 =
−Δx sin λ1 + Δy cos λ1
ΔE
=
ΔN
−Δx sin φ1 cos λ1 − Δy sin φ1 sin λ1 + Δz cos φ1
(18)
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
a2
b
(19)
and multiplying both sides of equation (19) by a 2 gives
x 2 + y2 +
a2 2
z = a2
2
b
(20)
a2
= e ′2 + 1 and substituting this result into equation (20)
2
b
and re-arranging gives an alternative expression for the Cartesian equation of an ellipsoid
Re-arranging equation (3) gives
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 ⎥
⎢ ⎥
⎢
0⎥
⎢ ⎥
⎢
⎥
−
U
z
z
⎢⎣ ⎥⎦
⎢⎣
0 ⎥⎦
Normal Section.doc
(22)
10
where the orthogonal rotation matrix R is given by equation (15) as
⎡r r
⎤ ⎡
cos λ0
⎢ 11 12 r13 ⎥ ⎢ − sin λ0
R = ⎢⎢r21 r22 r23 ⎥⎥ = ⎢⎢− sin φ0 cos λ0 − sin φ0 sin λ0
⎢
⎥ ⎢
cos φ0 sin λ0
⎢⎣r31 r32 r33 ⎥⎦ ⎢⎣ cos φ0 cos λ0
0 ⎤⎥
cos φ0 ⎥⎥
⎥
sin φ0 ⎥
⎦
(23)
and
x 0 = ν 0 cos φ0 cos λ0
y 0 = ν 0 cos φ0 sin λ0
(
(24)
)
z 0 = ν 0 1 − e sin φ0
2
with the radius of curvature of the prime vertical section
ν0 =
a
1 − e 2 sin2 φ0
(25)
Re-arranging equation (22) gives
⎡x ⎤
⎡ E ⎤ ⎡x ⎤
⎢ ⎥
⎢ ⎥ ⎢ 0⎥
⎢y ⎥ = R−1 ⎢N ⎥ + ⎢y ⎥
⎢ ⎥
⎢ ⎥ ⎢ 0⎥
⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ z ⎥⎦
⎢⎣U ⎥⎦ ⎢⎣ z 0 ⎦⎥
(26)
where
R −1
⎡r r r ⎤
⎢ 11 21 31 ⎥
= RT = ⎢⎢r12 r22 r32 ⎥⎥
⎢
⎥
⎢⎣r13 r23 r33 ⎥⎦
(27)
Expanding equation (26) gives
x = r11E + r21N + r31U + x 0
y = r12E + r22N + r32U + y 0
z = r13E + r23N + r33U + z 0
(28)
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
+ y 02 + 2r12Ey 0 + 2r22Ny 0 + 2r32Uy 0
(29)
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
(
φ (cos
)
λ ) + sin
r212 + r222 + r232 = sin2 φ0 cos2 λ0 + sin2 λ0 + cos2 φ0 = 1
r + r + r = cos
2
31
2
32
2
33
2
0
2
λ0 + sin
2
2
0
φ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)
Using equation (24) and noting that equation (25) can be re-arranged as 1 − e 2 sin2 φ0 =
a2
ν 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
0
2
0
2
2
0
2
2
2 2
0
2
2
= ν − 2ν 02e 2 sin φ0 + ν 02e 4 sin φ0
(
)
(
= ν 1 − e 2 sin2 φ0 − ν 02e 2 sin2 φ0 1 − e 2
(
= a − ν −a
2
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
)
= −ν 0e cos φ0 sin φ0
2
and
(
)
r31x 0 + r32y 0 + r33z 0 = ν 0 cos2 φ0 cos2 λ0 + ν 0 cos2 φ0 sin2 λ0 + ν 0 1 − e 2 sin2 φ0
(
)
= ν 0 cos φ0 + ν 0 1 − e sin φ0
2
2
2
= ν 0 cos φ0 + ν 0 sin φ0 − ν 0e 2 sin2 φ0
2
2
(
= ν 0 1 − e 2 sin2 φ0
=a
)
2
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ν 0e sin φ0 cos φ0N + 2ν 0 1 − e sin φ0 U
2
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
+ z 02 + 2r13Ez 0 + 2r23Nz 0 + 2r33Uz 0
}
(33)
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 ⎟⎟⎟
⎝
⎠
(
But e ′2 =
)
(
(
)
e2
so we may write
1 − e2
(
e ′2z 2 = e ′2 cos φ0 N + sin φ0 U
+
)
)
2
2
⎞
e2 ⎛ 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 ⎝
(
)
(
(
= e ′2 cos φ0 N + sin φ0 U
(
)
(
)
)
2
)
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
(
(1 − e
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U
+ ν 02
2
)
)
2
− a2
(
sin2 φ0 − ν 02e 2 sin2 φ0 1 − e 2
(
)
)
− 2ν 0e sin φ0 cos φ0 N + 2ν 0 1 − e sin φ0 U
2
(
+ ν e sin φ0 1 − e
2 2
0
2
2
) + 2ν e
(
2
0
2
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
(
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U
)
2
+ 2ν 0U = 0
(35)
The origin of the E,N,U system is at P1 with coordinates φ0 , λ0 where the radius of
curvature of the prime vertical section is ν 0 =
a
(1 − e
2
sin φ0
2
)
1
2
and the first and second
eccentricities of the ellipsoid (a, f ) are obtained from e 2 = f (2 − f ) and e ′2 =
e2
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.
z
λ0
U
N
ellipsoid
P2
•
α
b
P1 •
E
no ν
rm 0
O•
al
•H
a φ0
y
a
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
(
E 2 + N 2 + U 2 + e ′2 cos φ0 N + sin φ0 U
)
2
+ 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
(ξ) U
α
N
η
P2
•
P1 •n
or ν ζ
m 0
al
O•
•
a φ0
ellipsoid
b
E
a
y
H
a
x
equator
Figure 6: Rotated local coordinate system ζ, η, ξ
These two local Cartesian systems; E,N,U and ζ, η, ξ are related by
N cos α
α
η
•
N
(ξ) U
⎡ζ ⎤ ⎡ cos α − sin α 0⎤ ⎡ E ⎤
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢η ⎥ = ⎢ sin α cos α 0⎥ ⎢N ⎥
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢ ⎥ ⎢
⎥⎢ ⎥
0
1⎥ ⎢U ⎥
⎢⎣ ξ ⎥⎦ ⎢⎣ 0
⎦⎣ ⎦
N sin α
E
and
⎡ E ⎤ ⎡ cos α sin α 0⎤ ⎡ζ ⎤
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢N ⎥ = ⎢− sin α cos α 0⎥ ⎢ η ⎥
⎢ ⎥ ⎢
⎥⎢ ⎥
⎢ ⎥ ⎢
⎥⎢ ⎥
0
1⎥ ⎢ ξ ⎥
⎢⎣U ⎥⎦ ⎢⎣ 0
⎦⎣ ⎦
E sin α
E cos α
ζ
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 α
U =ξ
U =ξ
2
(36)
2
giving
E 2 + N 2 +U 2 = ζ 2 + η2 + ξ2
Normal Section.doc
(37)
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
ν0 =
a
(1 − e
2
sin φ0
2
)
1
2
and the first and second eccentricities of the ellipsoid are obtained
from e 2 = f (2 − f ) and e ′2 =
e2
.
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
g = e ′ sin φ0
=
h = e ′ cos α cos φ0 =
e
1 − e2
e
1 − e2
sin φ0
(41)
cos α sin φ0
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
•
η
P1 •n
ζ
or
m ν0
al
d
chor
r
z
φ0
x
O
•
•H
y
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 θ
η = r sin θ
(42)
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
Normal Section.doc
(45)
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
θ
r
B
r+
Δθ
Δr
M
r Δθ
η
O
Δs
A
B
M
Δr
Figure 8: Small element of arc length along a normal section curve
In Figure 8, when Δθ is small, then AM
by the chord AB and (Δs )
2
(
)
r Δθ and the arc length Δs is approximated
r Δθ + (Δr ) or
2
Δs =
2
(r Δθ) + (Δr )
2
2
2⎞
⎛
⎜⎜ 2 ⎛⎜ Δr ⎞⎟ ⎟⎟
= (Δθ ) ⎜r + ⎜⎜ ⎟⎟ ⎟⎟
⎜⎜
⎝ Δθ ⎠⎟ ⎠⎟⎟
⎝
2
and
⎛ Δr ⎞
Δs
= r 2 + ⎜⎜⎜ ⎟⎟⎟
Δθ
⎝ Δθ ⎠⎟
2
Taking the limit of
Δs
as Δθ → 0 gives
Δθ
⎛ Δs ⎞ ds
⎛dr ⎞
= r 2 + ⎜⎜⎜ ⎟⎟⎟
lim ⎜⎜⎜ ⎟⎟⎟ =
Δθ → 0 ⎝ Δθ ⎠
⎟ dθ
⎝d θ ⎠⎟
2
Normal Section.doc
(47)
19
and the arc length is given by
1
2
⎪⎧⎪
⎛ dr ⎟⎞ ⎪⎫⎪⎪2
2
⎪
⎜
s = ∫ ds = ∫ ⎨r + ⎜⎜ ⎟⎟ ⎬ d θ
⎪
⎝d θ ⎟⎠ ⎪⎪
θ =θA ⎪
⎩⎪
⎭⎪
θ =θB
(48)
Referring to Figure 7 the η -axis is tangential to the normal section curve P1P2 at P1 and
π
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
the zenith distance θ = θA =
1
2
⎪⎧⎪
⎛dr ⎟⎞ ⎪⎫⎪⎪2
2
⎪
⎜
s = ∫ ds = ∫ ⎨r + ⎜⎜ ⎟⎟ ⎬ d θ
⎪
⎝d θ ⎟⎠ ⎪⎪
π⎪
⎪
⎭⎪
θ= ⎩
θ =θ2
(49)
2
r is given by equation (46) with normal section constants g and h given by equations (41).
dr
can be obtained from equation (46) using the quotient rule for
dθ
differential calculus
The derivative
du
dv
v
−u
dr
d ⎛⎜ u ⎟⎞
=
⎜ ⎟ = dθ 2 dθ
d θ d θ ⎜⎝ v ⎟⎟⎠
v
(50)
where
u = −2ν 0 cos θ ;
du
= 2ν 0 sin θ ;
dθ
v = 1 + (g cos θ + h sin θ )
dv
= 2 (g cos θ + h sin θ )(h cos θ − g sin θ )
dθ
2
(51)
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
1 − e2
φ, λ latitude and longitude on ellipsoid: φ measured 0 to ± 90 (north latitudes
e ′2 2nd-eccentricity of ellipsoid squared, e ′2 =
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 unit vector aˆ =
a
a
can be calculated by dividing each component by the
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 .
ˆ where p̂
For vectors a and b the vector cross product is a × b = a b sin θ 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
ˆ =p
ˆ = sin θ p
ˆ.
ˆ and for perpendicular unit vectors aˆ × b
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
ν1 =
2.
a
(1 − e
2
1
2
)
Compute the constants g and h of the normal section P1P2 from
g = e ′ sin φ1
e
=
1 − e2
e
h = e ′ cos α12 cos φ1 =
3.
sin φ1
2
1 − e2
sin φ1
cos α12 sin φ1
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
π
2
(i)
Set the counter n = 1 and set the zenith distance θn =
(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
θn +1 = θn −
f (θn )
f ′ (θn )
where f ′ (θn ) is the derivative of f (θn ) and
f (θn ) = ck + ck (g cos θn + h sin θn ) − 2ν1 cos θn
f ′ (θn ) = 2ck (g cos θn + h sin θn )(h cos θn − g sin θn ) − 2ν1 sin θn
2
Note that the iteration for θ is terminated when θn and θn +1 differ by an
acceptably small value.
(iii)
Normal Section.doc
Compute the arc length sk using Romberg integration given a, f , φ1, α12 , θ
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 =
Longitude P1 =
-10
110
0
0
0.000000 (D M S)
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
5586513.169887
c =
13
iterations =
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 =
Longitude P2 =
-45 0 0.000000 (D M S)
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 − e 2 sin2 φ
2.
1
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 .
4b.
Compute chord distance c = c and the unit vector ˆc =
5.
ˆ=
Compute vector u = (x 1 ) i + (y1 ) j + (z1 − z 3 ) k and the unit vector u
c
c
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)
ˆe =
9.
⎛ zˆ uˆ − zˆ uˆ ⎟⎞
⎛ zˆ uˆ − zˆ uˆ ⎞⎟ ⎛ zˆ uˆ − zˆ uˆ ⎞
ˆz × u
ˆ
⎜
k j ⎟
j i⎟
⎜
k i⎟
⎟⎟ j + ⎜⎜⎜ i j
= ⎜⎜ j k
⎟⎟ i − ⎜⎜ i k
⎟k
⎜⎝ cos φ1 ⎟⎟⎠
cos φ1 ⎜⎝ cos φ1 ⎠⎟ ⎜⎝ cos φ1 ⎟⎠
Compute the unit vector n̂ in the meridian plane of P1 from vector cross product.
( n̂ is in the direction of north)
ˆ=u
ˆ × ˆe = (uˆjeˆk − uˆkeˆj ) i − (uˆieˆk − uˆkeˆi ) j + (uˆieˆj − uˆjeˆi ) k
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 )
ˆ=
p
11.
⎛ uˆ cˆ − uˆ cˆ ⎞⎟
ˆ × ˆc ⎜⎛ uˆjcˆk − uˆkcˆj ⎟⎞⎟ ⎛⎜ uˆicˆk − uˆkcˆi ⎞⎟
u
j i⎟
⎟⎟ j + ⎜⎜⎜ i j
= ⎜⎜
⎟⎟ i − ⎜⎜
⎟k
⎜⎝ sin θ ⎟⎟⎠
sin θ ⎜⎝ sin θ ⎟⎠ ⎜⎝ sin θ ⎟⎠
Compute the unit vector ĝ in the local horizon plane of P1 and in the direction of
the normal section P1P2 from vector cross product.
ˆ×u
ˆ = (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
gˆ = p
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 = α
13.
ˆ=
Compute the vector w = (x 1 ) i + (y1 ) j + (z 1 − z 4 ) k and the unit vector w
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
qˆ =
17.
⎛ wˆ cˆ − wˆ cˆ ⎟⎞
ˆ × ˆc ⎜⎛ wˆ jcˆk − wˆkcˆj ⎟⎟⎞ ⎜⎛ wˆicˆk − wˆkcˆi ⎟⎞
w
j i⎟
⎟⎟ j + ⎜⎜⎜ i j
= ⎜⎜
⎟⎟ i − ⎜⎜
⎟⎟ k
sin γ
⎜⎝ sin γ ⎠⎟ ⎜⎝ sin γ ⎠⎟
⎝⎜ sin γ ⎟⎠
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ˆ uˆ − qˆ uˆ ⎟⎞
ˆ ⎜⎛qˆj uˆk − qˆk uˆj ⎟⎞⎟ ⎛⎜qˆiuˆk − qˆk uˆi ⎟⎞
j i⎟
ˆ = qˆ × u
⎟ j + ⎜⎜⎜ i j
h
= ⎜⎜
⎟⎟ 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 =
Longitude P1 =
-10
110
0
0
0.000000 (D M S)
0.000000 (D M S)
Latitude P2 =
Longitude P2 =
-45
155
0
0
0.000000 (D M S)
0.000000 (D M S)
Cartesian coordinates
X
Y
Z
P1
-2148527.045536 5903029.542697 -1100248.547700
-4094327.792180 1909216.404490 -4487348.408755
P2
0.000000
0.000000
7415.121539
P3
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
4 5783232.004951 5783228.923298
5 5783229.694723 5783228.924646
5783228.925106
5783228.924742
5783228.924736
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
e 4 ⎛⎜ s ⎟⎞
s ⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
L −s =
90 ⎜⎝ R ⎟⎠
2
e 4 ⎛⎜ s ⎟⎞
D −s =
s ⎜ ⎟⎟ sin2 φ1 cos2 φ1 sin2 α12 +
24 ⎜⎝ R ⎟⎠
4
(52)
e 4 ⎛⎜ s ⎟⎞
S −s =
s ⎜⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝ R ⎟⎠
4
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
which case cos4 φ1 sin2 α12 cos2 α12 =
Normal Section.doc
1
, thus
4
30
e4 ⎛ s ⎞
(L − s ) < 360 s ⎜⎜⎜ R ⎟⎟⎟⎟
⎝ ⎠
4
(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
a
= 6378137.000000000
f
= 1/298.257222101000
b
= 6356752.314140356100
e2
= 6.694380022901e-003
ep2 = 6.739496775479e-003
ellipsoid parameters
a
= 6378137.000000000
f
= 1/298.257222101000
e2 = 6.694380022901e-003
ep2 = 6.694380022901e-003
Latitude & Longitude of P1
latP1 =
0 0 0.000000 (D M S)
lonP1 =
0 0 0.000000 (D M S)
Azimuth & Distance P1-P2
az12 =
45 0 0.000000 (D M S)
s
=
1600000.000000
Latitude and Longitude of P2
latP2 = 10 10 33.913466 (D M S)
lonP2 = 10 16 16.528718 (D M S)
Reverse azimuth
alpha21 = 225 55
>>
1.180693 (D M S)
Latitude P1 =
Longitude P1 =
Latitude P2 =
Longitude P2 =
0
0
0
0
0.000000 (D M S)
0.000000 (D M S)
10 10 33.913466 (D M S)
10 16 16.528718 (D M S)
Azimuth of normal section P1-P2
Az12
= 45 0 7.344646 (D M S)
ROMBERG INTEGRATION TABLE
1 1600010.313769
2 1600002.577521 1599999.998771
3 1600000.644877 1600000.000663 1600000.000789
4 1600000.161805 1600000.000781 1600000.000789
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: rod.deakin@rmit.edu.au
%
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
- denominator of flattening of ellipsoid
% flat
- function of the zenith distance
% f_zd
% 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
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);
Z');
% 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: rod.deakin@rmit.edu.au
%
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]
s2 =
nu1 =
s2 =
nu2 =
Compute radii of curvature in the prime vertical plane at P1 & P2
sin(lat1)^2;
a/sqrt(1-e2*s2);
sin(lat2)^2;
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.
% 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;
w will lie in the
% [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
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);
Z');
% 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);
= %3d %2d %9.6f (D M S)',D,M,S);
fprintf('\nAz21
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: rod.deakin@rmit.edu.au
%
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: rod.deakin@rmit.edu.au
%
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
I =
h
∫ f (x )dx = 2 ( f
0
+ 2 f1 + 2 f2 +
+ 2 fn −1 + fn ) + E
(55)
a
f (x)
f0
f1
f2
a
f3
fn
b
h
x
where
n is the number of intervals of width h,
h=
b −a
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
I =
∫
f (x )dx =
a
h
( f + 2 f1 + 2 f2 +
2 0
∞
+ 2 fn −1 + fn ) + E = T + ∑ a j h 2 j
(56)
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
Sk +1,1
2j
⎛h ⎞
1
1
1
= T + ∑ a j ⎜⎜⎜ ⎟⎟⎟ = T + a1 2 h 2 + a2 4 h 4 + a 3 6 h 6 +
2
2
2
⎝ 2 ⎠⎟
j =1
∞
(58)
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 ⎟⎟⎟
⎟⎠
⎜⎝ 2
j =2
and
T =
4Sk +1,1 − Sk ,1
3
⎞
a j h 2 j ⎛⎜ 4
−∑
⎜ 2 j − 1⎟⎟⎟
⎟⎠
3 ⎜⎝ 2
j =2
∞
(59)
The first term on the right-hand-side of equation (59) will be designated
Sk ,2 =
4Sk +1,1 − Sk ,1
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
Sk , j =
1
4 j −1 Sk , j −1 − Sk −1, j −1
4 −1
(
j −1
)
k = 1,2, 3, 4, …
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
h2
h4
h6
h8
error term
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 ⎟⎟⎟
2
⎝ 2 ⎠⎟
with each
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
This integral has the known result
∫
∫ sec (x )dx
⎡
⎛ x π ⎞⎤
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: rod.deakin@rmit.edu.au
%
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
- degree to radian conversion factor 57.29577951...
% d2r
% 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)
- maximum number of intervals
% m
% 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
=
= 22.50 and the integral I
( f + 2 f1 + f2 ) . The function
n
2
2 0
1
f (x ) = sec x =
evaluated at x = 0 ,22.5 , 45 gives
cos x
h=
f0 = 1
f1 = 1.082392200
f2 = 1.414213562
and
S1,1 = I =
22.5 ⎛⎜ π ⎟⎞
⎟ 1 + 2 (1.082392200) + 1.414213562 = 0.899084148
⎜
2 ⎜⎝180 ⎟⎟⎠
(
)
• For k = 2 , there are n = 2k = 4 intervals (or strips) of width h where
45 − 0
b −a
h
=
= 11.25 and the integral I
( f + 2 f1 + 2f3 + f4 ) . The function
2 0
4
n
1
f (x ) = sec x =
evaluated at x = 0 ,11.25 ,22.5 , 33.75 , 45 gives
cos x
h=
f0 = 1
f1 = 1.019591158
f2 = 1.082392200
f3 = 1.202689774
f4 = 1.414213562
and
S 2,1 = I =
11.25 ⎛⎜ π ⎟⎞
⎟ 1 + 2 (1.019 …) + 2 (1.082 …) + 2 (1.202 …) + 1.414 … = 0.885885914
⎜
2 ⎜⎝180 ⎟⎟⎠
(
)
The element S 2,2 is obtained from equation (60)
S 2,2 =
1
1
41 S 2,1 − S1,1 = (4 × 0.885885914 − 0.899084148) = 0.881486503
3
4 −1
1
Normal Section.doc
(
)
52
• For k = 3 , there are n = 2k = 8 intervals (or strips) of width h = 5.625 and the
h
1
f0 + 2 f1 + 2 f3 + + 2 f7 + f8 ) . The function f (x ) = sec x =
evaluated
(
2
cos x
at x = 0 , 5.625 ,11.25 , …, 39.375 , 45 gives
integral I
f0 = 1
f1 = 1.004838572
f2 = 1.019591158
f7 = 1.293643567
f8 = 1.414213562
and
S 3,1 = I =
5.625 ⎛⎜ π ⎟⎞
⎟ 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
41 S 3,1 − S 2,1 = (4 × 0.882507478 − 0.885885914) = 0.881381333
3
4 −1
1
1
42 S 3,2 − S 2,2 = (16 × 0.881381333 − 0.881486503) = 0.8813374322
= 2
15
4 −1
S 3,2 =
S 3,3
1
(
)
(
)
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: rod.deakin@rmit.edu.au
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
P
•
curve of alignment
P2
•
ellipsoid
b
no
a
a
rm
no rm
al
P1 •
al
φ1
H1
O•
a
y
•H
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
{}
λP
{}
x
y
z
z
normal section curve
1
b
O•
a
{}
a
x
ellipsoid
al
P1 •
P2
•2
{}
no rm
x1
y1
z1
P
•
x2
y2
z2
x3
y3
z3
•H
φP
a
y
3
equator
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
e =
= f (2 − f )
a2
f (2 − f )
a 2 − b2
e2
e ′2 =
=
=
2
2
b2
(1 − f ) 1 − e
a −b
f =
a
2
(1)
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 |, ~ and ¡ 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 | and ~ 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 ¡ are
⎤
⎡x ⎤ ⎡
0
⎥
⎢ 3⎥ ⎢
⎥
⎢y ⎥ = ⎢
0
⎥
⎢ 3⎥ ⎢
⎥
⎢ ⎥ ⎢
2
z
−νe sin φ ⎥
⎣⎢ 3 ⎦⎥ ⎢⎣
⎦
(4)
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 |, ~ and ¡ 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
x 3 − x 2 y 3 − y2
(6)
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
x − x1 ) − 2
y − y1 ) + 2
(
(
(z − z1 ) = 0
y 3 − y2 z 3 − z 2
x 3 − x2 z 3 − z2
x 3 − x 2 y 3 − y2
(7)
Expanding the determinants in equation (7) gives
(x − x ) {(y
− (y − y ) {(x
+ (z − z ) {(x
Curve of Alignment.doc
1
2
1
2
1
2
}
− x )(z − z ) − (z − z )(x − x )}
− x )(y − y ) − (y − y )(x − x )} = 0
− y1 )(z 3 − z 2 ) − (z 2 − z 1 )(y 3 − y2 )
1
3
2
2
1
3
2
1
3
2
2
1
3
2
(8)
4
Now from equation (4) x 3 = y 3 = 0 and equation (8) becomes
(x − x )(y
− (y − y )(x
+ (z − z )(x
1
2
1
2
1
2
− y1 )(z 3 − z 2 )− (x − x 1 )(z 2 − z1 )(−y2 )
− x 1 )(z 3 − z 2 )+ (y − y1 )(z 2 − z 1 )(−x 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 ) (x z
}
(
)
ν 1 − e 2 e 2 (y2 − y1 ) cos λ − e 2 (x 2 − x 1 ) sin λ sin φ − 1 − e 2 (y1z 2 − y2z 1 ) cos λ
2
1 2
(
− x 2z 1 ) sin λ − 1 − e
2
)(x y
1 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
( )
(x − x ) V = (1 − e )(x z
C = e 2 (y2 − y1 )
H = e2
U = 1 − e 2 (y1z 2 − y2z1 )
2
2
1
2 1
− x 1z 2 )
W = x 1y2 − x 2y1
(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 ′ (φ( ) )
f φ(n )
(15)
n
where n denotes the nth iteration and f (φ ) is given by equation (13) as
f (φ ) = Aν sin φ − B tan φ − D
and the derivative f ′ (φ ) =
(16)
d
f (φ ) is given by
dφ
{
f ′ (φ ) =
}
dν
A sin φ + ν A cos φ − B sec2 φ
dφ
(17)
where, from equation (3)
ν3 2
dν
= e sin φ cos φ
dφ a 2
(18)
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 ′ (λ( ) )
f λ(n )
(21)
n
and
f (λ ) = P cos λ − Q sin λ − S
f ′ (λ ) = −P sin λ − Q cos λ
(22)
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 θ
R = P 2 +Q2 ;
tan θ =
(24)
and using these relationships
−Q
P
(25)
Substituting these results into equation (23) gives
⎧
⎫
⎧⎪−Q ⎪⎫
S
⎪⎪
⎪⎪
⎪⎬
λ = arccos ⎨
⎬ + arctan ⎪⎨
⎪⎪ P 2 + Q 2 ⎪⎪
⎪⎪⎩ P ⎪⎪⎭
⎩⎪
⎭⎪
Curve of Alignment.doc
(26)
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
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 +
24 ⎜⎝ R ⎠⎟
4
(27)
e 4 ⎛⎜ s ⎞⎟
S −s =
s ⎜⎜ ⎟⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝ R ⎠⎟
4
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
which case cos4 φ1 sin2 α12 cos2 α12 =
Curve of Alignment.doc
1
, thus
4
8
e4 ⎛ s ⎞
(S − s ) < 1440 s ⎜⎜⎜ R ⎟⎟⎟⎟
⎝ ⎠
4
(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:
Wauka 1978:
φ −37 47 ′ 49.2232′′
φ −37 30′ 18.0674′′
λ 148 11′ 48.3333′′
λ 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
Spring) and P2 (Wauka 1978). This curve is the
intersection of the normal section plane and the
ellipsoid, and the normal section contains P1,
the normal to the ellipsoid at P1, and P2.
148°15’
148°30’
Murray Spring
r
148°45’
N S W
The GDA94 coordinates of Murray Spring and
Wauka 1978 are:
Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
φ -37°30’1 8.0674” λ 149°58’32.9932”
Wauka 1978:
149°00 ’
BL
ACK
The normal section azimuth and distance are:
116°58’14.173757” 176495.243760 m.
149°15’
AL
L AN
149°30’
LIN
E
Geodesic
149°45 ’
Normal Section
VIC
Wauka 1978
r
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:
NAME
Murray
Spring
A
B
C
D
E
F
G
Wauka
1978
VICTORIA/NSW BORDER
GDA94
LATITUDE
LONGITUDE
-36°47΄49.223200˝
-36°49΄07.598047˝
-36°49΄07.598090˝
-36°49΄07.598051˝
-36°55΄13.876510˝
-36°55΄13.876745˝
-36°55΄13.876614˝
-37°01΄17.289080˝
-37°01΄17.289478˝
-37°01΄17.289366˝
-37°07΄17.845554˝
-37°07΄17.846060˝
-37°07΄17.846030˝
-37°13΄15.555723˝
-37°13΄15.556262˝
-37°13΄15.556326˝
-37°19΄10.429372˝
-37°19΄10.429845˝
-37°19΄10.429972˝
-37°25΄02.476276˝
-37°25΄02.476564˝
-37°25΄02.476677˝
-37°30΄18.067400˝
dφ
Ellipsoid values
ρ
dm = ρ×dφ
148°11΄48.333300˝
N
G
CoA
N
G
CoA
N
G
CoA
N
G
CoA
N
G
CoA
N
G
CoA
N
G
CoA
148°15΄00.000000˝
-00΄00.000043˝
-00΄00.000004˝
6358356.102
-0.0013
-0.0001
148°30΄00.000000˝
-00΄00.000235˝
-00΄00.000104˝
6358465.209
-0.0072
. .-0.0032
148°45΄00.000000˝
-00΄00.000398˝
-00΄00.000286˝
6358573.577
-0.0123
-0.0088
149°00΄00.000000˝
-00΄00.000506˝
-00΄00.000476˝
6358681.204
-0.0156
-0.0147
149°15΄00.000000˝
-00΄00.000539˝
-00΄00.000603˝
6358788.089
-0.0166
-0.0186
149°30΄00.000000˝
-00΄00.000473˝
-00΄00.000600˝
6358894.232
-0.0146
-0.0185
149°45΄00.000000˝
-00΄00.000288˝
-00΄00.000401˝
6358999.632
-0.0089
-0.0124
149°58΄32.993200˝
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 =
Longitude P2 =
-37 30 18.067400 (D M S)
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 =
Longitude P2 =
-37 30 18.067400 (D M S)
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: rod.deakin@rmit.edu.au
%
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
lat1 = -(36 +
lon1 = (148 +
lat2 = -(37 +
lon2 = (149 +
h1 = 0;
h2 = 0;
and height of P1 and P2 on ellipsoid
47/60 + 49.2232/3600)/d2r;
% Spring
11/60 + 48.3333/3600)/d2r;
30/60 + 18.0674/3600)/d2r;
% Wauka 1978
58/60 + 32.9932/3600)/d2r;
% 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);
%
C
H
W
U
V
B
Compute constants of Curve of Alignment
= e2*(Y2-Y1);
= e2*(X2-X1);
= X1*Y2-X2*Y1;
= (1-e2)*(Y1*Z2-Y2*Z1);
= (1-e2)*(X2*Z1-X1*Z2);
= (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
fprintf('\nf
= %12.4f',a);
= 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
fprintf('\nP1
%15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2
%15.6f %15.6f %15.6f',X2,Y2,Z2);
Z');
% 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: rod.deakin@rmit.edu.au
%
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);
%
C
H
W
U
V
Compute constants of Curve of Alignment
= e2*(Y2-Y1);
= e2*(X2-X1);
= X1*Y2-X2*Y1;
= (1-e2)*(Y1*Z2-Y2*Z1);
= (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
fprintf('\nP1
%15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2
%15.6f %15.6f %15.6f',X2,Y2,Z2);
Z');
% 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
else
fprintf('\ntheta P3
end
=
-0 %2d %9.6f (D M S)',M,S);
= %4d %2d %9.6f (D M S)',D,M,S);
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: rod.deakin@rmit.edu.au
%
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
%
p
X
Y
Z
compute Cartesian coordinates X,Y,Z
= (rp+h)*cos(lat);
= p*cos(lon);
= p*sin(lon);
= (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: rod.deakin@rmit.edu.au
%
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: rod.deakin@rmit.edu.au
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).
{}
λP
x
y
z
z
N
great elliptic arc
x1
y1
z1
P
•
1
b
P1 •
O
a
{ }
• θP
3
P2
•2
{}
x2
y2
z2
a
ellipsoid
y
a
x
x3 = 0
y3 = 0
z3 = 0
equator M
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
= f (2 − f )
a2
a −b
f =
a
e2 =
(1)
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
(
)
tan θ = 1 − e 2 tan φ =
2
b2
tan
φ
=
1
−
f
tan φ
(
)
a2
(2)
The geometric relationship between geocentric latitude θ and (geodetic) latitude φ is
shown in Figure 2.
z
N
b
O•
θ
P
t an
no
rm
al
•
φ
a
equator
ge
nt
ellipse
M
H•
Figure 2: Meridian plane of P
The great elliptic plane in Figure 1 is defined by points |, ~ and ¡ that are P1 , P2 and
the centre of the ellipsoid O respectively. Cartesian coordinates of | and ~ 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 ¡ 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 |, ~ and ¡ is given in the form of
a 3rd-order determinant
x − x1
y − y1
x 2 − x 1 y2 − y1
x 3 − x 2 y 3 − y2
z − z1
z 2 − z1 = 0
z3 − z2
(6)
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
x − x1 ) − 2
y − y1 ) + 2
(
(
(z − z1 ) = 0
y 3 − y2 z 3 − z 2
x 3 − x2 z 3 − z2
x 3 − x 2 y 3 − y2
(7)
Expanding the determinants in equation (7) gives
(x − x ) {(y
− (y − y ) {(x
+ (z − z ) {(x
1
2
1
2
1
2
}
− x )(z − z ) − (z − z )(x − x )}
− x )(y − y ) − (y − y )(x − x )} = 0
− y1 )(z 3 − z 2 ) − (z 2 − z 1 )(y 3 − y2 )
1
3
2
2
1
3
2
1
3
2
2
1
3
2
(8)
Now since x 3 = y 3 = z 3 = 0 and equation (8) becomes
(x − x ) {(y
− (y − y ) {(x
+ (z − z ) {(x
1
2
1
2
1
2
}
− x )(−z ) − (z − z )(−x )}
− x )(−y ) − (y − y )(−x )} = 0
− y1 )(−z 2 ) − (z 2 − z 1 )(−y2 )
1
2
2
1
2
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
tan φ =
B sin λ − A cos λ
(
C 1 − e2
(12)
)
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 ′ (λ( ) )
f λ(n )
(13)
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 φ
and the derivative f ′ (λ ) =
d
f (λ ) is given by
dλ
{
}
f ′ (λ ) = −A sin λ − B cos λ
Great Elliptic Arc.doc
(14)
(15)
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
R = A2 + B 2 ;
tan θ =
B
−A
(19)
Substituting these results into equation (17) gives
(
)
2
⎧
⎫
⎪⎪⎪C 1 − e tan φ ⎪⎪⎪
⎪⎧ B ⎪⎫
λ = arccos ⎨
⎬ + arctan ⎪⎨ ⎪⎬
⎪⎪
⎪⎪⎩−A⎭⎪⎪
A2 + B 2 ⎪⎪⎭⎪
⎩⎪
(20)
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
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 +
24 ⎝ R ⎠⎟
4
e 4 ⎛⎜ s ⎞⎟
S −s =
s ⎜ ⎟ cos4 φ1 sin2 α12 cos2 α12 +
360 ⎝⎜ R ⎠⎟⎟
4
(21)
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
sin2 φ1 cos2 φ1 sin2 α12 =
1
, thus
4
e4 ⎛ s ⎞
(D − s ) < 96 s ⎜⎜⎜ R ⎟⎟⎟⎟
⎝ ⎠
4
(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:
Wauka 1978:
φ −37 47 ′ 49.2232′′
φ −37 30′ 18.0674′′
λ 148 11′ 48.3333′′
λ 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
VICTORIA/NSW BORDER
Murra y Spring
BLACK-ALLAN LINE:
r
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,
the normal to the ellipsoid at P1, and P2.
N S W
The GDA94 coordinates of Murray Spring and
Wauka 1978 are:
Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
φ -37°30’1 8.0674” λ 149°58’32.9932”
Wauka 1978:
Great Elliptic Arc
148°15 ’
B LA
CK
148°30’
The normal section azimuth and distance are:
116°58’14.173757” 176495.243760 m.
ALL
AN
148°45’
LIN
E
149°00’
Normal Section
149°15’
VIC
r
Wauka 1978
149°30’
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:
NAME
Murray
Spring
A
B
C
D
E
F
G
Wauka
1978
VICTORIA/NSW BORDER
GDA94
LATITUDE
LONGITUDE
-36°47΄49.223200˝
-36°49΄07.598047˝
-36°49΄07.590584˝
-36°55΄13.876510˝
-36°55΄13.840305˝
-37°01΄17.289080˝
-37°01΄17.234433˝
-37°07΄17.845554˝
-37°07΄17.782643˝
-37°13΄15.555723˝
-37°13΄15.494607˝
-37°19΄10.429372˝
-37°19΄10.379991˝
-37°25΄02.476276˝
-37°25΄02.448453˝
-37°30΄18.067400˝
dφ
Ellipsoid values
ρ
dm = ρ×dφ
148°11΄48.333300˝
N
GEA
N
GEA
N
GEA
N
GEA
N
GEA
N
GEA
N
GEA
148°15΄00.000000˝
148°30΄00.000000˝
148°45΄00.000000˝
149°00΄00.000000˝
149°15΄00.000000˝
149°30΄00.000000˝
149°45΄00.000000˝
+00΄00.007463˝
+00΄00.036205˝
+00΄00.054647˝
+00΄00.062911˝
+00΄00.061116˝
+00΄00.049381˝
+00΄00.027823˝
6358356.102
6358465.209
6358573.577
6358681.204
6358788.089
6358894.232
6358999.632
+0.2301
+1.1161
+1.6846
+1.9394
+1.8841
+1.5224
+0.8578
149°58΄32.993200˝
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 =
Longitude P2 =
-37 30 18.067400 (D M S)
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 =
Longitude P2 =
-37 30 18.067400 (D M S)
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: rod.deakin@rmit.edu.au
%
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
e2
= 1/flat;
= 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);
%
A
B
C
Compute constants of Curve of Alignment
= Y1*Z2-Y2*Z1;
= X1*Z2-X2*Z1;
= 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
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
Z');
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: rod.deakin@rmit.edu.au
%
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);
%
A
B
C
Compute constants of Curve of Alignment
= Y1*Z2-Y2*Z1;
= X1*Z2-X2*Z1;
= 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
fprintf('\nP1
%15.6f %15.6f %15.6f',X1,Y1,Z1);
fprintf('\nP2
%15.6f %15.6f %15.6f',X2,Y2,Z2);
Z');
% 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: rod.deakin@rmit.edu.au
%
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);
%
p
X
Y
Z
compute Cartesian coordinates X,Y,Z
= (rp+h)*cos(lat);
= p*cos(lon);
= p*sin(lon);
= (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: rod.deakin@rmit.edu.au
%
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: rod.deakin@rmit.edu.au
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 .
lo
xo
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
N
ch
λ
Gre
en
wi
b
w
O•
a
φ
H•
equator
x
P
•
a
y
w
Figure 2: The reference ellipsoid
The ellipsoid parameters a, b, f , e 2 are related by the following equations
f =
a −b
b
= 1−
a
a
b = a (1 − f )
e2 =
(2)
a 2 − b2
b2
=
1
−
= f (2 − f )
a2
a2
1 − e2 =
(1)
b2
2
= 1 − f (2 − f ) = (1 − f )
2
a
(3)
(4)
The second eccentricity e ′ of an ellipsoid is also of use and
e ′2 =
f (2 − f )
a 2 − b2
a2
e2
=
−
=
=
1
2
2
2
2
b
b
1 −e
(1 − f )
(5)
e ′2
1 + e ′2
(6)
e2 =
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 )
(1 − e 2 sin2 φ)
ν=
3
2
a
(1 − e 2 sin2 φ)
1
2
a (1 − e 2 )
=
(7)
W3
=
a
W
(8)
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
ρ=
ν=
c =
a2
b (1 + e ′2 cos2 φ)
3
2
a2
b (1 + e ′2 cos2 φ)
1
2
=
c
V3
(10)
=
c
V
(11)
a2
a
=
1− f
b
(12)
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
W2 =
V2
1 + e ′2
and W =
V
(1 + e ′2 )
1
2
b
= V
a
(14)
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.
N
dλ
mer i di an
P
•
•
w
no
rm
φ
a
φ
b
al
parall el
Q
O
H
ρ dφ
α
φ +dφ
Q
equat or
P
α
ds
ν cos φ d λ
λ
φ + 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
⎛ ρ d φ ⎟⎞
⎜
⎟⎟ + d λ 2
= ν cos φ ⎜⎜
⎜⎜⎝ ν cos φ ⎟⎟⎠
2
= ν cos φ dq 2 + d λ 2
(18)
q is known as the isometric latitude defined by the differential relationship
dq =
ρ
dφ
ν cos φ
(19)
(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 λ
tan α =
ρ dφ
=
dλ
dq
(20)
and azimuth α and distance s are linked by the differential relationship
ds =
dm
cos α
=
1
ρ dφ
cos α
(21)
ISOMETRIC LATITUDE
The isometric latitude is defined by the differential equation (19) from which we obtain
q=
ρ
∫ ν cos φ d φ + C
(22)
1
where C 1 is a constant of integration.
Substituting into equation (22) expressions for ρ and ν given by equations (7) and (8),
and simplifying gives
(1 − e )
q=∫
dφ + C
(1 − e sin φ) cos φ
2
2
Loxodrome on Ellipsoid.doc
2
1
(23)
6
The integrand of equation (23) can be separated into partial fractions
(1 − e )
A
B
=
+
(1 − e sin φ) cos φ (1 − e sin φ) cos φ
2
2
2
2
(24)
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
q=
∫
1
e 2 cos φ
dφ − ∫
dφ + C1
cos φ
1 − e 2 sin2 φ
(26)
Put e sin φ = sin u then e cos φ d φ = cos u du and
From standard integrals
q=
∫
=
∫
=
∫
∫
1
dφ − e ∫
cos φ
1
dφ − e ∫
cos φ
1
dφ − e ∫
cos φ
cos u
du + C 1
1 − sin2 u
cos u
du + C 1
cos2 u
1
du + C 1
cos u
(27)
⎧
⎛ π x ⎟⎞⎫
⎪
⎪
1
dx = ln ⎪
⎬ and from half-angle trigonometric
⎨tan ⎜⎜ + ⎟⎟⎪
⎪
⎜⎝ 4 2 ⎟⎠⎪
cos x
⎪
⎪
⎩
⎭
(
(
)
)
1 − cos x + π 2
⎛ A⎞
⎛π x ⎞
1 − cos A
1 + sin x
giving tan ⎜⎜⎜ + ⎟⎟⎟ =
formula tan ⎜⎜⎜ ⎟⎟⎟ = ±
=
.
1 − sin x
1 + cos A
⎝ 2 ⎟⎠
⎝ 4 2 ⎠⎟
1 + cos x + π 2
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 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
loga MN = loga M + loga N , loga
Loxodrome on Ellipsoid.doc
7
e
⎛π φ⎞
⎛ 1 − e sin φ ⎟⎞2
⎟⎟ + C
q = ln tan ⎜⎜⎜ + ⎟⎟⎟ + ln ⎜⎜⎜
⎝ 4 2 ⎟⎠
⎝1 + e sin φ ⎟⎠
e⎫
⎪⎧⎪
⎪
2⎪
⎛
⎞⎛
⎞
π
φ
φ
−
1
sin
e
⎪
⎪
⎟
⎟
⎟⎟ ⎬ + C
= ln ⎨tan ⎜⎜⎜ + ⎟⎟ ⎜⎜⎜
⎪⎪
⎝ 4 2 ⎟⎠⎝1 + e sin φ ⎟⎠ ⎪⎪
⎪⎩⎪
⎪⎭⎪
(28)
The constant C in equation (28) equals zero since if φ = 0 then q = 0 and the isometric
latitude q is obtained from
e⎫
⎧
⎪
⎪
⎪⎪
⎛ π φ ⎟⎞⎛ 1 − e sin φ ⎞⎟2 ⎪⎪
⎟⎟ ⎬
q = ln ⎨tan ⎜⎜⎜ + ⎟⎟ ⎜⎜⎜
⎪⎪
⎝ 4 2 ⎟⎠⎝1 + e sin φ ⎠⎟ ⎪⎪
⎪
⎪⎭⎪
⎪
⎩
(29)
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
∫ dλ
λ1
q2
= tan α ∫ dq
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
⎛ λ − λ ⎟⎞
⎛ Δλ ⎟⎞
1⎟
⎟⎟ = arctan ⎜⎜⎜ 2
α = arctan ⎜⎜⎜
⎟
⎜⎝ q2 − q1 ⎠⎟
⎝ Δq ⎠⎟
(31)
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
a 1 − e2
1
s1 =
ρ dφ =
cos α ∫0
cos α
)
φ1
1
∫W
3
dφ =
0
m1
(32)
cos α
and similarly
s2 =
m2
(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
φ
m=
φ
∫ ρ d φ = a (1 − e ) ∫ (1 − e
2
0
0
2
sin φ
2
)
−
3
2
(
dφ = a 1 − e
φ
2
) ∫ W1
3
dφ
(34)
0
This is an elliptic integral of the second kind and cannot be evaluated directly; instead, the
3
−
1
2
2
2
=
−
φ
is expanded by using the binomial series and then
1
e
sin
3
W
evaluated by term-by-term integration. Following Deakin & Hunter (2008) we obtain an
integrand
(
)
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
⎞
⎜⎜e + e + e +
A4 =
e + ⎟⎟
⎠
256 ⎝
4
64
256
35 ⎛ 6 5 8 315 10
⎞
⎜e + e +
A6 =
e + ⎟⎟
⎜
⎝
⎠
3072
4
256
315 ⎛ 8 7 10
⎞
⎜⎜e + e + ⎟⎟
A8 =
⎠
131072 ⎝
4
693
A10 =
(e10 + )
131072
(36)
Combining equations (32) and (33) gives the length of the loxodrome between P1 and P2
as
s=
m2 − m1
cos α
(37)
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) rearranged 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
and the iterative equation φ(n +1) = φ(n ) −
( ) where f ′ (φ) = d f (φ) and
{ }
dφ
f ′ (φ( ) )
f φ(n )
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:
Wauka 1978:
φ −37 47 ′ 49.2232′′
φ −37 30′ 18.0674 ′′
λ 148 11′ 48.3333′′
λ 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
VICTORIA/NSW BORDER
Murray Spring
BLACK-ALLAN LINE:
r
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,
the normal to the ellipsoid at P1, and P2.
N S W
The GDA94 coordinates of Murray Spring and
Wauka 1978 are:
Murray Spring: φ -37°47’4 9.2232” λ 148°11’48.3333”
φ -37°30’1 8.0674” λ 149°58’32.9932”
Wauka 1978:
Loxodrome
148°15 ’
BL
ACK
148°30’
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.
AL
L AN
148°45’
The loxodrome azimuth and distance are:
116°26’08.400701” 176497.829952 m.
LI
NE
149°00’
Normal Section
149°15’
VIC
r
Wauka 1978
149°30’
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:
NAME
Murray
Spring
A
B
C
D
E
F
G
Wauka
1978
VICTORIA/NSW BORDER
GDA94
LATITUDE
LONGITUDE
-36°47΄49.223200˝
-36°49΄07.598047˝
-36°49΄05.849245˝
-36°55΄13.876510˝
-36°55΄05.371035˝
-37°01΄17.289080˝
-37°01΄04.418599˝
-37°07΄17.845554˝
-37°07΄02.991484˝
-37°13΄15.555723˝
-37°13΄01.089240˝
-37°19΄10.429372˝
-37°18΄58.711427˝
-37°25΄02.476276˝
-37°24΄55.857608˝
-37°30΄18.067400˝
dφ
Ellipsoid values
ρ
dm = ρ×dφ
148°11΄48.333300˝
N
Lox
N
Lox
N
Lox
N
Lox
N
Lox
N
Lox
N
Lox
148°15΄00.000000˝
148°30΄00.000000˝
148°45΄00.000000˝
149°00΄00.000000˝
149°15΄00.000000˝
149°30΄00.000000˝
149°45΄00.000000˝
+00΄01.748802˝
+00΄08.505475˝
+00΄12.870481˝
+00΄14.854070˝
+00΄14.466483˝
+00΄11.717945˝
+00΄06.618668˝
6358356.102
6358465.209
6358573.577
6358681.204
6358788.089
6358894.232
6358999.632
+53.9089
+262.1958
+396.7613
+457.9177
+459.9767
+361.2501
+204.0489
149°58΄32.993200˝
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 =
Longitude P2 =
isometric lat
isometric lat
-37 30 18.067400 (D M S)
149 58 32.993200 (D M S)
P1 =
P2 =
-39 23 36.268670 (D M S)
-40 16 40.540366 (D M S)
diff isometric lat P2-P1 =
diff in longitude P2-P1
=
meridian distance P1 =
meridian distance P2 =
diff in mdist P2-P1
-0 53 4.271697 (D M S)
1 46 44.659900 (D M S)
-4073983.614420
-4152559.155874
=
-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: rod.deakin@rmit.edu.au
%
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
[D,M,S] = DMS(disolat*d2r);
if D == 0 && disolat < 0
fprintf('\n\ndiff isometric lat P2-P1
else
fprintf('\ndiff isometric lat P2-P1 =
end
[D,M,S] = DMS(dlon*d2r);
if D == 0 && dlon < 0
fprintf('\ndiff in longitude P2-P1
=
else
fprintf('\ndiff in longitude P2-P1
=
end
and longitudes
=
-0 %2d %9.6f (D M S)',M,S);
%4d %2d %9.6f (D M S)',D,M,S);
-0 %2d %9.6f (D M S)',M,S);
%4d %2d %9.6f (D M S)',D,M,S);
% 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: rod.deakin@rmit.edu.au
%
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: rod.deakin@rmit.edu.au
%
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;
%
A
B
C
D
E
F
coefficients of series expansion for meridian distance
= 1+(3/4)*e2+(45/64)*e4+(175/256)*e6+(11025/16384)*e8+(43659/65536)*e10;
= (3/4)*e2+(15/16)*e4+(525/512)*e6+(2205/2048)*e8+(72765/65536)*e10;
= (15/64)*e4+(105/256)*e6+(2205/4096)*e8+(10395/16384)*e10;
= (35/512)*e6+(315/2048)*e8+(31185/131072)*e10;
= (315/16384)*e8+(3465/65536)*e10;
= (693/131072)*e10;
term1
term2
term3
term4
=
=
=
=
A*lat;
(B/2)*sin(2*lat);
(C/4)*sin(4*lat);
(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