Coördinaten van identieke punten in top10nl zijn (net!) niet identiek

Bij het samenvoegen van polygonen uit de top10nl gpkg kwam ik erachter dat de hoekpunten van aangrenzende polygonen niet altijd exact hetzelfde zijn. Afgerond op 3 cijfers zijn de punten exact hetzelfde, dus met de data uit de GML-leveringen zal het wel ok zijn. Maar in de GPKG is iets raars met de afronding gebeurd.

Het bestand heb ik hier gedownload:
https://service.pdok.nl/brt/topnl/atom/downloads/top10nl_Compleet.gpkg

Hier de coordinaten van 4 punten van polygonen a en b uit de laag top10nl_wegdeel_vlak die identiek zouden moeten zijn:

a0 123937.67299999999522697 488709.71799999999348074,
b2 123937.67299999999522697 488709.71799999900395051,

a4 123934.82399999999324791 488705.20899999997345731,
b5 123934.82400000099733006 488705.20899999898392707,

a5 123935.63499999999476131 488706.58399999997345731,
b4 123935.63500000200292561 488706.58399999898392707,

a6 123936.36400000000139698 488707.70500000001629815,
b3 123936.36400000000139698 488707.70499999797903001,

Hier linkjes naar de betreffende polygonen uit mijn voorbeeld, maar hetzelfde geldt voor vele andere punten in de gpkg:

polygon a
https://api.pdok.nl/brt/top10nl/ogc/v1/collections/wegdeel_vlak/items?limit=1000&lokaal_id=128028701

polygon b
https://api.pdok.nl/brt/top10nl/ogc/v1/collections/wegdeel_vlak/items?limit=1000&lokaal_id=128028700

Nu weet ik dat binaire dataformaten vaak dit soort verschijnselen vertonen ver achter de komma, maar ik zou verwachten dat die afwijking dan steeds exact hetzelfde is voor elke identieke input.

Is dit probleem bekend? En kan het worden opgelost bij de bron?

Ik heb overigens QGIS gebruikt om de coordinaten te bepalen die ik hierboven post. Maar voor het samenvoegen van de polygonen gebruik ik direct sqlite+spatialite.

Groet,
Raymond

1 like

Hoi Raymond,
Ik vermoed dat dit in de bron zit, en niet door verwerking door PDOK komt. Daarom heb ik jouw vraag onder de aandacht gebracht bij het BRT-team.
Groetjes, Derek

1 like

Hoi Derek, dank voor je reactie!

Inmiddels had ik al een workaround gevonden met GDAL. Met dit commando kun je de coördinaten afronden op mm:

ogr2ogr -xyRes "0.001 m" -f gpkg top10nl_Compleet_3decimalen.gpkg top10nl_Compleet.gpkg

Werkt vanaf GDAL versie 3.9, zie documentatie:

https://gdal.org/en/stable/programs/ogr2ogr.html#cmdoption-ogr2ogr-xyRes

Groet,
Raymond

1 like

Dat afronden lijkt me ook een goede suggestie voor PDOK / BRT-team om het probleem op te lossen.

Voor alle PDOK data, in principe.
Alleen moet je wel oppassen met klakkeloos afronden: je loopt dan het risico dat punten die gelijk zouden moeten zijn, toch net een millimeter uit elkaar gaan liggen (omdat de ene ordinaat naar boven afrond, en de 2e naar beneden bijvoorbeeld). Met eenvoudigweg alle ordinaten afronden heb ik al hele interessante dingen meegemaakt…

Dus ja, mee eens, maar wel onder voorwaarden… En of dat dan door PDOK gedaan moet worden, of door de dataleverancier, is ook nog wel even een dingetje denk ik.
Puur theoretisch is zelfs die 3e decimaal achter de komma compleet overbodig, maar dan gaat er wel meer mis (en gaan ineens heel veel mensen klagen :rofl:). En zou je eigenlijk ook de gelijkheid van geometrie moeten testen met een tolerantie, ipv ordinaten als getal met elkaar… maar dan spreekt de landmeter/geodeet in mij…

2 likes

Hallo Raymond,
We gaan naar je vraag over de net niet identieke coördinaten kijken.
Groet, Kallin

1 like