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