GeographicLib 2.1.2
|
Implementation for GeographicLib::TransverseMercatorExact class. More...
#include <GeographicLib/TransverseMercatorExact.hpp>
Go to the source code of this file.
Namespaces | |
namespace | GeographicLib |
Namespace for GeographicLib. | |
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.