<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-NZ" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">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! 
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">One geodetic CRS <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">urn:ogc:def:crs:EPSG::4959 (NZGD2000) - geographic 3d datum. 
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Three vertical coordinate systems (based on corresponding vertical datums)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">urn:ogc:def:crs:EPSG::4440 (NZ vertical datum 2009)<o:p></o:p></p>
<p class="MsoNormal">urn:ogc:def:crs:EPSG::7839 (NZ vertical datum 2016) and <o:p>
</o:p></p>
<p class="MsoNormal">urn:ogc:def:crs:EPSG::5759 (Auckland 1946 height datum)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Also I have four coordinate operations relating these:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">urn:ogc:def:coordinateOperation:EPSG::4459 (NZGD2000-NZVD2009 - geoid transformation, accuracy 0.1m)<o:p></o:p></p>
<p class="MsoNormal">urn:ogc:def:coordinateOperation:EPSG::4442 (NZVD2009-AUCK1946 - vertical offset, accuracy 0.05m)<o:p></o:p></p>
<p class="MsoNormal">urn:ogc:def:coordinateOperation:EPSG::7840 (NZGD2000-NZVD2016 - geoid transformation, accuracy 0.1m)<o:p></o:p></p>
<p class="MsoNormal">urn:ogc:def:coordinateOperation:EPSG::7860 (NZVD2016-AUCK1946 - vertical offset file, accuracy 0.02m)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Question 1: is it possible that the vertical offset file transformation 7860 is not being recognized by PROJ. 
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Question 2: what determines how hard PROJ looks for transformation paths. 
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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".  <o:p>
</o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Instead fails as below:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># projinfo -s EPSG:4959+7839 -t EPSG:4959+5759<o:p></o:p></p>
<p class="MsoNormal">createOperations() failed with: Unimplemented<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am running all these operations on osgeo/proj docker image, proj version Rel. 6.3.0, January 1st, 2020.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">BTW I am loving projinfo - it is saving my sanity!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:EN-NZ">Thanks in advance for any advice<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:EN-NZ">Chris</span><b><span style="mso-fareast-language:EN-NZ"><o:p></o:p></span></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<hr>
<font face="Verdana" color="Black" size="2"><br>
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@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.<br>
</font>
</body>
</html>