Calcolo della rotondità / compattezza del poligono?


13

Sto cercando di trovare modi per descrivere quantitativamente le forme di vari poligoni. Per il mio progetto, questi poligoni rappresentano laghi, fiumi, lagune e parchi. Quindi possono avere quasi qualsiasi forma. Una metrica semplice è calcolare il perimetro rispetto all'area, che nella migliore delle ipotesi è una metrica solo leggermente utile. Ma vorrei anche poter dire qualcosa sulla "rotondità" di un poligono. O quanto è "compatta" la forma su una mappa.

L'unico modo in cui riesco a pensare di farlo facilmente è calcolare l'area di ciascun poligono in relazione a un rettangolo di selezione per quel poligono (che già ho). Ma questa sembra una soluzione scadente.

Quindi ora sto pensando a qualcosa di più simile a questo: prendi il centroide del poligono, aggiungi una serie di buffer di aree in aumento (diciamo 50%, 100%, 150%), quindi confronta la sovrapposizione tra ciascun buffer e il poligono originale. Un cerchio perfetto avrà una sovrapposizione perfetta al 100% e posso usare i buffer del 50% e del 150% per giudicare quanto e in che modo ogni poligono differisce.

Ma anche quello sembra ingombrante, e come una povera soluzione alternativa per quello che qualcun altro probabilmente ha già capito molto meglio.

Per riferimento, come minimo dovrò essere in grado di guardare gli indici risultanti per la forma di vari poligoni, e di essere in grado di fare un'ipotesi colta sulla loro fonte (River? Reservoir con forma dendritica? Lake / Lagoon? Park ?)


2
Consulta sicuramente l' articolo di Wikipedia sulla rotondità per approfondire l'argomento. Perché non creare semplicemente un buffer attorno al centroide che è esattamente la stessa area del poligono, quindi misurare l'area esterna al buffer per creare un tipo di punteggio? Stai cercando di ottenere una rotondità relativa solo tra gli oggetti in questo set di dati o deve essere una rotondità assoluta in modo che possano essere confrontati con altri poligoni al di fuori di quel set di dati?
Taylor H.

Grazie per la risposta, questo sicuramente aiuta. Una delle mie sfide è che il confronto delle aree non sarà sufficiente: un ellissoide oblungo può avere lo stesso "indice di rotondità" di una forma dendritica usando questo indice. Forse l'uso di questo indice di rotondità in combinazione con la relazione perimetrale / area sarà in grado di catturare anche queste differenze, non ho mai fatto questo tipo di analisi prima, quindi dovrò pensarci. Alla fine, dovrò solo confrontare le forme all'interno di un set di dati, ma è abbastanza grande (migliaia di poligoni)
user25201

È vero, ma è possibile filtrare tali risultati utilizzando la metrica area vs. perimetro per almeno ordinare le forme da semplici a complesse. Una forma dendritica avrà un rapporto area-perimetro relativamente inferiore (il cerchio perfetto ha un rapporto di 1, il quadrato ha un rapporto di 0,5, ecc.) Sicuramente non è un problema facile! Dovrai utilizzare diverse metriche che immagino per ottenere un solido "punteggio di rotondità".
Taylor H.

Grazie per il tuo contributo - Penso che da questo punto in poi devo provare questi indici e vedere che tipo di risultati posso gestire. Allora forse posso tornare con una domanda più informata per ulteriore aiuto, se necessario. Apprezzo il tuo tempo!
user25201

Tieni presente che gli anelli interni (fori) e più parti renderanno inutile il confronto area-v-perimetro. È possibile utilizzare solo gli anelli esterni per generare una metrica, ma i valori di ponderazione delle singole parti potrebbero essere una sfida.
Vince il

Risposte:


18

La compattezza di un oggetto può essere misurata usando il test Polsby-Popper determinando il punteggio Polsby-Popper (PP). Il punteggio PP viene determinato moltiplicando l'area del poligono per 4pi e dividendo per il perimetro quadrato. Usando questo, un cerchio avrà un punteggio di 1 e ogni altra forma geometrica ha un rapporto più piccolo.

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

quadrato: (4 * PI) * C² / 16 * C² = PI / 4 ~ = 0,78

Un altro indice utile potrebbe essere la lunghezza / larghezza del rettangolo racchiuso più piccolo (vedere lo strumento di geometria delimitazione minima ). Ma in questo caso il quadrato e il cerchio sono simili e la concavità viene ignorata.

