Verallgemeinern der Polygondatei unter Beibehaltung der Topologie in QGIS?

35

Ich habe ein Polygon-Shapefile, das ich verallgemeinern muss. Wie kann ich die Poligons verallgemeinern und sicherstellen, dass es keine topologischen Fehler wie "Splitter" gibt?

Ich habe es schon versucht:

  1. Vektor -> Geometriewerkzeuge -> Polygone zu Linien
  2. Vektor -> Geometriewerkzeuge -> einfache Geometrien ... hier sehe ich schon auf dem Bildschirm, dass ich Überlappungen und Lücken produziere, aber jetzt versuche ich es
  3. Vektor -> Geometrie-Werkzeuge -> Linien zu Polgones

und hier zeigt das Programm einen Fehler und stürzt ab

Bildbeschreibung hier eingeben

Kurt
quelle
Gibt es Neuigkeiten zu diesem Thema?
Oystein
leider: nein
Kurt

Antworten:

16

GRASS ist topologiebewusst. Sie können v.generalize aus der Verarbeitungs-Toolbox verwenden, um Polygone zu vereinfachen, und wenn die Eingabedaten topologisch korrekt sind, wird dies auch für die Ausgabe der Fall sein.

Bildbeschreibung hier eingeben

Underdunkel
quelle
Wenn ich den Windows-Installer benutze, erhalte ich eine Fehlermeldung (fehlende Abhängigkeit), wenn ich versuche, v.generalize auszuführen. Müssen Sie eine spezielle Konfiguration?
Kurt
@ Kurt: Der eigenständige Installer? Nicht sicher, welche GRASS-Version es enthält. In den Verarbeitungseinstellungen können Sie angeben, ob GRASS 6.x oder 7.x und wo es installiert ist. Versuchen Sie, diese Konfigurationen an Ihr Setup anzupassen.
Underdunkel
ja, ich benutze den stanalone installer. Auf Ihren Rat hin habe ich grass 7 über die Verarbeitungsoptionen deaktiviert und den Pfad zu qrass 6 korrekt konfiguriert. Dieser Pfad war nicht korrekt, ein Überbleibsel eines älteren QGIS. Jetzt kann ich v.generalize ausführen, aber am Ende wird eine neue Fehlermeldung angezeigt: Die Ausgabeebene konnte nicht geöffnet werden, und schließlich wird die Meldung angezeigt, dass grass anscheinend korrekt installiert und konfiguriert ist. Könntest du mir bitte irgendwelche Vorschläge oder Hinweise geben?
Kurt
In der Regel bedeutet dieser Fehler, dass die Geoverarbeitung zu einem bestimmten Zeitpunkt fehlgeschlagen ist. Sie müssen das Protokoll überprüfen, das während der Ausführung der Tools erstellt wird, um festzustellen, wo der Fehler auftritt.
underdark
7

Dies kann als Vorbemerkung für die Antwort von @ Underdark angesehen werden, bei der Sie die Topologie der Vektorebene bereinigen können, bevor Sie verallgemeinern. GRASS verfügt über eine v.clean- Funktion, die eine Reihe von Werkzeugen zum Reparieren der Ebene enthält, z.

  • Schnapp , die ‚schnappt‘ Linien zum nächsten Vertex
  • rmdangle beseitigt lästige Baumelspuren
  • rmdupl entfernt duplizierte Geometrie-Features

und verschiedene andere im Bild unten gezeigt:

v.reinigen

Sie können den Schwellenwert auch festlegen, je nachdem, wie sensibel die Tools ausgeführt werden sollen. Persönlich verwende ich die Funktion " Gültigkeit der Geometrie prüfen" in QGIS ( Vektor > Geometriewerkzeuge >) Geometrie prüfen" Gültigkeit der Geometrie prüfen) zu verwenden, um nach Fehlern zu suchen , und, falls vorhanden, das entsprechende Werkzeug in v.clean zu verwenden . Sobald die Fehler beseitigt sind, sollten Sie in einer besseren Position sein, um zu verallgemeinern.

