[Proj] Discovery: libproj4 stmerc = French Gauss-Laborde projection

Oscar van Vlijmen ovv at hetnet.nl
Tue Jun 13 04:51:05 EDT 2006

>> stmerc is a projection in the libproj4 package. There is no documentation.
>> Mr. Evenden mentioned it on this discussion list on 2004-03-26.
>> Recently I found a connection with a projection in real use, the
>> Gauss-Laborde type "sphère de courbure" ...

Mr. Evenden wrote:

> Looking at the NT/G 76, the tmerc projection described uses the isometric
> latitude as the intermediate latitude while stmerc in libproj4 uses the Gauss
> conformal latitude which is more complex in its conversion and has side
> effects such as creating a new radius (see the pj_gauss documentation in the
> libproj4 manual).
> I think I will code 76 up and see how things do compare.  Thankfully, C99 has
> complex arithmetic and math library.  I must add that NT/G series are quite
> useful for developing code.

Going complex is not needed. Those few sums of complex sines can easily be
computed doing Re and Im separately in reals.

NTG 73 describes 3 types of Gauss-Laborde projections. One of them, the
"sphère de courbure", is equal to stmerc.
If you throw a lot of lat, lon, lat0, k0 &c parameters to both and you get
the same results everywhere, they must be the same. This is no rigorous
proof of course.

NTG 76 describes algorithms for the transverse Mercator projection, using
complex math. One of the advantages of this route is that you get very good
results for large differences in lon-lon0.
For instance, if you go 30 degrees away from the central meridian (lon0), at
latitude 10 degrees, you'll find that tmerc departs around 60 m in x and
around 30 m in y from the exact value.
Routines like the French are only microns away from the exact values.
Millimeter accuracy is still available to at least lon-lon0 = 70 degrees,
and beyond that, only for smaller values of the latitude (say <30 deg) the
function gets worse.

At least three geodetic services use routines approximating the exact TM
better than tmerc, DMA/NIMA/NGA and the like:
1) French IGN (see above)
2) Swedish Lantmäteriet
3) Finnish JHS
Each follow a slightly different route, but the differences in the results
are small.

For small values of lon-lon0, say less than 6 degrees, tmerc et alii perform
very well, so nothing can be gained using the above mentioned TMs.

Let's give a testpoint:
WGS84 ellipsoid
lat=40; lon=70; lon0=0; lat0=0; x0=5e5; y0=0; k0=0.9996;
x,y exact: 6289992.60347, 7531297.26735 m
The French routines do: 6289992.60342, 7531297.26746
The Finnish routines give: 6289992.60323, 7531297.26746
By the way, the Finnish routines compute a meridian convergence of 58.289
deg and a point scale factor of 1.43738.

More information about the Proj mailing list