<div dir="ltr"><div>Hi</div><div><br></div><div>When I was going to add the Helmert transformation, I realized that there is already something similar in proj.db:</div><div></div><div>PROJ:ETRS89_TO_ETRF2000     "ETRS89 to ETRF2000" , with all zeros.</div><div><br></div><div>However, if I try to go from ETRS89 (via ETRF2000) to "DHDN + DHH2016 height" it has the same output: horizontal (to DHDN, that is the big chunk) or vertical, not both.<br></div><div>(There is already a transformation in proj.db: EPSG:10292 'ETRS89/DREF91/2016 to ETRF2000 (1)')</div><div><br></div><div><span style="font-family:monospace">PROJ_NETWORK=ON projinfo -s EPSG:4937 -t EPSG:4314+7837 -o proj --spatial-test intersects<br>Candidate operations found: 11<br>-------------------------------------<br>Operation No. 1:<br><br>unknown id, Inverse of Ballpark geographic offset from ETRS89/DREF91/2016 to ETRS89 + ETRS89/DREF91/2016 to DHHN2016 height (1) + Inverse of Ballpark geographic offset from DHDN to ETRS89/DREF91/2016, unknown accuracy, Germany - onshore and offshore., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +inv +proj=vgridshift +grids=GCG2016.txt +multiplier=1<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------<br>Operation No. 2:<br><br>unknown id, Inverse of Null geographic offset from ETRS89 (geog2D) to ETRS89 (geog3D) + ETRS89 to ETRF2000 + Inverse of Conversion from ETRF2000 (geocentric) to ETRF2000 (geog2D) + Inverse of ETRS89/DREF91/2016 to ETRF2000 (1) + Inverse of Conversion from ETRS89/DREF91/2016 (geog3D) to ETRS89/DREF91/2016 (geocentric) + ETRS89/DREF91/2016 to DHHN2016 height (1) + Inverse of Ballpark geographic offset from DHDN to ETRS89/DREF91/2016, unknown accuracy, Germany - onshore and offshore., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +proj=cart +ellps=GRS80<br>  +step +inv +proj=helmert +x=0 +y=0 +z=0 +rx=0.000658 +ry=-0.000208 +rz=0.000755<br>        +s=0 +convention=position_vector<br>  +step +inv +proj=cart +ellps=GRS80<br>  +step +inv +proj=vgridshift +grids=GCG2016.txt +multiplier=1<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------<br>Operation No. 3:<br><br>unknown id, Inverse of Transformation from DHHN2016 height to ETRS89 (ballpark vertical transformation, without ellipsoid height to vertical height correction) + Inverse of DHDN to ETRS89 (8), unknown accuracy, Germany - onshore - states of Baden-Wurtemberg, Bayern, Berlin, Brandenburg, Bremen, Hamburg, Hessen, Mecklenburg-Vorpommern, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thuringen., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +inv +proj=hgridshift +grids=de_adv_BETA2007.tif<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------</span></div><div><br></div><div><br></div><div>If I use directly ETRF2000 instead of ETRS89, similar. It is not applying vertical and horizontal transformations together.<br></div><div><br></div><div><span style="font-family:monospace">PROJ_NETWORK=ON projinfo -s ETRF2000 -t EPSG:4314+7837 -o proj --spatial-test intersects<br>Candidate operations found: 11<br>-------------------------------------<br>Operation No. 1:<br><br>unknown id, Inverse of Ballpark geographic offset from ETRS89/DREF91/2016 to ETRF2000 + ETRS89/DREF91/2016 to DHHN2016 height (1) + Inverse of Ballpark geographic offset from DHDN to ETRS89/DREF91/2016, unknown accuracy, Germany - onshore and offshore., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +inv +proj=vgridshift +grids=GCG2016.txt +multiplier=1<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------<br>Operation No. 2:<br><br>unknown id, Inverse of Conversion from ETRF2000 (geocentric) to ETRF2000 (geog3D) + Inverse of ETRS89/DREF91/2016 to ETRF2000 (1) + Inverse of Conversion from ETRS89/DREF91/2016 (geog3D) to ETRS89/DREF91/2016 (geocentric) + ETRS89/DREF91/2016 to DHHN2016 height (1) + Inverse of Ballpark geographic offset from DHDN to ETRS89/DREF91/2016, unknown accuracy, Germany - onshore and offshore., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +proj=cart +ellps=GRS80<br>  +step +inv +proj=helmert +x=0 +y=0 +z=0 +rx=0.000658 +ry=-0.000208 +rz=0.000755<br>        +s=0 +convention=position_vector<br>  +step +inv +proj=cart +ellps=GRS80<br>  +step +inv +proj=vgridshift +grids=GCG2016.txt +multiplier=1<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------<br>Operation No. 3:<br><br>unknown id, Inverse of Transformation from DHHN2016 height to ETRF2000 (ballpark vertical transformation, without ellipsoid height to vertical height correction) + Inverse of ETRS89 to ETRF2000 + Inverse of DHDN to ETRS89 (8), unknown accuracy, Germany - onshore - states of Baden-Wurtemberg, Bayern, Berlin, Brandenburg, Bremen, Hamburg, Hessen, Mecklenburg-Vorpommern, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thuringen., has ballpark transformation<br><br>PROJ string:<br>+proj=pipeline<br>  +step +proj=axisswap +order=2,1<br>  +step +proj=unitconvert +xy_in=deg +xy_out=rad<br>  +step +inv +proj=hgridshift +grids=de_adv_BETA2007.tif<br>  +step +proj=unitconvert +xy_in=rad +xy_out=deg<br>  +step +proj=axisswap +order=2,1<br><br>-------------------------------------</span></div><div><br></div><div>I was not expecting that. Am I missing anything?</div><div><br></div><div>Thanks,</div><div>Javier<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 29 Apr 2023 at 20:31, Even Rouault <<a href="mailto:even.rouault@spatialys.com">even.rouault@spatialys.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Le 29/04/2023 à 19:58, Javier Jimenez Shaw a écrit :<br>
> Thanks Even.<br>
><br>
> Yes, I will contact BKG.<br>
><br>
> I was thinking on another option: defining a Helmert transformation <br>
> between ETRS89/DREF91/2016 and ETRS89, (probably with 0,0,0 params) <br>
> and some (in)accuracy, to "connect" the new system with the old ones. <br>
> Otherwise the "new" systems and the "old" ones are disconnected and <br>
> only ballpark transformations are possible. Something like <br>
> <a href="https://epsg.org/transformation_9703/ETRF2000-PL-to-ETRS89-1.html" rel="noreferrer" target="_blank">https://epsg.org/transformation_9703/ETRF2000-PL-to-ETRS89-1.html</a> for <br>
> Poland. (<a href="https://epsg.org/search/by-name/?query=ETRF2000-PL" rel="noreferrer" target="_blank">https://epsg.org/search/by-name/?query=ETRF2000-PL</a> sounds <br>
> very similar to <br>
> <a href="https://epsg.org/search/by-name?searchedTerms=ETRS89%2FDREF91%2F2016" rel="noreferrer" target="_blank">https://epsg.org/search/by-name?searchedTerms=ETRS89%2FDREF91%2F2016</a> <br>
> but without that "link" to the "old" systems).<br>
> What do you think about this? Would it work?<br>
<br>
Yes that also crossed through my mind. I believe it should work (but <br>
beware of the limitations of PROJ inference logic of guessing at most a <br>
single intermediate CRS, but for doing WGS84 -> ETRS89 -> <br>
ETRS89/DREF91/2016, that should work). You might simulate that <br>
beforehand by creating such a Helmert transformation.<br>
<br>
<br>
-- <br>
<a href="http://www.spatialys.com" rel="noreferrer" target="_blank">http://www.spatialys.com</a><br>
My software is free, but my time generally not.<br>
<br>
</blockquote></div>