Inspire Waterwegen in latlong ipv longlat

De Inspire dataset Vervoersnetwerken - Waterwegen - Netwerk (EPSG:4258) GML https://service.pdok.nl/rws/vervoersnetwerken/waterwegen/atom/vervoersnetwerken_waterwegen_netwerk.xml wordt in QGIS voor de kust van Somalië weergegeven en dan ook nog omgekeerd.

Als ik de gml in een editor open staan alle coördinaten in een lat-long volgorde maar volgens mij verwacht EPSG:4258 een long-lat volgorde: https://epsg.io/4258
Als ik bij het inlezen de coördinaten omkeer, ligt de dataset wel netjes in Nederland.

Is de volgorde in de dataset verkeerd?
Of zit er een fout in PROJ4 en zou EPSG:4258 wel degelijk een lat-long volgorde hanteren.

ETRS89 is in EPSG gedefinieerd als lat, lon. Dat kun je zien op de officiële website epsg.org (zie EPSG:4258 waarin verwezen wordt naar Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree).

De niet-officiële website .io kun je beter niet gebruiken.

2 likes

PS: PROJ4 is verouderd. Je kunt beter de recentste versie (binnen een paar dagen komt PROJ 9.7.0 uit) gebruiken (zie proj.org).

1 like

Dank voor je antwoorden Jochem.

Overigens maakt QGIS 3.40.8 gebruik van PROJ 9.6.2.
De term PROJ4 haalde ik uit de CRS beschrijving in QGIS:

CS[ellipsoidal,2],
AXIS[“geodetic latitude (Lat)”,north,
ORDER[1],
ANGLEUNIT[“degree”,0.0174532925199433]],
AXIS[“geodetic longitude (Lon)”,east,
ORDER[2],
ANGLEUNIT[“degree”,0.0174532925199433]],
USAGE[
SCOPE[“Spatial referencing.”],
AREA[“Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal - mainland; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain - mainland and Balearic islands; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.”],
BBOX[33.26,-16.1,84.73,38.01]],
ID[“EPSG”,4258]]
Proj4
+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
Bereik
-16.10, 33.26, 38.01, 84.73

bij Proj4 staat dan weer +proj=longlat
Maar ik weet eerlijk gezegd niet wat dit betekent. Zegt dit iets over de verwachte volgorde?

Zoals je ook kunt zien staat in dit stukje ook bij CS lat order 1 en long order 2, dat interpreteer ik dat het CRS eerst een lat coördinaat verwacht en dan een long coördinaat. En in die volgorde staan alle geometrieën ook in de gml.

Ik begrijp nog niet waarom deze Waterwegen dataset (de gml) dus voor de kust van Somalië opduikt, ook als ik het QGIS project instel op 4258 en dus geen transformatie naar 28992 gebruik.

1 like

Wat @Jochem dus al aangeeft geeft de gml inderdaad met coordinaten met volgorde latitude, longtitude terug. Ik heb vooralsnog geen antwoord op waarom QGIS daar niet correct mee om lijkt te gaan. Die longlat projstring is een alias en zegt niets over de volgorde. De axis order in de WKT string:

AXIS[“geodetic latitude (Lat)”,north,
ORDER[1],
...
AXIS[“geodetic longitude (Lon)”,east,
ORDER[2]

Laat ook zien dat het latitude longtitude is.

Excuses, ik zie toch dat de GML srsName in de GML niet matcht met de coordinaten. Dit is ook de reden dat QGIS de coordinaten op een andere plek tekent. Het gedrag van QGIS is juist.

Maar, de GML heeft twee of meer manieren om de srsName te definieren. De manier die ik nu in deze terug zie is een legacy manier EPSG:4258 waarbij de coordinaten wel lonlat moeten zijn (dus voor historische redenen). We gaan de GML fixen.

2 likes

Ah, dank je. Ik heb weer wat geleerd.
Een eenvoudige zoek en vervang in de GML werkt bij mij alvast:
vervang overal

srsName=“EPSG:4258”

door

srsName=“urn:opengis:def:crs:EPSG::4258”

en alles ligt netjes op de goede plek.

3 likes

Ah, mooi dat de oorzaak van het probleem gevonden is.

Ik geef voor de zekerheid toch ook nog wat uitleg over:

Proj4 
+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs

In bovenstaande betekent Proj4 inderdaad niet dat PROJ-versie 4 gebruikt is maar dat de CRS-definitie die daarna komt een PROJ4-style string is. Dat soort strings zijn overigens ook verouderd, maar PROJ en QGIS ondersteunen ze nog wel.

De longlat in de string is de gebruikte “projectie”. Met longlat wordt alleen bedoeld dat het coördinaten in graden zijn. Het zegt niks over de volgorde van de coördinaten. De “projectie”-namen longlat en latlon zijn synoniemen in zo’n string.

NB: Het woord projectie schrijf ik hierboven tussen aanhalingstekens omdat longlat en latlon eigenlijk helemaal geen projecties zijn. Dergelijke coördinaten in graden zijn ongeprojecteerd.

5 likes