20 votos

Algoritmo para corregir errores topológicos en aplicaciones SIG

Pregunta relacionada aquí.

Me he dado cuenta de 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 de polígonos pueden tener graves problemas topológicos (aunque los polígonos parezcan correctos) que comprometerían la calidad de las operaciones posteriores.

Polígono limpio es lo que hacen los Asistentes Geo para garantizar la corrección de la topología.

Arcgis también dispone de un comando para limpiar las astillas.

Mi pregunta es no sobre cómo utilizar los paquetes de software existentes para garantizar que los datos de entrada de los polígonos son 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 utilizar para asegurarme de que puedo corregir todos los errores topológicos, dado un conjunto de entradas poligonales?

11voto

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

Aquí se codifican las rutinas de limpieza: http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean

Ejemplos para las rutinas subyacentes:

A continuación se exponen los conceptos subyacentes: http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples

8voto

auramo Puntos 161

Una rápida búsqueda en Google Scholar ha dado como resultado los siguientes artículos bien citados:

4voto

Max Puntos 3140

Aunque no es un algoritmo, esta página ofrece información sobre los tipos de errores topológicos que busca "comprobar geometría" en las herramientas de ArcGIS Comprobar 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.

3voto

Xetius Puntos 10445

No creo que exista una forma de automatizar completamente la corrección de errores topológicos en un conjunto de datos determinado. En algunos casos, como el de los colgantes, podría automatizarse la división y posterior eliminación del colgante resultante. Pero entonces, ¿qué pasa con las astillas entre dos polígonos adyacentes, qué polígono debe fusionarse con qué astilla para eliminarla? Este tipo de pregunta parece necesitar la opinión del usuario. Para identificar los errores, sin embargo, creo que los algoritmos utilizan algún tipo de variación del DE-9IM (Dimensionalmente extendido 9 algo algo). Creo que su mejor apuesta sería buscar en el Java Topology Suite (JTS). Específicamente la clase Geometry Graph. Creo que esto podría ser utilizado para construir los diferentes componentes de una geometría particular, y luego se utiliza para comprobar diferentes problemas de topología. Nunca lo he hecho, pero miré en él no hace mucho tiempo. Creo que QGIS incluye un plugin para comprobar los errores en la geometría, usted podría tratar de encontrar el código fuente de ese plugin para ver cómo lo hicieron.

Si no está familiarizado con Java, GEOS es la versión C++ del STC, y NetTopologySuite es la versión C#.

Espero que le sirva de ayuda.

1voto

Vlado Klimovský Puntos 196

Ya se ha mencionado la documentación del comando Integrate de ArcGIS, pero ESRI también ha elaborado un documento técnico Comprender el procesamiento geométrico en ArcGIS documentar la lógica de procesamiento utilizada por Integrate (y, en general, las operaciones de geoprocesamiento en las que interviene la tolerancia). Se centra en evitar y corregir los errores topológicos generados por el geoprocesamiento. Se dan algunas referencias que también pueden ser útiles.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X