Ich habe ein Shapefile, das aus mehreren Polygonen besteht. Benachbarte Polygone teilen häufig ein Attribut.
Ich muss diese Polygone basierend auf dem gemeinsamen Attribut puffern. Ich möchte diese Puffer jedoch erweitern, bis sie sich treffen und an diesem Punkt aufhören können.
Ich habe ein hastig zusammengestelltes Modell:
Alles, was ich Code habe, ist das Folgende:
from qgis.core import *
from qgis.analysis import *
layer=qgis.utils.iface.activeLayer()
QgsGeometryAnalyzer().dissolve(layer, "D:/test_dissolved.shp", onlySelectedFeatures=False, uniqueIdField=3, p=None)
Ehrlich gesagt bin ich mit der QGIS-API-Dokumentation nicht sehr vertraut und kann trotz meiner Bemühungen keine geeignete Methode dafür finden.
QgsGeometryAnalyzer().dissolve
erlaubt mir, den Puffer aufzulösen, aber das ist nicht das, wonach ich suche.
Sollte ich hier vielleicht in eine andere Richtung schauen?
Sie möchten wahrscheinlich die Funktionen der Rasteranalyse untersuchen. Siehe Erstellen einer Mittellinie für jedes Polygon in der U-Boot-Canyon-Datenbank mit ArcGIS for Desktop Basic? und Erstellen von Thiessen (Voronoi) -Polygonen unter Verwendung von Linien (anstelle von Punkten) als Eingabefunktionen? für weitere Inspiration.
Dazu müssen Sie natürlich eine geeignete Rasterauflösung verwenden.
quelle
Ich hatte neulich eine etwas verwandte Aufgabe. In der Theorie sollten Voronoi-Polygone mit (gewichteten) Gebäudepunktpunkten nur die Lösung für Ihren Fall sein, aber es hat bei mir nicht funktioniert. PostgreSQL ist nicht das, wonach Sie gefragt haben, aber als Problemumgehung könnte es einen Versuch wert sein , PostGIS ST_ApproximateMedialAxis zu verwenden , wenn es die "Mittellinie" zwischen jedem Gebäude ist, nach dem Sie für den ersten Schritt suchen. Sie müssten ein Basispolygon für den gesamten Untersuchungsbereich erstellen und die Gebäudepolygone ausschneiden, bevor Sie die Funktion auf das Basispolygon anwenden, um verwandte Ergebnisse zu erhalten. Könnte funktionieren, könnte nicht ...
quelle