¿Simplificando polígonos a cadenas lineales?

16

Me gustaría simplificar algunos polígonos que representan ríos en cadenas lineales. Supongo que se pueden omitir los agujeros en los polígonos. ¿Alguien tiene alguna buena idea de cómo hacerlo?

Sería bueno, si fuera posible hacerlo directamente en postgis o por otra herramienta de código abierto, pero una breve descripción del algoritmo será suficiente.

stachu
fuente

Respuestas:

13

Lo que necesita se llama "algoritmo de esqueletización".

Mira este artículo:

Haunert, J.-H., Sester, M., junio de 2008. Colapso del área y líneas centrales de la carretera basadas en esqueletos rectos. GeoInformatica 12 (2), 169-191. URL http://dx.doi.org/10.1007/s10707-007-0028-x

Algunos de estos algoritmos se desarrollan en la biblioteca CGAL .

julien
fuente
Ningún enlace funciona más, Julien: ¿crees que podrías proporcionar un resumen de los algoritmos o al menos referencias formales para permitir que las personas busquen los documentos?
Whuber
Sí, he actualizado la respuesta con una referencia adecuada a un artículo más reciente.
julien
2
¡Gracias! (Sin embargo, no puedo agregar otro
voto a favor,
4

En PostGIS 2.2 con SFCGAL, esto se puede hacer con ST_StraightSkeleton o ST_ApproximateMedialAxis , según sus criterios.

dbaston
fuente
2

el complemento de esqueleto JUMP está disponible como parte de openjump http://www.openjump.org

blackholesunn
fuente
1

Solo como advertencia, nunca he intentado esto antes. Su éxito dependerá de la calidad de los datos que tenga actualmente.

Entonces, piense en el polígono como una tira de triángulos. Cada triángulo se conecta a un vértice en el lado opuesto del corredor con un borde. Ahora, para cada uno de los bordes en el corredor, simplemente coloque un vértice justo en el centro. Estos nuevos vértices son los puntos de su cadena lineal. Probablemente pueda jugar con la forma en que selecciona el punto medio en el borde para una mayor precisión.

Jon Bringhurst
fuente
0

Una vez más, ET GeoWizards podría ser la respuesta. Pruebe la herramienta Crear líneas centrales a partir de polígonos .

Don Meltz
fuente