Ik heb hulp nodig bij het correct transformeren van 3D-coördinaten tussen RD en ETRS89 in PostGIS. Ik neem dat ik daarbij voor RD epsg:7415 en voor ETRS89 epsg:4937 moet gebruiken.
PostGIS gebruikt in mijn geval PROJ versie 8.2.1
Ik test met een enkel testpunt in RD: (x= 187000, y=320000, z=100). Via de online transformatie van de NSGI blijkt dat deze coordinaten volgens ETRS89 als volgt zouden moeten zijn: x=5.841758543, y=50.868917078, z=145.7523.
Voor wat betreft X en Y kom ik daar goed in de buurt, nadat ik bestand rdtrans2018.gsb voor variant 2 uit de RDNAPTRANS-download in de PROJ-directory (/usr/share/proj in mijn geval) zet. Maar de Z-waarde blijkt niet getransformeerd te worden:
select ST_AsText(ST_Transform(ST_GeomFromText('POINT Z(187000 320000 100)', 7415), 4937));
POINT Z (5.841758544287611 50.86891707765016 100)
Hoe kan ik ervoor zorgen dat ook de Z-waarde goed wordt getransformeerd?
@Jochem, in eerste instantie had ik alleen rdtrans2018.gsb in de PROJ-directory gezet. In tweede instantie alle bestanden in de map van variant 2, dus inclusief het gtx-bestand. Ik merkte geen verschil in het resultaat van de test.
@bertt, ik merkte op dat in mijn geval PROJ_NETWORK op OFF stond. Ik moest even zoeken, maar het blijkt om deze instelling voor PROJ te gaan. In bestand proj.ini in de PROJ-directory heb ik vervolgens network = on gezet, en PostgreSQL herstart. Hierdoor kreeg PROJ_NETWORK de waarde ON, en lijkt het probleem opgelost te zijn. Bij de test krijg ik nu de juiste Z-waarde.
Helemaal begrijpen doe ik het nog niet (worden de RDNAPTRANS-bestanden in de PROJ-directory niet gebruikt voor de Z-waarde? Of zijn ze daartoe ongeschikt?), maar ik ben in ieder geval blij dat de 3D-transformatie nu werkt.
Ik denk dat dat zou kunnen komen omdat je dan dus naptrans2018.gtx in plaats van nlgeo2018.gtx in de PROJ-directory gezet hebt. Als gevolg daarvan kon jouw recente versie PROJ waarschijnlijk het juiste gtx-bestand (nlgeo2018) lokaal niet vinden.
Wat uitleg: Ten tijde van de publicatie van RDNAPTRANS was voor PROJ voor zowel RD als NAP variant 2 nodig. Met recente versies van PROJ is dat echter niet meer zo. Voor de horizontale xy-coördinaten heb je nog steeds het gsb-bestand van variant 2 nodig, maar voor de hoogte het gtx-bestand van variant 1. Deze combinatie van variant 1 en 2 voor PROJ wordt in de RDNAPTRANS-documentatie de hybride variant genoemd.
PS: Voor NAP-hoogte wordt de afkorting H gebruikt in plaats van Z. Het gebruik van xyz is voorbehouden aan Cartesische coordinaten (waarbij de drie assen loodrecht op elkaar staan), zoals in een lokale meting met een total station. De vertikaal van NAP komt overeen met de zwaartekracht en deze staat niet loodrecht op het xy-vlak van RD.