Simplificación de geometrías (generalización)

22

¿Cuáles son las formas recomendadas de simplificar las geometrías? Teniendo en cuenta las proyecciones y simplificando las geometrías de estado, por ejemplo.

Escuché sobre la conversión a una proyección 'equidistante' que permite la simplificación sin distorsión, y luego volver a convertir a la proyección elegida.

John Weldon
fuente
44
No estoy seguro, pero "generalización" podría ser una etiqueta más descriptiva para esto. Simplificar, al menos en el contexto de ArcGIS, es un método para asegurar la corrección topológica. Wikipedia dice que la simplificación es parte de la generalización cartográfica. en.wikipedia.org/wiki/Cartographic_generalization
Kirk Kuykendall
Gran sugerencia @Kirk
John Weldon

Respuestas:

11

Como glennon mencionado, el algoritmo estándar para hacer esto es Douglas-Peucker , que es el algoritmo predeterminado utilizado en el software como PostGIS (es decir, GEOS) a través de St_Simplify, ArcGIS vía Generalizey la hierba a través de v.generalize. El artículo de Wikipedia también se vincula a una implementación de Python .

GRASS admite varios algoritmos diferentes, como se explica en la página de ayuda para v.generalize .

Sobre el tema de la proyección, creo que en este caso es un arenque rojo que puede ignorarse. El único problema que viene a la mente son las líneas potencialmente densificadoras para evitar que se simplifiquen demasiado.

scw
fuente
3

Si por "simplificación" se refiere a una simple reducción del número de puntos, use un algoritmo de filtrado básico, como el filtro de Douglass. Un enlace útil para eso: http://mapshaper.org/

Si por "simplificación" se refiere a obtener una forma más simple, los algoritmos de filtrado no siempre son adecuados. Se deben utilizar algoritmos de generalización más avanzados . Algunos documentos sobre tales algoritmos se pueden encontrar allí: http://generalisation.icaci.org/ , con algunos ejemplos de resultados: http://generalisation.icaci.org/index.php/results . Solo algunos de estos algoritmos se implementan en los softwares comerciales comunes de SIG. Se puede acceder a algunos usando esto: http://webgen.geo.uzh.ch/

julien
fuente
los sitios aci.ign.fr no son accesibles. ¿Sabes dónde podemos encontrar ejemplos del "algoritmo de generalización avanzado" que estás mencionando?
radouxju
La url ha cambiado, verifique: generalisation.icaci.org
julien
2

Si está simplificando la geometría debido a las limitaciones en el poder de procesamiento de la computadora, es posible que desee considerar generar mapas MIP con máscaras alfa asociadas para cada geometría en varios niveles.

Jon Bringhurst
fuente
Muy interesante, ¿estarías dispuesto a elaborar?
John Weldon
Bueno, para hacer esto, necesitaría rasterizar cada geometría de vector en un mapa de bits para cada nivel que permita a los usuarios acercar y alejar el mapa. Luego, en lugar de dibujar la geometría del vector para cada nivel una y otra vez, simplemente representaría el mapa de bits. Por lo tanto, el cálculo para rasterizar la geometría (que es costoso si tiene una tonelada de vértices) se realiza por adelantado en lugar de cada vez que el usuario realiza una acción. La máscara alfa entra en la imagen cuando dibuja el mapa de bits: se usa para que solo se dibuje la forma.
Jon Bringhurst
1

Este es un tema difícil, ya que debe tener en cuenta algún tipo de resolución de su conjunto de datos. ¿Cuándo es un vértice de geometría igual a otro vértice? Nunca escuché sobre la conversión y la reconversión, aunque sería una prueba interesante.

Las geometrías simples son, según OGC, geometrías que no se intersecan entre sí, y en el caso de polígonos, geometrías que están orientadas correctamente, para la (s) capa (s) externa (s) y la (s) capa (s) interna (s) y posteriormente.

George Silva
fuente