Berechnung der Rundheit / Kompaktheit des Polygons?

13

Ich versuche Wege zu finden, um die Formen verschiedener Polygone quantitativ zu beschreiben. Für mein Projekt repräsentieren diese Polygone Seen, Flüsse, Lagunen und Parks. Sie können also fast jede Form haben. Eine einfache Metrik besteht darin, den Umfang gegen die Fläche zu berechnen, was bestenfalls eine nur geringfügig nützliche Metrik ist. Ich würde aber auch sehr gerne etwas über die "Rundheit" eines Polygons sagen können. Oder wie "kompakt" die Form auf einer Karte ist.

Ich kann mir das nur leicht vorstellen, indem ich die Fläche jedes Polygons in Bezug auf einen Begrenzungsrahmen für dieses Polygon (den ich bereits habe) berechne. Dies scheint jedoch eine schlechte Lösung zu sein.

Also denke ich jetzt über etwas Ähnliches nach - nehme den Schwerpunkt des Polygons, füge eine Reihe von Puffern mit zunehmender Fläche hinzu (sagen wir 50%, 100%, 150%) und vergleiche dann, wie viel Überlappung zwischen jedem Puffer und besteht das ursprüngliche Polygon. Ein perfekter Kreis hat eine perfekte Überlappung von 100%, und ich kann die 50% - und 150% -Puffer verwenden, um zu beurteilen, wie viel und in welcher Weise sich jedes Polygon unterscheidet.

Aber selbst das fühlt sich umständlich an und ist eine schlechte Lösung für das, was jemand anderes wahrscheinlich schon viel besser herausgefunden hat.

Als Referenz muss ich mindestens in der Lage sein, die resultierenden Indizes für die Form verschiedener Polygone zu betrachten und eine fundierte Vermutung über deren Quelle (Fluss - Stausee mit dendritischer Form - See / Lagune - Park) anzustellen ?)

user25201
quelle
2
Lesen Sie auf jeden Fall den Roundness-Wikipedia-Artikel, um mehr über das Thema zu erfahren . Warum erstellen Sie nicht einfach einen Puffer um den Schwerpunkt, der exakt der gleichen Fläche wie das Polygon entspricht, und messen dann die Fläche außerhalb des Puffers, um eine Art Punktzahl zu erstellen? Versuchen Sie, eine relative Rundheit nur zwischen den Objekten in diesem Dataset zu erhalten, oder muss es eine absolute Rundheit sein, damit sie mit anderen Polygonen außerhalb dieses Datasets verglichen werden können?
Taylor H.
Danke für die Antwort, das hilft auf jeden Fall. Eine meiner Herausforderungen ist, dass es nicht ausreicht, nur Flächen zu vergleichen - ein längliches Ellipsoid hat möglicherweise den gleichen Rundheitsindex wie eine dendritische Form, die diesen Index verwendet. Wenn Sie diesen Rundheitsindex in Kombination mit der Beziehung zwischen Umfang und Fläche verwenden, können Sie möglicherweise auch diese Unterschiede erfassen. Ich habe diese Art von Analysen zuvor noch nicht durchgeführt, daher muss ich darüber nachdenken. Am Ende muss ich nur die Formen innerhalb eines Datensatzes vergleichen, aber dieser ist ziemlich groß (1000 Polygone)
user25201
Richtig, aber dann könnten Sie diese Ergebnisse anhand der Metrik Fläche vs. Umfang filtern, um die Formen zumindest von einfach bis komplex zu sortieren. Eine dendritische Form hat ein relativ geringeres Verhältnis von Fläche zu Umfang (perfekter Kreis hat ein Verhältnis von 1, Quadrat hat ein Verhältnis von 0,5 usw.). Auf jeden Fall kein einfaches Problem! Sie müssen einige Metriken verwenden, die ich mir vorstelle, um einen robusten "Rundheitswert" zu erzielen.
Taylor H.
Vielen Dank für Ihre Eingabe - ich denke, ab diesem Zeitpunkt muss ich diese Indizes ausprobieren und sehen, welche Ergebnisse ich erzielen kann. Vielleicht kann ich dann mit einer besser informierten Frage zurückkommen, um bei Bedarf weitere Hilfe zu erhalten. Ich schätze deine Zeit!
user25201
Denken Sie daran, dass innere Ringe (Löcher) und mehrere Teile den Vergleich zwischen Fläche und Umfang unbrauchbar machen. Sie können nur die äußeren Ringe zum Generieren einer Metrik verwenden, die Gewichtung der einzelnen Teile kann jedoch eine Herausforderung darstellen.
Vince

Antworten:

18

Die Kompaktheit eines Objekts kann mithilfe des Polsby-Popper-Tests gemessen werden, indem der Polsby-Popper -Score (PP) ermittelt wird. Die PP-Punktzahl wird durch Multiplizieren der Fläche des Polygons mit 4 pi und Dividieren durch das Quadrat des Umfangs bestimmt. Wenn Sie dies verwenden, hat ein Kreis eine Punktzahl von 1 und jede andere geometrische Form hat ein kleineres Verhältnis.

Scheibe: (4 * PI) * PI * R² / 4PI²R² = 1

Quadrat: (4 · PI) · C² / 16 · C² = PI / 4 ~ = 0,78

Ein weiterer nützlicher Index könnte die Länge / Breite des kleinsten umschließenden Rechtecks ​​sein (siehe das Werkzeug für die minimale Begrenzungsgeometrie ). In diesem Fall sind das Quadrat und der Kreis gleich und die Konkavität wird ignoriert.