Hoffe das hilft!

Joseph
quelle
3
Und wenn eine einfache Vertexreduktion ausreicht, ist v.generalize nicht erforderlich, da das Prune-Tool dies tun kann.
Gabor Farkas
Vielen Dank für Ihre vorläufige Antwort an @ Underdark, die wertvolle Informationen enthält. obwohl ich es nicht explizit gesagt habe, ist natürlich die polygon-datei, die ich verallgemeinern wollte, topologisch sauber [weil; Müll - Müll raus :-)]
Kurt
@ Kurt, das macht Sinn :)
Joseph
2

Haben Sie versucht, MapShaper zu verwenden ? Ich habe festgestellt, dass dies eine gute Möglichkeit ist, Polygone zu verallgemeinern. Es gibt auch eine Offline-Version, wenn Sie den Code herunterladen möchten.

Eine Alternative könnte sein, dies in GeoJson und dann TopoJson zu konvertieren, das die "topologieerhaltende Formvereinfachung" https://github.com/mbostock/topojson unterstützt

djq
quelle
Habe Mapshaper ausprobiert, es ist wirklich ein tolles Tool
Kurt
1
noch ein kommentar: wie der titel schon sagt: ich suche eine lösung mit qgis. Mapshaper imho es nicht Topologie bewahrt (Beweisen Sie sich durch eine sehr starke Verallgemeinerung!). Topojson: Dies ist ein Bündel von Javascript-Quellcode, der imho nur für Programmierer nützlich ist
Kurt
Hoppla, ich habe den einzigen Aspekt von QGIS verpasst. QGIS unterstützt jedoch Geojson. Ich frage mich, ob es Sinn machen würde, die topojson-Vereinfachungsfunktion in ein QGIS-Plugin zu integrieren, um es für Nicht-Programmierer zugänglich zu machen
djq
Ich setze die Off-Topic-Zeile fort: OpenJUMP hat zu diesem Zweck ein Tool "Simplify Polygon Coverage".
User30184
0

Ich habe gerade einen kurzen Test durchgeführt und das Werkzeug "Geometrien vereinfachen" im Menü "Vektor" scheint die Topologie zu berücksichtigen. Ich habe versucht, mit und ohne das Kontrollkästchen "Topologische Bearbeitung aktivieren" unter "Fangoptionen" zu aktivieren. Haben Sie dies versucht?

BEARBEITEN: Dies wurde direkt in der Polygondatei durchgeführt - warum sollten Sie zuerst in Linien konvertieren?

Darren Cope
quelle
Hallo Darren, danke für den Hinweis, dass ich es mit aktivierter topologischer Bearbeitung versuchen werde
Kurt
1
Hallo Darren, imho respektiert es die Topologie nicht. Es gibt keinen Unterschied zu "topologische Bearbeitung aktivieren". Ich nehme an, dies liegt daran, dass das Generalisieren eine neue Ebene generiert , während "topologische Bearbeitung aktivieren" nur mit ausgewählten vorhandenen Ebenen zu funktionieren scheint. Könnten Sie bitte eine sehr sehr starke Verallgemeinerung durchführen und erneut prüfen, ob Sie jetzt eine korrekte Topologie haben? danke
Kurt
1
Kurt; Interessant. Sieht so aus, als hättest du recht, wenn du eine starke Verallgemeinerung machst! Es tut uns leid!
Darren Cope
1
Dieses Kontrollkästchen ist in QGIS 2.2 (möglicherweise früher) nicht mehr vorhanden, falls jemand suchen sollte.
Lynxlynxlynx
0

Es gibt die gleiche Diskussion hier , meine letzte Antwort ist, dass SAGA die Arbeit für Sie erledigt.

Niculita Mihai
quelle
Nach Ihrer Antwort in dieser Diskussion scheint SAGA die Topologie nicht beizubehalten. Zumindest nicht mehr.
Oystein