[Proj] Transverse Mercator algorithm

Gerald I. Evenden geraldi.evenden at gmail.com
Wed Sep 3 14:50:14 PDT 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 
matched

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

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