Come ultima raccomandazione, se lavori con il perimetro, è utile "lisciare" il tuo oggetto prima di calcolare gli indici, al fine di evitare l'effetto "frattale" (specialmente se i tuoi poligoni provengono dalla conversione da raster a poligono)


Questo aiuta, grazie. I miei poligoni non provengono da raster, ma questo è un punto eccellente che non avevo nemmeno preso in considerazione! Lo farò sicuramente.
user25201

Fonte di formule?
Taylor H.

Scusa, non ricordo: - ~. Probabilmente in un articolo sull'ecologia del paesaggio. L'ho usato per la prima volta tanto tempo fa e ho aggiunto la "normalizzazione" per maggiore comodità.
Radouxju,

3
@Taylor Questa è una delle molte possibili caratterizzazioni di "compattezza". I metodi tipici confrontano l'area della caratteristica con una misura della sua tortuosità o estensione spaziale. Queste ultime misure possono includere non solo il perimetro, ma anche il diametro e le dimensioni delle funzioni di delimitazione (come il riquadro di delimitazione dell'area minima, l'ellisse di delimitazione dell'area minima e il cerchio). Quelle più esotiche includono aree di vari buffer e una dimensione frattale stimata. La sfida nella maggior parte delle situazioni non sta nel calcolare queste misure ma nel decidere quale è più rilevante per l'applicazione.
whuber

4

Stavo affrontando un problema simile e alla fine ho risolto l'equazione sia per la circonferenza che per l'area di un cerchio per renderli uguali tra loro in questo modo:

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

Questo indice è compreso tra 0 e 1, dove 1 è un cerchio perfetto. Non so se questo è un metodo consolidato, ma mi piacerebbe avere notizie da chiunque potesse averlo visto altrove.


Bel sviluppo da zero. questa è la logica di Polby-Popper che ho citato nel mio post, tranne per il fatto che hai preso la radice quadrata. fondamentalmente non cambierà la classifica se la quadrate (o no)
radouxju

3

Oltre alla formula di rotondità delineata da radouxju nella sua risposta e ad altri come il rapporto tra l'area del poligono e l'area del suo cerchio di delimitazione minimo - ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_checkin PostGIS: trovo che spesso aiuti a controllare il numero di vertici / punti in un geometria "sospetta" - ST_NPoints(geom)in PostGIS.

Le cose che faccio sono diverse da quelle che stai descrivendo, ma trovo che il filtro NPoints aiuti a discriminare tra i pacchi di proprietà (che possono effettivamente essere lunghi e magri, ovviamente) e i fiumi e altre caratteristiche naturali a magra lunga. C'è lo strano pacco di proprietà lungo e magro che costeggia un fiume, ma il controllo delle anomalie è il motivo per cui ci vengono pagati i soldi (HA!): Invariabilmente hanno un lato (almeno) che è dritto per una buona parte della lunghezza della funzione, quindi lavoro fatto.

Inoltre, è raro (nel mio flusso di lavoro) che non ci siano alcuni identificativi aspatiali che non possono essere portati a termine, e in ogni caso gran parte del mio lavoro è impostato in modo da analizzare il "delta" (cambiamenti nel tempo) quindi se i dati in T = 0 sono puliti e nessuno ha introdotto "miglioramenti negativi" per T ∈ [0, t-1], allora delta per un intero stato per T=t|t-1può essere eseguito in mezza giornata.

Un sacco di punti in una cosa che è lunga e magra e non ha una sola linea che è ... probabilmente un fiume.

Un serbatoio con una forma dendritica sosterrebbe sicuramente questa ipotesi, ma è probabile che il filtraggio sulla lunghezza complessiva della forma possa produrre risultati se l'intero fiume è un poligono (dovremmo essere così fortunati) - o trovare il numero di percorsi dal fine "stretta" all'estremità grassa (il numero di rami).

Lago vs parco ... Vorrei provare a farlo da immagini / antenna satellitare, date le mie druthers: si tratta di un modo problema più facile da usare una terra / classificatore acqua dove la regione da controllare è noto, che cercare di identificare ed estrarre un regione dell'acqua da un'immagine in cui la posizione dell'acqua non è nota.

Ho anche trovato questa risposta (a una domanda diversa) molto utile per discriminare tra caratteristiche magre.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.