[Proj] Exact transverse Mercator code
strebe at aol.com
Sun Feb 1 04:23:44 EST 2009
I found your work very interesting. Thank you for the excellent depth.
I've posted here and image of yet another ellipsoidal transverse Mercator variation:
This one's properties are:
Conformal (of course)
Straight central meridian (of course)
Parallels are equally spaced.
The importance of this last property is that the projection then may be squeezed through the rectifying latitude calculation as applied to the complex plane, and out pops Gauß-Krüger. I generated the map using the same eccentricity in your examples so that the 81st meridian (and 99th) will run into the singularities. The graticule is 9°. The projection is cropped at a distance of 4 arc seconds around the singularities; in point of fact the projection is infinite in extent.
There are many ways of developing this projection, since it simply requires a conformal projection onto the plane, treating the (x, y) coordinates as a single complex variable z, and then taking the inverse of the conformal projection acting upon z. This returns the x-axis to equal spacing of parallels, dragging the entire conformal plane along for the ride. In practice I use ellipsoidal stereographic as the simplest. Regardless of method, computing the inverse is onerous because it is not closed-form and not well-behaved around the singularities ±π(1±e)/2.
For reference I will call this the Wallis I transverse Mercator. The method is due to Dr. David E. Wallis.
In point of fact, you can reduce the complexity of the rectifying latitude calculation on the way to Gauß-Krüger by transforming coordinates from the Wallis 1 to their parametric co-latitudes. Thence the transformation to Gauß-Krüger needs nothing more than application of the elliptic integral of the second kind. I will call this transformation Wallis II. You can see it here:
This version, being finite, requires no artificial clipping.
I have not looked in detail at how our results compare for the Gauß-Krüger, though spot-checking several points showed we agree to sub-micrometer precision.
— daan Strebe
On Jan 12, 2009, at 10:51:26 AM, "Charles Karney" <ckarney at sarnoff.com> wrote:
I've posted an update to my implementation of the exact transverse
Mercator projection at
This is part of a small C++ library for converting between geographic,
UTM/UPS, and MGRS coordinates.
In addition, I've included some information about the transverse
Mercator projection at
This includes graticules for 3 different transverse Mercator
projections, information about continuing the projection around the
singular point, and an extended test set for the projection.
The library includes
TransverseMercator -- projection using the Krueger series method
extended to 6th-order which is accurate to 5 nm out to 30d from the
TransverseMercatorExact -- projection using Thompson/Lee's exact
formulas which is accurate to 8 nm over the entire ellipsoid. This
is based on the code I posted on 2008-09-16. However, it now deals
with all the singular points, the selection of starting points for
Newton's method has been improved, and there's an "extended" mode
which lets you analytically continue the projection around the
PolarStereographic -- projection using Snyder's formulas with Newton's
method for the inverse in order to provide accuracy close to
UTMUPS and MGRS -- conversion to and from UTM/UPS and MGRS. MGRS is a
potential replacement for the geotrans code. It applies stable
rules to the conversions and provides detailed error diagnostics.
GeoConvert -- utility for conversion between geographic, UTM/UPS, and
TransverseMercatorTest -- utility for testing transverse Mercator
Reports of bugs, typos, gaps in the documentation, etc. are welcome.
Charles Karney <ckarney at sarnoff.com>
Sarnoff Corporation, Princeton, NJ 08543-5300
Tel: +1 609 734 2312
Fax: +1 609 734 2662
Proj mailing list
Proj at lists.maptools.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Proj