X,Y to Lon, Lat conversion for New Zealand Transverse Mercator 2000

Hello, I need to convert X,Y coordinates in meters in the New Zealand Transverse Mercator 2000 projection (NZTM2000) to Lon, Lat values. NZTM2000 is based on the New Zealand Geodetic Datum 2000 (NZGD2000), the reference ellipsoid for which is GRS-80. Below are the details of the projection:

Origin latitude: 0° 00’ S
Origin longitude: 173° 00’ E
False northing: 10,000,000 meters N
False easting: 1,600,000 meters E
Central meridian scale factor: 0.9996

It does not seem like NZDG2000 is a datum supported by GMT, but I should be able to convert to lon, lat because I have the reference ellipsoid and the above information, correct? I have tried the following command:

gmt mapproject MOBIL_BasementPicks_NZTM2000.dat -R165.3/167/-46.7/-44.5 -Jt173/0.9996 -C1600000/10000000 -EGRS-80 -Qe -F -I -V > MOBIL_BasementPicks_NZGD2000_ll.dat

but it gives the error:

mapproject: Malformed or unrecognized <datum> argument (GRS-80)!

How do I specify it is the ellipsoid, not the datum that I am giving it? The -E option specifies it can take either. I suspect perhaps it is because I have not given it dx,dy,dz? If so, what are or where can I find those values for GRS-80? More generally, is this the correct way to convert NZTM X,Y values to Lon, Lat. I am using gmt 5.4.4. Thank you.


The -Qe option is used to list all the ellipsoids, so not used to compute anything. I dont know anything about NZTM2000but googled this:

What is the difference between NZGD2000 and WGS84?

Given that the NZGD2000 and WGS84 reference frames are very closely aligned, for most practical purposes NZGD2000 and WGS84 coordinates can be considered the same and no transformations are required.

Since GMT’s default ellipsoid is WGS-84 that seems like you should be able to run

gmt mapproject MOBIL_BasementPicks_NZTM2000.dat -R165.3/167/-46.7/-44.5 -Jt173/0.9996 -C1600000/10000000 -F -I -V > MOBIL_BasementPicks_NZGD2000_ll.dat

And you you could always use -J+proj=… or -JEPSG:… for that transformation.

I was using this and it was giving me subtly wrong answers. Thanks to a colleague I worked out that you need to specify the scale factor explicitly (not just in the -Jt flag - in fact you seem to be able to put anything or nothing in the scale in the -Jt flag and it doesn’t make a difference, although you do need the latitude origin 0 in there

gmt mapproject MOBIL_BasementPicks_NZTM2000.dat --PROJ_ELLIPSOID=GRS-80 --PROJ_SCALE_FACTOR=0.9996 -R165.3/167/-46.7/-44.5 -Jt173/0 -C1600000/10000000 -F -I -V > MOBIL_BasementPicks_NZGD2000_ll.dat