Bij het updaten van de WFS databron van Bestuurlijke grenzen naar Bestuurlijke gebieden kreeg ik bij het doen van een Geopandas clip de error “TopologyException: Input geom 1 is invalid: Hole lies outside shell at or near point …” waarbij geom 1 de GML is die de response is van de request “https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?service=WFS&version=2.0.0&request=GetFeature&typeName=bestuurlijkegebieden%3ALandgebied”.
Wanneer ik de response als GML file bewaar, laad in QGIS en dan de geometrie valideer (Check Validity, method QGIS) dan resulteert dat in 7 fouten:
“Polygon 2 lies inside polygon 0” t/m “Polygon 8 lies inside polygon 0”
Polygon 0 is het grote bestuurlijke gebied. Polygon 1 ligt daarbuiten. Dit betreft een klein stukje Baarle-Nassau net ten noordwesten van de Belgische plaats Ginhoven.
De polygons 2 t/m 8 zijn de “eilandjes” Baarle-Nassau (Nederland) binnen Baarle-Hertog (België).
Ter controle heb ik dezelfde validatie uitgevoerd op de ATOM download “https://service.pdok.nl/kadaster/bestuurlijkegebieden/atom/v1_0/downloads/bestuurlijkegebieden_gml.zip” met, niet geheel verrassend, dezelfde validatie fouten.
Wel verrassend was te ontdekken dat de QGIS validatie op de Bestuurlijke grenzen WFS precies dezelfde validatie fouten oplevert.
De optie “Ignore ring self intersections” is unchecked. Ik begrijp dat de validatie conform de OGC validatie regels is maar het lijkt me dat een eiland in een gat/hole toch wel toegestaan is?
Vreemd genoeg heeft GeoPandas met de Bestuurlijke grenzen WFS (“https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities&service=wfs”) geen probleem. Afgezien van de naamgeving van de lagen, gedragen die twee WFSsen zich dan toch anders?