Cálculo de redondez / compacidad de polígono?

13

Estoy tratando de encontrar formas de describir cuantitativamente las formas de varios polígonos. Para mi proyecto, estos polígonos representan lagos, ríos, lagunas y parques. Entonces pueden tener casi cualquier forma. Una métrica fácil es calcular el perímetro versus el área, que en el mejor de los casos es una métrica solo ligeramente útil. Pero también me gustaría poder decir algo sobre la 'redondez' de un polígono. O cuán 'compacta' es la forma en un mapa.

La única forma en que puedo pensar en hacer esto fácilmente es calcular el área de cada polígono en relación con un cuadro delimitador para ese polígono (que ya tengo). Pero esto parece una mala solución.

Así que ahora estoy pensando en algo más como esto: tome el centroide del polígono, agregue una serie de amortiguadores de áreas crecientes (por ejemplo, 50%, 100%, 150%), luego compare cuánta superposición hay entre cada amortiguador y El polígono original. Un círculo perfecto tendrá una superposición perfecta al 100%, y puedo usar los buffers de 50% y 150% para juzgar cuánto y de qué manera difiere cada polígono.

Pero incluso eso se siente engorroso, y como una solución alternativa pobre para lo que alguien más probablemente ya haya descubierto mucho mejor.

Como referencia, como mínimo tendré que poder mirar los índices resultantes para la forma de varios polígonos, y ser capaz de hacer una conjetura sobre su origen (¿Río? ¿Embalse con forma dendrítica? ¿Lago / Laguna? Parque) ?)

usuario25201
fuente
2
Definitivamente revise el artículo de Wikipedia de redondez para una reflexión más profunda sobre el tema. ¿Por qué no simplemente crear un búfer alrededor del centroide que es exactamente la misma área que el polígono, y luego medir el área fuera del búfer para crear algún tipo de puntaje? ¿Está tratando de obtener una redondez relativa entre solo los objetos en este conjunto de datos, o necesita ser una redondez absoluta para que puedan compararse con otros polígonos fuera de ese conjunto de datos?
Taylor H.
Gracias por la respuesta, eso definitivamente ayuda. Uno de mis desafíos es que solo comparar áreas no será suficiente: un elipsoide oblongo puede tener el mismo 'índice de redondez' que una forma dendrítica usando este índice. Quizás el uso de este índice de redondez en combinación con la relación perímetro / área también pueda capturar esas diferencias, no he hecho este tipo de análisis antes, así que tendré que pensarlo. Al final, solo necesitaré comparar formas dentro de un conjunto de datos, pero es bastante grande (miles de polígonos)
usuario25201
Es cierto, pero luego podría filtrar esos resultados utilizando la métrica de área versus perímetro para al menos ordenar las formas de simples a complejas. Una forma dendrítica tendrá una relación área / perímetro relativamente más baja (el círculo perfecto tiene una relación de 1, el cuadrado tiene una relación de 0.5, etc.) ¡Definitivamente no es un problema fácil! Tendrá que usar varias métricas que imagino para lograr un "puntaje de redondez" robusto.
Taylor H.
Gracias por su aporte. Creo que a partir de este momento tengo que probar estos índices y ver qué tipo de resultados puedo administrar. Entonces, tal vez pueda volver con una pregunta más informada para obtener más ayuda, si es necesario. ¡Aprecio tu tiempo!
user25201
Tenga en cuenta que los anillos interiores (agujeros) y varias partes harán que la comparación de área-v-perímetro sea inútil. Puede usar solo los anillos exteriores para generar una métrica, pero los valores de ponderación de las partes individuales podrían ser un desafío.
Vince

Respuestas:

18

La compacidad de un objeto se puede medir utilizando la prueba de Polsby-Popper determinando la puntuación de Polsby-Popper (PP). El puntaje PP se determina multiplicando el área del polígono por 4pi y dividiendo por el perímetro al cuadrado. Usando esto, un círculo tendrá un puntaje de 1 y cualquier otra forma geométrica tendrá una relación menor.

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

cuadrado: (4 * PI) * C² / 16 * C² = PI / 4 ~ = 0.78

