Eu tenho dois polígonos: Polígono 1 e Polígono 2.
Usando duas métricas, área e comprimento do perímetro, quero expressar quantitativamente que o polígono 1 tem um perímetro mais desigual / irregular / irregular que o polígono 2.
Cada polígono tem o mesmo comprimento de perímetro, mas cada um cobre áreas bastante diferentes. Para quantificar a irregularidade / irregularidade / irregularidade de cada polígono, o cálculo deve ser:
area/perimeter
ou
perimeter/area
Eu pensei perimeter/area
, mas depois encontrei este post que usa area/perimeter
: http://www.r-bloggers.com/measuring-the-gerrymander-with-spatstat/
spatial-statistics
luciano
fonte
fonte
Respostas:
Dê uma olhada no programa chamado FRAGSTATS ( http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html ). Na seção de métricas de remendo, ele menciona o "Índice de dimensão fractal", que as notas afirmam "O índice de dimensão fractal é atraente porque reflete a complexidade da forma em uma escala de escalas espaciais (tamanhos de remendo). Assim, como o índice de forma (SHAPE), supera uma das principais limitações da razão área-perímetro reta como uma medida da complexidade da forma. ” ( http://www.umass.edu/landeco/research/fragstats/documents/Metrics/Shape%20Metrics/Metrics/P9%20-%20FRAC.htm ).
fonte
A relação da área com o perímetro não significa muito, provavelmente um quadrado e um retângulo teriam a mesma irregularidade, mas eles poderiam ter o mesmo perímetro e, quanto mais longe do quadrado, menor a área.
Para calcular a "irregularidade", acho que você precisa saber quantos dos vértices estão em ângulos maiores que 180 graus. Isso não deve ser muito difícil de calcular se você estiver usando um armazenamento de geometria onde a direção de rotação do polígono é conhecida (normalmente no sentido anti-horário, nesse caso, se você for do ponto 1 ao ponto 2, o ângulo excederá 180 graus se o ponto 3 está à direita da linha definida pelos pontos 1 e 2). Caso contrário, você precisará determinar a rotação primeiro.
fonte
Experimente o Índice de perímetro normalizado ( http://clear.uconn.edu/tools/Shape_Metrics/ ). O índice de perímetro normalizado usa o círculo de área igual para normalizar a métrica. Portanto, a fórmula é efetivamente (em Python, importe matemática)
normPeriIndex = (2*math.sqrt(math.pi*Area))/perimeter
Para o seu exemplo:
Polígono 1: Índice de Perímetro Normalizado = 0,358
Polígono 2: Índice de Perímetro Normalizado = 0,947
O índice de perímetro normalizado compara o perímetro de entrada com o polígono mais compacto com a mesma área (círculo de área igual), o que significa que você pode usá-lo para identificar recursos com limites irregulares. A outra grande coisa é que é fácil e rápido de calcular.
Você também pode observar a dispersão normalizada, que calcula a distância média dos pontos ao longo do perímetro do centróide (dispersão). Para isso, você também calcularia o desvio, que é a diferença média entre cada distância e o raio do círculo de área igual, a fórmula final seria (dispersão - desvio) / dispersão.
fonte