Als letzte Empfehlung, wenn Sie mit Perimeter arbeiten, ist es nützlich, Ihr Objekt vor der Berechnung der Indizes zu "glätten", um den "Fraktal" -Effekt zu vermeiden (insbesondere, wenn Ihre Polygone von der Umwandlung von Raster zu Polygon stammen).

radouxju
quelle
Das hilft, danke. Meine Polygone stammen nicht von Rastern, aber das ist ein ausgezeichneter Punkt, über den ich nicht einmal nachgedacht hatte! Ich werde das auf jeden Fall tun.
user25201
Quelle von Formeln?
Taylor H.
Entschuldigung, ich erinnere mich nicht: - ~. Wahrscheinlich in einem Artikel über Landschaftsökologie. Ich habe es vor langer Zeit zum ersten Mal verwendet und der Einfachheit halber die "Normalisierung" hinzugefügt.
Radouxju
3
@Taylor Dies ist eine von vielen möglichen Charakterisierungen für "Kompaktheit". Typische Methoden vergleichen die Fläche des Merkmals mit einem Maß für seine Tortuosität oder räumliche Ausdehnung. Die letztgenannten Maßnahmen können nicht nur den Umfang, sondern auch den Durchmesser und die Größe der Begrenzungsmerkmale (z. B. Begrenzungsrahmen für die minimale Fläche, Begrenzungsellipse für die minimale Fläche und Umfang) umfassen. Exotischere umfassen Bereiche mit verschiedenen Puffern und einer geschätzten fraktalen Dimension. Die Herausforderung besteht in den meisten Situationen nicht darin, diese Maßnahmen zu berechnen, sondern zu entscheiden, welche für die Anwendung am relevantesten sind.
whuber
4

Ich hatte ein ähnliches Problem und löste die Gleichung für Umfang und Fläche eines Kreises, um sie einander gleich zu machen:

2 * pi * r = c <=> r = c / 2 * pi pi * r ^ 2 = a <=> r = sqrt (a / pi)

c / 2 * pi = sqrt (a / pi) <=>

sqrt (a / pi)

-------------- = 1

c / 2 * pi

Dieser Index liegt zwischen 0 und 1, wobei 1 ein perfekter Kreis ist. Ich weiß nicht, ob dies eine etablierte Methode ist, aber ich würde gerne von jedem hören, der sie woanders gesehen hat.

JohanOlsen
quelle
Schöne Entwicklung von Grund auf. Dies ist das Grundprinzip von Polby-Popper, das ich in meinem Beitrag erwähnt habe, mit der Ausnahme, dass Sie die Quadratwurzel gezogen haben. Im Grunde ändert sich das Ranking nicht, wenn Sie es Quadratwurzel (oder nicht)
radouxju
3

Neben der Rundheitsformel, die Radouxju in seiner Antwort umrissen hat, und anderen wie dem Verhältnis der Fläche des Polygons zur Fläche seines minimalen Begrenzungskreises - ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_checkin PostGIS: Ich finde, es hilft oft, die Anzahl der Eckpunkte / Punkte in a zu überprüfen 'verdächtige' Geometrie - ST_NPoints(geom)in PostGIS.

Das, was ich mache, unterscheidet sich von dem, was Sie beschreiben, aber ich stelle fest, dass der NPoints-Filter die Unterscheidung zwischen Grundstücksparzellen (die natürlich lang und dünn sein können) und Flüssen und anderen lang und dünn wirkenden natürlichen Merkmalen erleichtert. Es gibt ein ungewöhnlich langes, dünnes Grundstück, das an einen Fluss grenzt, aber bei der Anomalieprüfung wird uns das große Geld (HA!) Ausgezahlt: Sie haben immer eine Seite (zumindest), die für einen guten Teil der Länge des Features gerade ist. Also ist die Arbeit erledigt.

Es ist auch selten (in meinem Workflow), dass es keinen aspatialen Identifikator gibt, der nicht zum Tragen kommt, und auf jeden Fall ist ein Großteil meiner Arbeit so angelegt, dass wir "Delta" (Änderungen im Laufe der Zeit) analysieren. Wenn also die Daten bei T = 0 sauber sind und niemand 'negative Verbesserungen' für T ∈ [0, t-1] eingeführt hat, kann Delta für einen gesamten Zustand für T=t|t-1in einem halben Tag durchgeführt werden.

Jede Menge Punkte in einem Ding, das lang und dünn ist und keine einzige Linie hat, die ... wahrscheinlich ein Fluss ist.

Ein Reservoir mit einer dendritischen Form würde diese Vermutung sicherlich in Frage stellen, aber es ist wahrscheinlich, dass das Filtern nach der Gesamtlänge der Form zu Ergebnissen führt, wenn der gesamte Fluss ein Polygon ist (wir sollten so viel Glück haben) - oder die Anzahl der Pfade von der finden 'schmales' Ende bis zum fetten Ende (die Anzahl der Äste).

See gegen Park ... Ich würde versuchen, dies mit Luft- / Satellitenbildern zu tun, wenn ich meine Meinung äußere: Es ist ein viel einfacheres Problem, einen Land- / Wasser-Klassifikator zu verwenden, bei dem die zu überprüfende Region bekannt ist, als zu versuchen, eine zu identifizieren und zu extrahieren Wasserregion aus einem Bild, in dem der Ort des Wassers nicht bekannt ist.

Ich fand diese Antwort (auf eine andere Frage) auch sehr nützlich, um zwischen langen, dünnen Gesichtszügen zu unterscheiden.

GT.
quelle