Otro índice útil podría ser el largo / ancho del rectángulo envolvente más pequeño (consulte la herramienta de geometría de límite mínimo ). Pero en este caso, el cuadrado y el círculo son iguales y se ignora la concavidad.

Como última recomendación, si trabaja con el perímetro, es útil "suavizar" su objeto antes de calcular los índices, para evitar el efecto "fractal" (especialmente si sus polígonos provienen de la conversión de ráster a polígono)

radouxju
fuente
Esto ayuda, gracias. Mis polígonos no provienen de rásteres, ¡pero ese es un excelente punto que ni siquiera había considerado! Definitivamente voy a hacer eso.
user25201
¿Fuente de fórmulas?
Taylor H.
Lo siento, no me acuerdo: - ~. Probablemente en un artículo sobre ecología del paisaje. Lo usé por primera vez hace mucho tiempo y agregué la "normalización" para mayor comodidad.
radouxju
3
@ Taylor Esta es una de las muchas caracterizaciones posibles de "compacidad". Los métodos típicos comparan el área de la entidad con una medida de su tortuosidad o extensión espacial. Las últimas medidas pueden incluir no solo el perímetro sino también el diámetro y los tamaños de las características delimitadoras (como el cuadro delimitador de área mínima, la elipse delimitadora de área mínima y el círculo). Los más exóticos incluirían áreas de varios amortiguadores y una dimensión fractal estimada. El desafío en la mayoría de las situaciones no radica en calcular estas medidas sino en decidir cuál es la más relevante para la aplicación.
whuber
4

Estaba enfrentando un problema similar y terminé resolviendo la ecuación tanto para la circunferencia como para el área de un círculo para que fueran iguales entre sí de la siguiente manera:

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

Este índice está entre 0 y 1, donde 1 es un círculo perfecto. No sé si este es un método establecido, pero me encantaría saber de alguien que lo haya visto en otro lugar.

JohanOlsen
fuente
Buen desarrollo desde cero. Este es el fundamento de Polby-Popper que mencioné en mi publicación, excepto que tomaste la raíz cuadrada. Básicamente, no cambiará la clasificación si la raíz cuadrada (o no)
radouxju
3

Además de la fórmula de redondez esbozada por radouxju en su respuesta y otras como la relación del área del polígono al área de su círculo de límite mínimo, ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_checken PostGIS: encuentro que a menudo ayuda a verificar el número de vértices / puntos en un geometría 'sospechosa' - ST_NPoints(geom)en PostGIS.

Lo que hago es diferente de lo que está describiendo, pero creo que el filtro NPoints ayuda a discriminar entre parcelas de propiedades (que en realidad pueden ser largas y delgadas, por supuesto) y ríos y otras características naturales de larga duración. Existe la extraña parcela de propiedad larga y delgada que bordea un río, pero la verificación de anomalías es la razón por la que nos pagan mucho dinero (¡HA!): Invariablemente tienen un lado (al menos) que es recto para una buena parte de la longitud de la característica, Así que el trabajo está hecho.

Además, es raro (en mi flujo de trabajo) que no haya algún identificador espacial que no pueda aplicarse, y en cualquier caso, gran parte de mi trabajo está configurado para que estemos analizando 'delta' (cambios a lo largo del tiempo) entonces, si los datos en T = 0 están limpios y nadie ha introducido 'mejoras negativas' para T ∈ [0, t-1], entonces T=t|t-1se puede hacer un delta para un estado completo en medio día.

Un montón de puntos en una cosa que es larga y delgada y no tiene una sola línea que sea ... probablemente un río.

Un reservorio con una forma dendrítica ciertamente desafiaría esa suposición, pero es probable que el filtrado en la longitud total de la forma produzca resultados si todo el río es un polígono (deberíamos tener tanta suerte), o encontrar el número de caminos desde el extremo 'estrecho' hasta el extremo gordo (el número de ramas).

Lake vs park ... Trataría de hacerlo mediante imágenes aéreas / satelitales, dada mi investigación: es un problema mucho más fácil usar un clasificador de tierra / agua donde se conoce la región a verificar, que tratar de identificar y extraer un región del agua de una imagen donde no se conoce la ubicación del agua.

También encontré esta respuesta (a una pregunta diferente) muy útil para discriminar entre características delgadas y largas.

GT.
fuente