Verwenden Sie beseitigen (ArcInfo - Lizenz erforderlich)
Eliminiert Polygone, indem sie mit benachbarten Polygonen mit der größten Fläche oder der längsten gemeinsamen Grenze zusammengeführt werden. Eliminate wird häufig verwendet, um kleine Splitterpolygone zu entfernen, die das Ergebnis von Überlagerungsoperationen sind, z. B. Intersect oder Union.
http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm
ArcGIS 10-Benutzer Beachten Sie, dass die Optionen für dieses Tool eine NEUE Funktion enthalten.
Mit der Option> ex_features (optional) kann jetzt das ursprüngliche POLYGON oder POLYLINE beibehalten werden. Eine Eingabe-Polylinie oder Polygon-Feature-Class oder -Layer , die Polygongrenzen oder Teile davon definiert, die nicht entfernt werden dürfen.
Um dies manuell in QGIS zu tun, gehen Sie zu Aktivieren Sie auf
Settings|Project Properties...
derGeneral
Registerkarte untenSnapping options...
die Ebene, die Sie fangen möchten, stellen Sie den Modus aufto vertex
und stellen Sie die Toleranz auf einen Wert ein, der kleiner als der kürzeste Abstand zwischen zwei Punkten ist, den Sie haben. Wenn Sie sich nicht sicher sind, stellen Sie die Einheiten aufpixels
und die Toleranz auf etwa 5, damit Sie bei gewissen Details richtig zoomen und sicherstellen können, dass Sie nicht am falschen Scheitelpunkt einrasten.Bearbeiten Sie dann Ihre Vektorebene, wählen Sie das Knotenwerkzeug aus und verschieben Sie die fehlerhaften Punkte auf ihre Gegenstücke.
Es ist etwas kniffliger, es automatisch zu machen. AFAIK QGIS verfügt nicht über ein Plugin zur Automatisierung, und obwohl PostGIS auf GEOS basiert, das über Fangfunktionen verfügt, sind sie nicht mit PostGIS konfrontiert. Es könnte möglich sein, eine Abfrage zu schreiben, um jeden Punkt eines Polygons auf Nachbarn innerhalb der Fangentfernung zu prüfen, aber ich kann das derzeit nicht näher erläutern.
GRASS verfügt über v.clean.snap, auf das Sie über QGIS zugreifen können. Es gibt jedoch noch einen zusätzlichen Schritt zum Erstellen eines GRASS-Datasets.
quelle
Wenn Sie mit QGIS vertraut sind: Im QGIS-Trunk 1.9 (kann über den OSGEO-Installer als qgis.dev installiert werden, siehe qgis-Homepage) befindet sich im Vektormenü eine neue Funktion namens "Splitterpolygone entfernen", die genau das tut, was Sie tun wollen. Sie können die problematischen Polygone auswählen und basierend auf einer gemeinsamen Grenze oder einem gemeinsamen Flächenanteil zu benachbarten Polygonen zusammenführen. Versuch es!
quelle
Wenn Sie ein QGIS-Benutzer sind, erhalten Sie die gesamte Leistung von GRASS, da es sich um ein vollständig topologisches GIS handelt. Aktivieren Sie in QGIS das GRASS-Plugin und erstellen Sie einen Ort / ein Mapset, an dem Ihre Daten importiert werden sollen.
Öffne das Mapset und importiere deine schmutzige Ebene mit v.in.ogr. Spiele mit den beiden erweiterten Parametern "Fangschwelle für Grenzen" und "Mindestgröße des zu importierenden Bereichs".
Sie können auch die vom v.clean-Modul bereitgestellten Optionen verwenden.
quelle
In ArcGIS gibt es Topologieregeln , mit denen Sie Lücken in Ihren Daten identifizieren und korrigieren können, z. B. auf die Sie sich beziehen. Zum Erstellen von Topologieregeln benötigen Sie entweder eine ArcEditor- oder eine ArcInfo-Lizenz und speichern Ihre Feature-Class in einem Feature-Dataset in einer persönlichen oder einer File-Geodatabase.
Sie möchten höchstwahrscheinlich die Regel " Darf keine Lücken haben " implementieren . Nachdem Sie die Regelbasis mit allen Regeln erstellt haben, die Sie für notwendig halten, möchten Sie die Topologie validieren, die alle Fehler in Ihren Daten identifiziert.
Anschließend können Sie mit dem Fehlerinspektor und dem Tool zum Beheben von Topologiefehlern die zu behebenden Fehler einzeln oder in großen Mengen auswählen und festlegen, wie sie behoben werden sollen (z. B. neue Polygone erstellen, um die Lücken zu füllen, oder mit größeren Polygonen zusammenführen). .
quelle
In der QGIS 2.12 (Lyon) Toolbox gibt es die Funktion "Splitterpolygone entfernen". Ich bin sicher, dass es auch in einer früheren Version ist.
quelle
Nun, ich habe eine PostGIS-Funktion (die ich direkt in meinem QGIS verwende) verwendet, die einen rekursiven Snap ausführt, um dieses Problem zu lösen. Die Ergebnisse sind recht gut, es ist nur eine gute Auswahl an Toleranzwerten erforderlich, um die besten Ergebnisse zu erzielen. Wenn Sie bereit sind, es zu versuchen, überprüfen Sie es (in meinem Fall sind die Geometrien alle multi, folglich das st_multi in meinem Execute):
quelle
Keine perfekte Lösung, aber eines dieser beiden Dinge funktioniert in den meisten Fällen für mich:
Speichern Sie die Ebene in QGIS im GEOJSON-Format. Stellen Sie vor dem Speichern im Dialogfeld "Ebene speichern unter" die Koordinatengenauigkeit auf 3 ein (15 ist die Standardeinstellung). Dies hat den Effekt, Scheitelpunkte zu vereinen, die sehr nahe beieinander liegen.
Gehen Sie zu Mapshaper , laden Sie die Datei hoch und klicken Sie auf "Vereinfachen". In der oberen linken Ecke wird angezeigt, wie viele Linienkreuzungen gefunden wurden, und Sie haben die Möglichkeit, diese zu korrigieren. Ich finde, dass dieses Update etwa die Hälfte der Zeit funktioniert.
quelle
Ich habe es nicht verwendet, aber ET Geowizards , das viele ArcEditor- und ArcInfo-Verarbeitungswerkzeuge in die ArcView-Level-Lizenz (auch bekannt als ArcGIS Standard) bringt, verfügt über einen Eliminate-Assistenten , der "unerwünschte Polygone (Splitter) durch Zusammenführen mit benachbarten Polygonen oder" eliminiert " löschen " . Das Wizard-Toolkit gibt Ihnen 250 USD ( Preisliste ) zurück.
quelle
Ich hatte das gleiche Problem: Durch das Erforschen der Werkzeuge konnte ich mich recht leicht zurechtfinden, obwohl ich die Logik nicht kenne. ! [Gehen Sie in den Tools zur Toolbox "Datenverwaltung", gehen Sie zu "Feature-Class" und führen Sie das Integrationsskript durch Doppelklick aus.] [1]
Wählen Sie im Skriptfenster die Feature-Class mit dem Problem aus, und fügen Sie in der XY-Toleranz das Tal hinzu, indem Sie den Abstand mit Hilfe des Messwerkzeugs an mehreren Punkten messen. Lassen Sie ein durchschnittliches Tal diesen Wert in die Toleranzumgebung einfügen und das von mir gelöste Problem anwenden nicht wie sondern mit ca. 90% genauigkeit gelöst. ! [Bildbeschreibung hier eingeben] [2]
Ich habe alle anderen in den obigen Antworten beschriebenen Methoden ausprobiert, aber es war schwierig und umständlich, die automatisierten Korrekturen für Lücken zwischen den benachbarten Polygonen zu erhalten.
quelle