Polygon-Schließung erzwingen

Hallo PG-Community,

ich habe hier ein “böses Shapefile”, welches mir ständig ein “geometry contains non-closed rings” beim Import rauswirft.

Ich habe mal den betreffenden Ausschnitt anonymisiert und hochgeladen:
http://depot.tu-dortmund.de/get/axkmcm

ArcGIS kann den Fehler natürlich reparieren, allerdings frage ich mich, ob es dafür nicht auch ein anderes Tool gibt oder
man das Polygon in die Datenbank “zwingen” und dann dort fixen kann.

OGR2OGR klappt leider auch nicht.

Hilfe :slight_smile:

Grüße
Tobias

Du könntest bei shp2pgsql die Option -S benutzen, die zerlegt das ganze in singuläre Polygone. Das hat mit den Testdaten zwar auch einen anderen Fehler gebracht, aber vielleicht klapt das ja mit deinen Orginaldaten.
Wenn man das Polygon dann in ArcGIS zerlegt, stellt man fest das es tatsächlich aus zweien besteht, die sich überlagern. Vermutlich produziert das eine fehlerhafte Topologie. Wenn ich es in einen Liniezug daraus mache und daraus wieder ein Polygon macht es korrekterweise eines mit einem Loch.

Gruß Uwe

Das habe ich natürlich schon probiert, ohne Erfolg (wie bei Dir).
Ich habe die Testdaten extra hingehend der Fehlerkompatibilität getestet :slight_smile:

Aber wenn es ein Multipolygon wäre, müssten doch eigentlich zwei Einträge in der DBF sein. Shapelib & Co. werfen keinen Fehler aus und bei Multipolygonen sind Löcher ja auch erlaubt.

Wohin schreibst Du die Attribute, die an dem Polygon hängen (fehlen im Beispiel)? Ich würde jetzt immer die gleiche ID an die Linien haften und sie nachher mit der DBF joinen, um die fehlenten Attribute rüberzuholen.

Hast Du den Linienzug in ArcGIS erzeugt? Ich würde gerne auf ein externes GIS verzichten :rolleyes:

Danke
Tobias

Ich hatte nur zum probieren ein wenig rumgemacht. Wenn ich dein File lese, dann ist halt kein Loch drin, man kann es dann in Linien verwandeln und die zurück, dann hat es ein Loch. Wenn ich das Multipolygon zerlege, dann sind da auch 2 korrekte.
Ein Loch wird definiert, indem die Punkte andersrum laufen als an der Aussenseite. Ich vermute, da scheint im Orginal etwas schief zu sein, kann es aber auch nicht genau sagen. Ob es da ein Tool gibt was das auflöst, weiß ich leider auch nicht. Dafür hab ich halt immer noch mein ArcGIS :wink:

Grüssle Uwe

Hallo Uwe,

Witzig dabei ist übrigens, dass ArcGIS bei der Flächenberechnung als Multipolygon das Loch ignoriert und einfach beide Flächen addiert. Teilt man das Shapefile, berechnet er die Gesamtfläche für das große Polygon und die Fläche für das kleine Polygon.

Nach dem Korrigieren des Polygons in ArcGIS, rechner er korrekt :astonished:

Nein, daran liegt es nicht. Das würden ja die Shapelib oder ogr2ogr reparieren (ring-orientation). Keine Ahnung, welche k**k Anwendung der Ersteller verwendet hat :angry:

Ich darf meines aber nicht kommerziell einsetzen, daher fällt es flach.

Grüße
Tobias