<div dir="ltr"><div>Hi</div><div><br></div><div>I want to do transformation in the Czech republic using the vertical CRS with a specific geoid model.</div><div>For that purpose I am using a WKT2 file with the GEOIDMODEL tag to "<span style="font-family:monospace">PROJ cz_cuzk_CR-2005.tif</span>" that is a file that we have in <a href="http://cdn.proj.org">cdn.proj.org</a>. (actually I have the geoid model registered with a name in the database, but this should be equivalent)</div><div><br></div><div>Side note: Czechia and Slovakia both use "Baltic 1957 height" as vertical system, but they define different geoid models.</div><div><br></div><div>The problem is that the transformation is different if I set the geoid model tag vs without it.</div><div>The content of the file <span style="font-family:monospace">wkt_geoidmodel.txt</span> is just adding that line with the geoid model to EPSG:5514+8357</div><div><br></div><div><span style="font-family:monospace">cat wkt_geoidmodel.txt</span></div><div><span style="font-family:monospace">COMPOUNDCRS["S-JTSK / Krovak East North + Baltic 1957 height",<br>    PROJCRS["S-JTSK / Krovak East North",<br>        BASEGEOGCRS["S-JTSK",<br>            DATUM["System of the Unified Trigonometrical Cadastral Network",<br>                ELLIPSOID["Bessel 1841",6377397.155,299.1528128,<br>                    LENGTHUNIT["metre",1]]],<br>            PRIMEM["Greenwich",0,<br>                ANGLEUNIT["degree",0.0174532925199433]],<br>            ID["EPSG",4156]],<br>        CONVERSION["Krovak East North (Greenwich)",<br>            METHOD["Krovak (North Orientated)",<br>                ID["EPSG",1041]],<br>            PARAMETER["Latitude of projection centre",49.5,<br>                ANGLEUNIT["degree",0.0174532925199433],<br>                ID["EPSG",8811]],<br>            PARAMETER["Longitude of origin",24.8333333333333,<br>                ANGLEUNIT["degree",0.0174532925199433],<br>                ID["EPSG",8833]],<br>            PARAMETER["Co-latitude of cone axis",30.2881397527778,<br>                ANGLEUNIT["degree",0.0174532925199433],<br>                ID["EPSG",1036]],<br>            PARAMETER["Latitude of pseudo standard parallel",78.5,<br>                ANGLEUNIT["degree",0.0174532925199433],<br>                ID["EPSG",8818]],<br>            PARAMETER["Scale factor on pseudo standard parallel",0.9999,<br>                SCALEUNIT["unity",1],<br>                ID["EPSG",8819]],<br>            PARAMETER["False easting",0,<br>                LENGTHUNIT["metre",1],<br>                ID["EPSG",8806]],<br>            PARAMETER["False northing",0,<br>                LENGTHUNIT["metre",1],<br>                ID["EPSG",8807]]],<br>        CS[Cartesian,2],<br>            AXIS["easting (X)",east,<br>                ORDER[1],<br>                LENGTHUNIT["metre",1]],<br>            AXIS["northing (Y)",north,<br>                ORDER[2],<br>                LENGTHUNIT["metre",1]],<br>        USAGE[<br>            SCOPE["GIS."],<br>            AREA["Czechia; Slovakia."],<br>            BBOX[47.73,12.09,51.06,22.56]],<br>        ID["EPSG",5514]],<br>    VERTCRS["Baltic 1957 height",<br>        VDATUM["Baltic 1957"],<br>        CS[vertical,1],<br>            AXIS["gravity-related height (H)",up,<br>                LENGTHUNIT["metre",1]],<br><b>        GEOIDMODEL["PROJ cz_cuzk_CR-2005.tif"],</b><br>        USAGE[<br>            SCOPE["Geodesy, engineering survey, topographic mapping."],<br>            AREA["Czechia; Slovakia."],<br>            BBOX[47.73,12.09,51.06,22.56]],<br>        ID["EPSG",8357]]]</span><br>------------------------</div><div><br></div><div>The coordinates converting from ETRS89 are different:</div><div><br></div><div><span style="font-family:monospace">echo 49 17.8 0 | PROJ_NETWORK=ON cs2cs EPSG:4258 "`cat wkt_geoidmodel.txt`" --3d <br>-513716.51   -1191015.26 -43.12<br>echo 49 17.8 0 | PROJ_NETWORK=ON cs2cs EPSG:4258  EPSG:5514+8357 --3d <br>-513716.63 -1191015.32 -43.12</span></div><div><br></div><div>The pipelines are "explaining" this problem. Without specifying the geoid model, it uses two grid files. cz_cuzk_CR-2005.tif and cz_cuzk_table_-y-x_3_v1710.tif (the last one added in 9.7.1) :</div><div><br></div><div><span style="font-family:monospace">PROJ_NETWORK=ON projinfo EPSG:4258 EPSG:5514+8357 --3d -o proj --bbox 17.8,49,17.81,49.01<br>Candidate operations found: 16<br>-------------------------------------<br>Operation No. 1:<br><br>PROJ:ETRS89_3D_TO_S_JTSK_E_N_BALTIC_HEIGHT, ETRS89 to S-JTSK / Krovak East North + Baltic 1957 height, 0.05 m, Czechia.<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=push +v_3 +omit_inv<br>  +step +inv +proj=vgridshift +grids=cz_cuzk_CR-2005.tif +multiplier=1<br>  +step +proj=push +v_3 +omit_fwd<br>  +step +proj=push +v_4<br>  +step +proj=set +v_4=0 +omit_inv<br>  +step +proj=axisswap +order=1,2,4,3 +omit_inv<br>  +step +proj=pop +v_3 +omit_inv<br>  +step +proj=cart +ellps=GRS80<br>  +step +inv +proj=helmert +x=572.213 +y=85.334 +z=461.94 +rx=-4.9732 +ry=-1.529<br>        +rz=-5.2484 +s=3.5378 +convention=coordinate_frame<br>  +step +inv +proj=cart +ellps=bessel<br>  +step +proj=mod_krovak +lat_0=49.5 +lon_0=24.8333333333333<br>        +alpha=30.2881397222222 +k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel<br>  +step +proj=axisswap +order=1,2,4,3 +omit_inv<br>  +step +proj=set +v_4=0 +omit_inv<br>  +step +proj=pop +v_4<br>  +step +proj=pop +v_3 +omit_fwd<br>  +step +inv +proj=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.tif<br><br></span></div><div><span style="font-family:monospace">-------------------------------------</span><br><br></div><div><br></div><div>While the one setting the geoid model is not using the horizontal grid cz_cuzk_table_-y-x_3_v1710.tif:</div><div><br></div><div><span style="font-family:monospace">PROJ_NETWORK=ON projinfo EPSG:4258 "`cat wkt_geoidmodel.txt`" --3d -o proj --bbox 17.8,49,17.81,49.01<br>Candidate operations found: 8<br>-------------------------------------<br>Operation No. 1:<br><br>unknown id, Inverse of Transformation from Baltic 1957 height to ETRS89 + Inverse of S-JTSK to ETRS89 (3) + Krovak East North (Greenwich), 0.53 m, unknown domain of validity<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=cz_cuzk_CR-2005.tif +multiplier=1<br>  +step +proj=push +v_3<br>  +step +proj=cart +ellps=GRS80<br>  +step +inv +proj=molobadekas +x=558.7 +y=68.8 +z=452.2 +rx=-8.025 +ry=-4.105<br>        +rz=-4.295 +s=5.74 +px=3977358.114 +py=1407223.203 +pz=4765441.589<br>        +convention=coordinate_frame<br>  +step +inv +proj=cart +ellps=bessel<br>  +step +proj=pop +v_3<br>  +step +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 +alpha=30.2881397527778<br>        +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel<br><br>-------------------------------------</span><br><br></div><div><br></div><div>What can I do?</div><div><br></div><div>Thank you.</div></div>