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) ?)
Respuestas:
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)
fuente
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.
fuente
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_check
en 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-1
se 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.
fuente