# [Proj] Transverse Mercator algorithm

Charles Karney ckarney at sarnoff.com
Thu Sep 4 17:12:07 EDT 2008

```Here are reasonably accurate formulas for meridian convergence and scale
for the transverse Mercator projection.

Input:

l = longitude difference from central meridian (radians)
ep2 = e^2/(1-e^2)

Output:

k = scale (assuming scale on central meridian = 1)

double
c = cos(phi),
s = sin(l),
c2 = c * c,
s2 = s * s,
d = 1 - s2 * c2,
// Accurate to order ep2^2
carg = 1 + c2 * c2 * s2 / d * ep2 *
(1 + c2 / (3 * d * d) *
(2 - s2 * (c2 * ((4 * c2 - 1) * s2 - 9) + 8)) * ep2),
// Accurate to order ep2
cabs = 1 + c2 * c2 * s2 * ((c2 - 2) * s2 + 1) / (2 * d * d) * ep2;
double gamma = atan2(sin(phi) * s * carg, cos(l));
double k = cabs/sqrt(d);

For more accuracy see

http://charles.karney.info/geographic/UTM-fi.txt

which also contains higher order terms for the computation of the
forward and reverse projection.

--
Charles Karney <ckarney at sarnoff.com>
Sarnoff Corporation, Princeton, NJ 08543-5300

URL: http://charles.karney.info
Tel: +1 609 734 2312
Fax: +1 609 734 2662
```