Algoritmo para corregir errores topológicos en aplicaciones de software SIG


19

Pregunta relacionada aquí.

Noté que garantizar la corrección topológica es esencial para las aplicaciones SIG, esto se debe a que la entrada del usuario o la operación booleana del polígono puede tener graves problemas topológicos (aunque los polígonos se vean correctos) que comprometerían la calidad de las operaciones posteriores.

Polígono limpio es como hacen los Geo Wizards para asegurar la corrección de la topología.

Arcgis también tiene un comando para limpiar las astillas.

Mi pregunta no es acerca de cómo usar los paquetes de software existentes para garantizar que los datos de entrada del polígono sean topológicamente correctos; más bien, mi pregunta es sobre cómo estos paquetes de software implementan esos procedimientos de limpieza. En otras palabras, ¿cuál es el algoritmo que puedo usar para asegurarme de que puedo corregir todos los errores topológicos, dado un conjunto de entradas poligonales?


2
Hay otra herramienta de ArcGIS GP, llamada "Integrar", que tiene una breve explicación del algoritmo en el recurso de ayuda: help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… - Sin embargo, no se especifica bien
Allan Adair

Su propio enlace de Geo Wizards en realidad representa los algoritmos bastante bien. Que mas esperas
johanvdw

@hohanvdw, lo que muestra el enlace no es un algoritmo, sino pasos sobre cómo usar el software para activar el algoritmo para limpiar el polígono. La diferencia entre los dos es enorme.
Graviton

1
La búsqueda de algoritmos de planarización puede resultar algo útil.
Kirk Kuykendall

@KirkKuykendall, no sé cómo ayuda el planarización. ¿Pensé que es más aplicable a la teoría de grafos que a este tipo de geometría computacional?
Graviton

Respuestas:


7

Una búsqueda rápida en Google Académico arrojó los siguientes artículos bien citados:


+1 Parece un artículo bien pensado. Sin embargo, desearía que los autores definieran lo que quieren decir con "escena".
Kirk Kuykendall

Gracias, agregué un segundo artículo (de uno de los mismos autores), pero a primera vista todavía no puedo decir qué es una "escena".
blah238

10

Puede encontrar una descripción detallada de las rutinas de limpieza topológica en el código fuente y los manuales de GRASS GIS: http://grass.osgeo.org/programming7

Las rutinas de limpieza están codificadas aquí: http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean

Ejemplos para las rutinas subyacentes:

Los conceptos subyacentes se describen aquí: http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples


4

Aunque no es un algoritmo, esta página le brinda información sobre qué tipos de errores de topología busca "verificar geometría" en las herramientas de ArcGIS Verificar geometría / Reparar geometría. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000003v000000

Null geometry: The record will be deleted from the feature class. To keep records with null geometry, uncheck the tool dialog option Delete Features with    Null Geometry, or in scripting set the delete_null parameter to KEEP_NULL.
Short segment: The geometry's short segment will be deleted.
Incorrect ring ordering: The geometry will be updated to have correct ring ordering.
Incorrect segment orientation: The geometry will be updated to have correct segment orientation.
Self intersections: the areas of overlap in a polygon will be dissolved.
Unclosed rings: The unclosed rings will be closed by connecting the ring's end points.
Empty parts: The parts that are null or empty will be deleted.
Duplicate vertex: One of the vertices will be deleted.
Mismatched attributes: The Z or M coordinate will be updated to match.
Discontinuous parts: Multiple parts will be created from the existing discontinuous part.
Empty Z values: The Z value will be set to 0.

3

No creo que haya una manera de automatizar por completo la corrección de errores topológicos en un conjunto de datos dado. Algunas cosas, como los colgantes, podrían automatizar la división y luego eliminar el colgado resultante. Pero entonces, ¿qué pasa con las astillas entre dos polígonos adyacentes, qué polígono debería fusionarse con qué astilla para eliminarlo? Ese tipo de pregunta parece necesitar la intervención del usuario. Sin embargo, para identificar los errores, creo que los algoritmos usan algún tipo de variación del DE-9IM (Dimensionalmente extendido 9 algo algo). Creo que su mejor opción sería mirar Java Topology Suite (JTS). Específicamente la clase Geometry Graph. Creo que esto podría usarse para construir los diferentes componentes de una geometría particular, y luego usarlo para verificar diferentes problemas de topología. Nunca lo hice, pero lo investigé no hace mucho.

Si no está familiarizado con Java, GEOS es el sabor C ++ de JTS, o NetTopologySuite es el sabor C #.

Espero que ayude.


1

La documentación del comando Integrar de ArcGIS ya se ha mencionado, pero ESRI también ha producido un documento técnico titulado Comprensión del procesamiento geométrico en ArcGIS que documenta la lógica de procesamiento que utiliza Integrate (y las operaciones de geoprocesamiento que implican la tolerancia en general). Esto se centra en evitar y corregir los errores topológicos generados por el geoprocesamiento. Hay algunas referencias dadas que también pueden ser útiles.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.