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 ?)
Antworten:
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).
quelle
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.
quelle
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_check
in 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-1
in 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.
quelle