Gibt es in QGIS eine Option zum automatischen Füllen von Löchern in Polygonen durch Einstellen von Parametern, z. B. maximale Fläche, Abstand zwischen Grenzlinien? Ich möchte Löcher löschen / füllen, die sehr "dünn" / klein sind.
12
Antworten:
Unter Verwendung von QGIS 2.10.1-Pisa mit Processing Version 2.10.2 stehen in der Processing Toolbox einige Tools zur Verfügung :
Hoffe das hilft!
quelle
Ich hatte mit diesem Shapefile das gleiche Problem wie Sie, da es viele Lücken zwischen Polygonen gab.
Um das Problem zu lösen, können Sie eine geringfügige Änderung der Methode von tshiffle verwenden:
Durch diese Aktion wird ein neues Shapefile erstellt, das nur aus einem Polygon besteht. Sie müssen es also in einzelne Teile zerlegen. Dazu können Sie das Werkzeug Vektor / Geometrie / Mehrteilig zu Einzelteilen verwenden.
Löschen Sie danach die externe Entität. Jetzt haben Sie in einem neuen Shapefile mehrere Polygone, die die Lücken Ihrer ursprünglichen Abdeckung abdecken.
quelle
Es gibt vielleicht elegantere Lösungen, aber das hat bei mir immer funktioniert.
1) Erstellen Sie "lochfüllende" Polygone. Zeichnen Sie dazu ein riesiges Polygon, das größer als das Original ist, und verwenden Sie das Werkzeug "Differenz". Wenn Sie ein viel größeres Polygon gezeichnet haben, haben Sie alle "lochfüllenden" Polygone sowie ein einzelnes größeres Polygon, das die ursprüngliche Form umgibt. Löschen Sie dieses große Polygon und behalten Sie die "lochfüllenden" Polygone bei.
2) Fügen Sie die "lochfüllenden" Polygone mit dem ursprünglichen Shapefile zusammen. Wenn Sie nur Löcher füllen möchten, die einem bestimmten Kriterium entsprechen (dh unter X Quadratkilometern), können Sie hier danach filtern.
3) Lösen Sie das neu zusammengeführte Polygon in einem gemeinsamen Feld auf.
quelle
In Python / Shapely kann dies Ihr Polygon ausfüllen:
quelle
Ich habe einige Erklärungen gesehen, die dem gleichen Weg wie gtapko und tshiffle folgten, aber keine hat bei mir funktioniert, weil die ungültigen Geometrien das Differenzwerkzeug funktionsunfähig gemacht haben. Also habe ich mir eine eigene Lösung ausgedacht, die nicht zu 100% automatisiert, aber überschaubar ist. Wahrscheinlich hat das schon jemand gedacht, aber ich gehe mein Risiko ein:
1) Erstellen Sie eine ID auf der ursprünglichen, beschädigten Ebene
Das Erstellen eines ID-Attributs ist einfach, aber auch meine Lösung. Ich werde darauf eingehen.
Zuerst müssen Sie Ihre Attributtabelle öffnen und dann zum Feldrechner gehen , der eine Schaltfläche ist, die einem Abakus ziemlich ähnlich ist. Dort haben Sie die Möglichkeit, ein neues Feld zu erstellen oder ein vorhandenes zu aktualisieren. Auf dem Bild oben erstelle ich eine neue mit dem Namen "ID". Die Formel befindet sich am Ende des Bildes. (Es tut mir leid, dass ich mein QGIS in einer anderen Sprache eingerichtet habe. Da das Design und die Formeln in allen Sprachversionen genau gleich sind, denke ich nicht, dass es uns hier im Weg stehen wird.)
2) Konvertieren Sie die Polygone in Linien
Dieser Schritt befindet sich im Abschnitt Vektor> Geometrie im Menü. Ihre konvertierte Form sollte folgendermaßen aussehen:
Gleich nach dem Konvertieren der Polygone in Linien müssen Sie genau das Gegenteil tun, nämlich ...
3) Konvertieren Sie Linien in Polygone
Die Optionen liegen direkt nebeneinander. Auch hier macht uns die Sprachbarriere nichts aus.
4) Freuen Sie sich Der Grund, warum Sie die Schritte 2 und 3 ausgeführt haben, ist, dass Sie jetzt sicher sind, dass diese Linien als Polygone betrachtet werden, was bedeutet, dass sie jetzt eine eigene Linie in der Attributtabelle haben. Wenn Sie es ausprobieren, sieht es folgendermaßen aus:
Das erste ist IMMER das gesamte Polygon (vertrau mir, ich habe heute ein paar hundert Zeilen gelöscht ...) und der Rest sind die losen Linien in der Mitte. Sie können die Bearbeitung aktivieren und sich auf die Aktion vorbereiten. Wenn Sie dies versuchen möchten, sollten Sie zwei Dinge beachten: Ordnen Sie Ihre Tabelle nach ID , so dass Sie sicher sind, dass Sie nichts verpassen, und wählen Sie mithilfe von Shift Datencluster aus, genau wie bei jedem anderen Programm .
Ich bin mir bewusst, dass dies nicht die Crème de la Crème der QGIS-Problemlösung ist, aber wenn Sie in einer Situation sind, in der die Werkzeuge aufgrund der ungültigen Geometrie, die diese Linie erzeugt, nicht funktionieren (ich habe sogar versucht, sie anhand der ID aufzulösen, aber es hat nicht funktioniert), dann könnte dies ein Ausweg sein.
quelle