[Proj] Transverse Mercator algorithm

Gerald I. Evenden geraldi.evenden at gmail.com
Wed Sep 3 17:50:14 EDT 2008

On Wednesday 03 September 2008 4:59:53 pm Charles Karney wrote:
>  >> There is, however, one noteworthy difference.  The Swedish algorithm
>  >> is only approximately conformal, whereas the Finnish method is
>  >> conformal (to round-off).  This is easily remedied by substituting
>  >> the exact formula for the conformal latitude (as is done in the
>  >> Finnish report).
>  >
>  > In general, I am not that interested in answers to machine precision
>  > merely to about 0,0001mm or 0,001mm would be acceptable.
> Fair enough.  Nevertheless, it does seem worth preserving the conformal
> property to machine precision -- especially when it can be done so
> easily.  (As an example of why this is useful, you can compute accurate
> transformations from one UTM zone to the neighboring one which rely on
> the fact that the transformation is conformal.  A 4-point fit gives 2um
> accuracy over a 10km x 10km area.)

I am not exactly sure that I follow what you are doing above.  In one mental 
image I have of your description I feel you would run afoul of scale error 
due to the non-equivalent distance that the particular area is away from the 
respect CM of the two zones.

I really need a step-by-step description of your operation.

>  >> For my purposes, the exact method serves chiefly to gauge the
>  >> accuracy of the approximate method.  In particular, the error in the
>  >> Finnish and
>  >
>  > That is a useful and valuable asset.
>  >
>  >> The exact method and the derivations of the various series
>  >> approximations are all done in macsyma.  You'll probably need to have
>  >> macsyma installed if you want to use these.
>  >
>  > I have maxima and wxmaxima on my machine which seem to be related some
>  > time ago.  It is my understanding that macsyma is a commercial product
>  > and thus outside my pocketbook.  I do everything on the cheap.  ;-) It
>  > allows me to make everything I do free.
> No need to pay.  I use the free SourceForge version.

I generally rely on the rpm method of download for my kubuntu (also Debain) 
system and so far I have not located and rpm for macsyma.  Doing a raw 
compile can be a bit of a hassle---especially on large bits of software---and 
I like to avoid it.

> It'll take a day or so to make my macsyma code for the exact transverse
> Mercator transformation presentable.  In the meantime, perhaps you can
> verify that your version of maxima functions the way I expect...

I will try this.  Back to you later on this.

> Download
>      http://charles.karney.info/geographic/ellint.mac
> Start maxima, and at the prompts, enter:
>      load("ellint.mac")$
>      ei(0.5b0+%i*0.3b0,0.1b0);
> You should see something like:
>      $ maxima
>      Maxima 5.15.0 http://maxima.sourceforge.net
>      Using Lisp CLISP 2.43 (2007-11-18)
>      Distributed under the GNU Public License. See the file COPYING.
>      Dedicated to the memory of William Schelter.
>      The function bug_report() provides bug reporting information.
>      (%i1) load("ellint.mac")$
>      (%i2) ei(0.5b0+%i*0.3b0,0.1b0);
>      (%o2) 2.96791299781263464924153153342948346508216221524596248948086\
>      569795186664726317202946771827533813431304024592226608707871b-1 %i +
>      4.99982389810326059482523070296819795538149014362475838573470325689\
>      693122595700138979618859431972907386511841619290335085b-1
>      (%i3)
> If you get the same or equivalent output then you should be in good
> shape.

Glory be!  I looked at the first couple and last couple of digits and they 

(%i1) load("ellint.mac");
(%o1)                             ellint.mac
(%i2) ei(0.5b0+%i*0.3b0,0.1b0);
4726317202946771827533813431304024592226608707871b-1 %i + 

>  > The math presented by Thompson and Lee seem quite at odds with several
>  > of the expanded range methods in that they express the problem in
>  > Jacobian functions.  Is there a parallel of have you looked into their
>  > methods?
> The Finnish algorithm is related.  The series relating [xi,eta] and
> [xi',eta'] are just expansions (in eccentricity) of the transformation
> between two of the TM projections described on p. 92 of Lee's 1976
> monograph (namely what he calls the spheroidal projection [xi',eta'] and
> the Gauss-Krueger projection [xi,eta]).

What really held me hostage on Lee's paper were the two equations 10 and 11 
and I was not sure what to do at that point so I decided not to waste any 
more aspirin.  Duh on my part.  After messing around with Dozier's method I 
got used to the Jacobians and ran into plenty of support software like the 
GSL library.

The whole religious complexion of the modern world is due
to the absence from Jerusalem of a lunatic asylum.
-- Havelock Ellis (1859-1939) British psychologist

More information about the Proj mailing list