[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:

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

Output:

    gamma = meridian convergence (radians)
    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


More information about the Proj mailing list