Mehr

Finden Sie die unregelmäßigen Polygone in QGIS mit Python

Finden Sie die unregelmäßigen Polygone in QGIS mit Python


Ich habe ein Vektor-Shapefile und möchte die unregelmäßigen Polygone finden. Welche Parameter sind zu berücksichtigen, um die Unregelmäßigkeit der Polygon-Features zu überprüfen?

Die Berechnung des Umfangs und der Ausdehnung ist für Rechtecke nützlich. Wie kann ich die unregelmäßigen Polygone im Polygon-Shapefile finden?

für f in layer.getFeatures(): perimeter = feat.geometry().length() bbox = geom.boundingBox() width = bbox.xMaximum() - bbox.xMinimum() height = bbox.yMaximum() - bbox. xMinimum()

Einfacher Weg

Sie müssen dafür keinen Code schreiben

  • Vector > Geometrie-Tools > Geometrie-Gültigkeit prüfen

wird Ihnen sagen, wenn es irgendwelche Probleme gibt, wie z

  • Selbstüberschneidung
  • Verstöße gegen die Wickelregeln

… obwohl es nur ein Bericht ist, wird es Ihre Geometrie nicht korrigieren.

Um diese zu beheben, können Sie verwenden v.sauber in Grass, über das Processing Toolkit.

In Code

Wenn Sie dies im Code tun möchten (z. B. als Teil eines Plugins)

  • QGSFeature verfügt über eine Geometrie()-Methode, um die QGSGeometry zu erhalten
  • QGSGeometry hat eine isGeosValid()-Methode, die einen booleschen Wert zurückgibt, um die Gültigkeit zu testen

Also sowas wie (nicht getestet)

für f in layer.getFeatures(): geom = feat.geometry() if geom.isGeosValid(): # ist gültig sonst: # nicht gültig

Hausdorff Entfernung

Um eigentlich quantifizieren wie regelmäßig ein Polygon ist, POSTGIS hat eine Implementierung von Hausdorff Distance, ST_HausdorffDistance(geom1,geom2).

Sie könnten die Polygongeometrie mit etwas vergleichen wie

  • der Begrenzungsrahmen Ihres Polygons,
  • der minimale Begrenzungskreis
  • eine vereinfachte Version Ihres Polygons

zum Beispiel.

Jede davon würde ein objektives Maß dafür geben, wie unregelmäßig Ihr Polygon ist.

Ich habe dies einmal auf einer Karte der US-Counties verwendet, um Staaten nach Formähnlichkeiten mit anderen Countys zu identifizieren und zu gruppieren. Es funktionierte ganz gut, obwohl es nur Formen als ähnlich erkannte, wenn die Größen nahe beieinander waren. Aber wenn Sie meinem Vorschlag folgen, mit Bounding Box zu vergleichen, sollte das kein Problem sein.


Schau das Video: QGIS 3: Select and Clip Shapefiles to a polygon. Geomatic Engineering. For Absolute Beginners