Ich habe ein Shapefile, das Features mit doppelten Geometrien, aber unterschiedlichen Attributen enthält (z. B. ein Polygon mit Attribut XX und ein identisches Polygon mit Attribut XY). Ich möchte die Duplikate identifizieren, dann das mit den richtigen Attributen auswählen und das andere löschen.
Ich habe Topologie-Tools in OpenJump / Kosmo ausprobiert, aber ohne Erfolg. Sie haben ein Tool zum Löschen von Duplikaten, das tut, was ich will, außer dass es scheinbar willkürlich eines der Features löscht, anstatt mir zu überlassen, welches ich behalten soll.
Ich habe Zugriff auf QGIS, OpenJUMP, Kosmo usw. und kann bei Bedarf weitere Open Source / Free Tools installieren.
Gedanken?
quelle
Dies ist, was ich in diesen Fällen zu tun habe. Soweit ich weiß, müssen Sie manuell prüfen, welches Attribut das richtige ist. Dann mache ich es in zwei Schritten. Zuerst erstelle ich eine Tabelle oder eine Ansicht in PostGIS mit den duplizierten Polygonen, dann öffne ich diese Tabelle in einem Desktop-GIS zusammen mit der ursprünglichen Ebene, auf der ich die Duplikate löschen möchte. Das führt mich zu den Duplikaten in meiner Duplikattabelle und ich kann sie in der Originaltabelle oder im Shapefile oder was auch immer löschen.
Die Abfrage zum Finden der Duplikate sieht ungefähr so aus, wenn Sie eine eindeutige ID mit dem Namen gid und eine Geometriespalte mit dem Namen the_geom haben:
Es gibt einige Varianten von ST_Equals, aber ich denke, ST_Equals ist diejenige, die Sie wollen. Dadurch erhalten Sie eine Tabelle mit den doppelten Geometrien und der GID (ID) der ersten und zweiten Gelegenheit des Polygons. Sie werden zwar zweimal dasselbe Duplikat erhalten, aber das sollte keine Rolle spielen, da Sie nur möchten, dass sie Ihnen zeigen, wo sie sich befinden.
HTH Nicklas
quelle
Wenn Sie PostGIS 1.5.x verwenden, überprüfen Sie die Funktion ST_HausdorffDistance ().
Doppelte Geometrien ergeben einen Wert von 0. Verwenden Sie ihn wie die erwähnten Self Joins. Ziemlich ordentlich zum Vergleichen von Polygonformen.
quelle
Eine einfachere Möglichkeit. Berechnen Sie die Fläche in Ihrem Desktop-GIS und sortieren Sie sie nach aufsteigender oder absteigender Fläche. Sie müssen jetzt jede Zeile überprüfen, um die duplizierten Objekte in Ihrer Attributtabelle zu sehen. Es basiert auf der Annahme, dass Sie für nicht duplizierte Objekte nie genau den gleichen Bereich haben, obwohl dies manchmal falsch sein kann.
quelle