[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