GeographicLib 2.1.2
TransverseMercatorExact.cpp File Reference

Implementation for GeographicLib::TransverseMercatorExact class. More...

Go to the source code of this file.

Namespaces

namespace  GeographicLib
 Namespace for GeographicLib.
 

Detailed Description

Implementation for GeographicLib::TransverseMercatorExact class.

Copyright (c) Charles Karney (2008-2022) charl.nosp@m.es@k.nosp@m.arney.nosp@m..com and licensed under the MIT/X11 License. For more information, see https://geographiclib.sourceforge.io/

The relevant section of Lee's paper is part V, pp 67–101, Conformal Projections Based On Jacobian Elliptic Functions; borrow from archive.org.

The method entails using the Thompson Transverse Mercator as an intermediate projection. The projections from the intermediate coordinates to [phi, lam] and [x, y] are given by elliptic functions. The inverse of these projections are found by Newton's method with a suitable starting guess.

This implementation and notation closely follows Lee, with the following exceptions:

Lee here Description
x/a xi Northing (unit Earth)
y/a eta Easting (unit Earth)
s/a sigma xi + i * eta
y x Easting
x y Northing
k e eccentricity
k^2 mu elliptic function parameter
k'^2 mv elliptic function complementary parameter
m k scale
zeta zeta complex longitude = Mercator = chi in paper
s sigma complex GK = zeta in paper

Minor alterations have been made in some of Lee's expressions in an attempt to control round-off. For example atanh(sin(phi)) is replaced by asinh(tan(phi)) which maintains accuracy near phi = pi/2. Such changes are noted in the code.

Definition in file TransverseMercatorExact.cpp.