[PROJ] PROJ 6 vertical transformation confusion

Chris Crook ccrook at linz.govt.nz
Wed Nov 27 17:06:44 PST 2019


I am trying to sort out the grids required for NZ vertical datums and transformations, and particularly how the EPSG parameters are handled in PROJ.   I'm trying to ensure that all the grids are defined correctly in EPSG and installed in PROJ so that NZ users (or users of NZ data) can carry out these transformations and get the right results!

I find I am not completely understanding the way proj is using EPSG or seeking out! To explain my confusion I have four coordinate reference systems I am interested in:

One geodetic CRS

urn:ogc:def:crs:EPSG::4959 (NZGD2000) - geographic 3d datum.

Three vertical coordinate systems (based on corresponding vertical datums)

urn:ogc:def:crs:EPSG::4440 (NZ vertical datum 2009)
urn:ogc:def:crs:EPSG::7839 (NZ vertical datum 2016) and
urn:ogc:def:crs:EPSG::5759 (Auckland 1946 height datum)

Also I have four coordinate operations relating these:

urn:ogc:def:coordinateOperation:EPSG::4459 (NZGD2000-NZVD2009 - geoid transformation, accuracy 0.1m)
urn:ogc:def:coordinateOperation:EPSG::4442 (NZVD2009-AUCK1946 - vertical offset, accuracy 0.05m)
urn:ogc:def:coordinateOperation:EPSG::7840 (NZGD2000-NZVD2016 - geoid transformation, accuracy 0.1m)
urn:ogc:def:coordinateOperation:EPSG::7860 (NZVD2016-AUCK1946 - vertical offset file, accuracy 0.02m)


Question 1: is it possible that the vertical offset file transformation 7860 is not being recognized by PROJ.

When I run " projinfo -s EPSG:4959 -t EPSG:4959+5759" to transform NZGD2000 heights to AUCK1946  it only finds one candidate transformation, which is via NZVD2009 (4459+4442).  It doesn't seem to find the more accurate transformation via NZVD2016 (7840+7860).

Question 2: what determines how hard PROJ looks for transformation paths.

It can find a transformation from NZVD2016 to NZVD2009, ie "projinfo -s EPSG:4959+7839 -t EPSG:4959+4440", and from NZVD2009 to AUCK1946  with "projinfo -s EPSG:4959+4440 -t EPSG:4959+5759"  but it doesn't find the transformation path  NZVD2016 to AUCK1946 via NZVD2009 ie ie "projinfo -s EPSG:4959+7839 -t EPSG:4959+5759".

Instead fails as below:

# projinfo -s EPSG:4959+7839 -t EPSG:4959+5759
createOperations() failed with: Unimplemented

It shouldn't have to do this in any case as it should be able to get use 7860 operation directly  but even if it can't find that I would have thought it would be able to find the indirect path through  NZVD2009.

I am running all these operations on osgeo/proj docker image, proj version Rel. 6.3.0, January 1st, 2020.

BTW I am loving projinfo - it is saving my sanity!

Thanks in advance for any advice
Chris


________________________________

This message contains information, which may be in confidence and may be subject to legal privilege. If you are not the intended recipient, you must not peruse, use, disseminate, distribute or copy this message. If you have received this message in error, please notify us immediately (Phone 0800 665 463 or info at linz.govt.nz) and destroy the original message. LINZ accepts no responsibility for changes to this email, or for any attachments, after its transmission from LINZ. Thank You.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20191128/073c96da/attachment.html>


More information about the PROJ mailing list