Javier,

The epsg_definingoperation table of EPSG captures (among other defining operations) the HeightTransformation association of a VerticalCRS of OGC Abstract Topic 2 (https://docs.ogc.org/as/18-005r4/18-005r4.html), and the GEOIDMODEL[] node in WKT.

IMHO, this concept of "defining operation" is a unnecessary modelling complication. If there was *one* single defining operation allowed, I could perhaps understand it, but several ones are allowed (e.g. NAVD88 is "defined" by all the US geoid models! see https://epsg.org/crs_5703/NAVD88-height.html), and I bet that if you try those different ones, they don't lead to the same value of NAVD88 height.. So, I believe this is effectively redundant with the coordinate operation table.

The PROJ EPSG db importer doesn't import that epsg_definingoperation table and solely relies on the epsg_coordoperation table to figure out which transformation are available.

It seems to be that for this GNTRANS2016 height, this is more a hole in the EPSG db to not have a corresponding entry in epsg_coordoperation, unless they have a good reason for not doing that. Before implementing complications on our side to process epsg_definingoperation, I'd suggest you contact IOGP to check.

Even

Le 02/05/2025 à 13:13, Javier Jimenez Shaw via PROJ a écrit :
Hi

I found this vertical system:
https://epsg.org/crs_9927/GNTRANS2016-height.html

That has a geoid model definition. But the transformation used is not "... to GNTRANS2016 height" but to "... to DHDN2016 height". Why? I do not know. Probably they are considered equivalent for Deutsche Bahn (yes, the railway company).

Looking at the table "epsg_definingoperation" from the EPSG database there is [lines are from a generated db, not the original sql] INSERT INTO "main"."epsg_definingoperation" ("crs_code", "ct_code") VALUES ('9927', '9925');

There is a similar one for "Alicante height", that works normally
INSERT INTO "main"."epsg_definingoperation" ("crs_code", "ct_code") VALUES ('5782', '9410');

And there is no entry for "DHDN2016 height" (7837) in that table. But there are transformations defined. Yes, the German vertical system and geoid model works.

I do not know what does it exactly mean that "defining operation". I was expecting something like "the orthometric height is *defined* as the ellipsoidal height minus that geoid undulation"  (so that geoid file is not a "model", but a "definition") as they do in the new American NAPGD2022. "By definition". But I have not seen it before. (In Alicante height I am very surprised, because the vertical system is really old).

Anyhow, I think there is a missing connection in the proj.db between "GNTRANS2016 height" and the geoid model transformation defined in EPSG. I have the impression we are not using epsg_definingoperation at all.

Does it make sense to process it? Is "GNTRANS2016 height" the only one without the connection?

Cheers,
Javier.



_______________________________________________
PROJ mailing list
PROJ@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/proj

--
http://www.spatialys.com
My software is free, but my time generally not.

_______________________________________________
PROJ mailing list
PROJ@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/proj

Reply via email to