Quantificare le irregolarità dei confini dei poligoni?


13

Ho due poligoni: Poligono 1 e Poligono 2.

Utilizzando due metriche, area e lunghezza del perimetro, voglio esprimere quantitativamente che il poligono 1 ha un perimetro più irregolare / frastagliato / irregolare rispetto al poligono 2.

inserisci qui la descrizione dell'immagine

Ogni poligono ha la stessa lunghezza perimetrale ma ognuno copre aree abbastanza diverse. Per quantificare le irregolarità / irregolarità / irregolarità di ciascun poligono, qualora il calcolo sia:

area/perimeter 

o

perimeter/area 

Ho pensato perimeter/area, ma poi ho trovato questo post sul blog che utilizza area/perimeter: http://www.r-bloggers.com/measuring-the-gerrymander-with-spatstat/


7
Nessuno di questi rapporti ha senso, perché entrambi dipendono dalle unità di misura. Puoi renderli indipendenti dalle unità formando una funzione omogenea di zero gradi come perimetro / sqrt (area). Tali misurazioni sono spesso definite "tortuosità". Alcuni altri approcci possono essere trovati cercando nel nostro sito sulla tortuosità .
whuber

Qual'è la domanda? F1 (X) / F2 (Y) o F2 (Y) / F1 (X) non sono misure diverse, allo stesso modo in cui a non è una misura diversa da 1 / a.
BradHards,

1
@Bradhards Molte persone sostengono che a e 1 / a sono modi diversi di esprimere la stessa quantità sottostante, anche se esiste una relazione matematica tra di loro. La non linearità di questa relazione implica che questo non è un semplice cambiamento di unità. Le due espressioni dovrebbero essere considerate veramente diverse, così come (diciamo) la concentrazione e la concentrazione del tronco sono modi diversi di esprimere la concentrazione, o miglia per gallone e galloni per miglio sono essenzialmente modi diversi di esprimere il risparmio di carburante. (E nota che i galloni per miglio sarebbero interpretati come spreco , non "economia")
whuber

Risposte:


3

Dai un'occhiata a un programma chiamato FRAGSTATS ( http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html ). Nella sezione metriche della patch menziona "Indice di dimensione frattale" che le note affermano che "L'indice di dimensione frattale è allettante perché riflette la complessità della forma su una gamma di scale spaziali (dimensioni della patch). Pertanto, come l'indice di forma (SHAPE), supera una delle maggiori limitazioni del rapporto tra area perimetrale e rettilinea come misura della complessità della forma. " ( http://www.umass.edu/landeco/research/fragstats/documents/Metrics/Shape%20Metrics/Metrics/P9%20-%20FRAC.htm ).


Aggiungerei che la formula per calcolare l'indice delle dimensioni frattali sembra semplice da calcolare senza la necessità del software FRAGSTATS stesso. La formula è mostrata nel link sopra. L'indice di dimensione frattale si avvicina a 1 per forme con perimetri molto semplici come i quadrati e si avvicina a 2 per forme molto complesse.
user14134

1

La relazione tra area e perimetro non significa molto, probabilmente un quadrato e un rettangolo avrebbero lo stesso frastuono ma potrebbero avere lo stesso perimetro e più lontano dal quadrato è il rettangolo, minore è l'area.

Per calcolare la "frastagliatura" penso che devi sapere quanti vertici si trovano ad angoli maggiori di 180 gradi. Questo non dovrebbe essere troppo difficile da calcolare se si utilizza un negozio di geometrie in cui è nota la direzione di rotazione del poligono (in genere in senso antiorario, nel qual caso se si passa dal punto 1 al punto 2, l'angolo supera i 180 gradi se il punto 3 è a destra della linea definita dai punti 1 e 2). Altrimenti devi prima determinare la rotazione.


Questo è fondamentalmente quello che stavo pensando. Una sorta di "conteggio" di angoli acuti sul perimetro.
Baltok,

1
Il problema con questa proposta è che dipende da come la forma è rappresentata più che dalla forma stessa, il che la rende arbitraria e inaffidabile. Ad esempio, si potrebbe sostituire ogni punto acuto di una forma con una sequenza di due vertici molto ravvicinati con angoli inferiori a 180 gradi senza modificare visibilmente la forma. L'importanza di questa risposta sta nel sottolineare che non è possibile rispondere alla domanda senza avere una descrizione operativa del significato di "frastagliamento".
whuber

Suppongo che "frastagliato" significhi "con concavità". L'esempio frastagliato sopra ha una serie di concavità. Prendendolo come descrizione operativa, non c'è modo di creare una concavità in un poligono senza creare un angolo maggiore di 180 gradi rispetto alla direzione di rotazione dei vertici del poligono
Russell all'ISC il

Suppongo anche che il poligono non si intersechi da solo.
Russell all'ISC il

1
@Russell Va bene, ma non funziona ancora. Una "concavità" potrebbe essere rappresentata da un singolo vertice o da una sequenza di migliaia di vertici concavi ravvicinati (cosa che accade, ad esempio, quando la funzione viene creata sottraendo i buffer di altre caratteristiche). Ancora una volta, il problema è che la tua proposta dipende da dettagli irrilevanti della rappresentazione della forma piuttosto che dalle proprietà intrinseche della forma stessa. Questo può essere superato in molti modi stimando la dimensione frattale o la curvatura assoluta totale, ecc. , Ma la tua risposta non sembra andare in quella direzione.
whuber

1

Prova l'indice perimetrale normalizzato ( http://clear.uconn.edu/tools/Shape_Metrics/ ). L'indice perimetrale normalizzato utilizza il cerchio dell'area uguale per normalizzare la metrica. Quindi la formula è efficace (in Python, importa la matematica)normPeriIndex = (2*math.sqrt(math.pi*Area))/perimeter

Per il tuo esempio:

Poligono 1: indice perimetrale normalizzato = 0,358

Poligono 2: indice perimetrale normalizzato = 0,947

L'indice perimetrale normalizzato confronta il perimetro di input con il poligono più compatto con la stessa area (cerchio dell'area uguale), il che significa che è possibile utilizzarlo per identificare le caratteristiche con confini irregolari. L'altra cosa fantastica è che è facile e veloce da calcolare.

Potresti anche guardare la dispersione normalizzata, che calcola la distanza media dai punti lungo il perimetro dal centroide (dispersione). Per questo calcoleresti anche la deviazione, che è la differenza media tra ciascuna distanza e il raggio del cerchio dell'area uguale, quindi la formula finale sarebbe (dispersione - deviazione) / dispersione.

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.