Proyecto GSoC 2019: Nuevas reglas para el Marco de Topología (1)

Scripting: Automatizar tareas y Asegurar la Calidad de la Información en lugar de pasar nuestro tiempo haciendo lo que una máquina.

Si las tareas rutinarias no necesitan especial percepción, inteligencia creativa o inteligencia social entonces son tareas factibles de automatización y no propias de seres creativos y con actitud crítica reflexiva.

El proyecto “Nuevas reglas para el Marco de Topología en gvSIG Desktop” se realizó dentro del programa de Google Summer of Code 2019 con la organización OSGeo (Open Source Geospatial Foundation) y la Asociación gvSIG, este es un ejemplo de como el scripting puede ayudar a automatizar tareas y ahorrar tiempo, permitiendo que el usuario se centre en la lógica a resolver.

Con la automatización de reglas topológicas se previenen errores, sobre todo al trabajar con grandes volúmenes de información, ya que, es muy factible tener errores tanto de precisión como de exactitud. Por ejemplo: superposiciones, precisión posicional, geometrías no coincidentes y datos inconsistentes.

Las reglas de topología aseguran que los conjuntos de datos cumplen con las condiciones especificadas en cada regla. Lograr implementar esto es un proceso imprescindible para asegurar la integridad y calidad de los datos espaciales.

Al empezar el proyecto habían pocas reglas implementadas, la mayoría de ellas pendiente de desarrollo, se buscó implementar un nuevo conjunto de reglas de topología para la validación y corrección de conjuntos de datos vectoriales, mejorando y ampliando las características de las herramientas existentes previamente. Estas herramientas permiten navegar, buscar y corregir errores de validación según lo establecido en cada regla.

Las reglas desarrolladas son:

Se tiene un conjunto de datos compuesto por 2 capas de puntos y se requiere que los puntos estén alineados. Los puntos de la capa de entrada deben coincidir con los de la capa de cobertura, si no coinciden se genera un reporte de errores. Al reporte, lo componen los puntos de la primera capa que no coinciden con los de la capa de cobertura. Por ejemplo: Es de utilidad cuando en una red eléctrica los medidores deben coincidir con los puntos de servicio.

Aquí la capa de entrada es de puntos y la de cobertura de línea. Los puntos de la capa de entrada deben estar cubiertos por los extremos de la línea. Los puntos deben coincidir, de lo contrario se genera el reporte de error en función de los puntos que componen la capa de entrada. Por ejemplo, esta regla es útil cuando se necesita que los cruces de calles estén cubiertos por los puntos finales de las líneas centrales de las calles.

En esta regla los puntos de la capa de entrada deben estar cubiertos por la línea de la capa de cobertura, los puntos de error se crean si hay puntos no cubiertos por la línea. Por ejemplo, la regla es útil cuando se necesita un conjunto de puntos que sea coincidente con líneas como señales de tránsito a lo largo de las carreteras.

Aquí la capa de entrada es de puntos y la de cobertura de polígonos. Los puntos deben estar dentro del área del polígono, no en el límite. Entonces, los puntos de error corresponden a los puntos que están fuera del área de los polígonos o en el límite. Es útil cuando hay puntos relacionados a los polígonos, como pozos, direcciones y parcelas.

En esta regla la capa de entrada es de polígonos y la capa de cobertura de puntos. Cada polígono de la capa de entrada debe contener al menos un punto de la capa de cobertura. Los puntos deben estar dentro del área del polígono, no en el límite. Los polígonos superpuestos pueden compartir puntos. En caso que no se cumpla las condiciones de la regla se genera un reporte de error compuesto por polígonos de la capa de entrada.

A continuación se describe el trabajo realizado para la confección de las reglas y los conceptos principales que aborda el algoritmo para llegar a la solución requerida.

El trabajo consistió en definir las reglas a realizar, armar el algoritmo que valida y da solución, documentar todo el proceso y realizar la implementación integrando las reglas con el marco de topología. Para las reglas donde la capa de entrada es de puntos se considera la posibilidad de dar una tolerancia al contorno de los puntos, esta tolerancia define el radio para conformar un buffer que se utilizara para hacer las operaciones espaciales.

Parte de la lógica del algoritmo de cada regla incluye analizar la dimensión de la geometría de la capa de entrada (D2, D2M o 3D), también se tiene que analizar si es geometría simple o multiparte, por ejemplo: point o multipoint.

Cuando el tipo de geometría no es de tipo estándar, sino que, hereda de un tipo estándar getType() no evalúa correctamente, por lo tanto es necesario usar isTypeOf(…).

Este análisis no es necesario para la capa de cobertura, debido a que es evaluado por la función que viene ya implementada por defecto, como por ejemplo “intersects” o “contains”.

Luego de esto, cuando se ejecuta la función por defecto se tiene que analizar si hay índice espacial o no, en base al resultado se realiza el reporte de errores.

En el reporte de errores se puede revisar las entidades que no cumplen con la regla y se implementó la acción eliminar para corregir los errores.

Definiendo implementación de la regla “Debe coincidir con”.

Regla “Debe coincidir con” en funcionamiento, buscando errores topológicos.

Con este proyecto se aporta una herramienta topológica que evalúa la relación espacial entre los distintos conjuntos de datos vectoriales en forma automática y se genera un reporte de errores para realizar las correcciones pertinentes. Permitiendo navegar, buscar y corregir errores de validación e integridad.

Se automatizan tareas repetitivas, se reducen errores y se permite al usuario centrarse en la solución que quiere aportar.

En conclusión se logra sencillez en el análisis de datos y se optimiza el uso del tiempo.

Referencias.

La documentación está disponible en español, italiano e inglés.

  • Reporte final, guía de instalación y uso de la herramienta, links a cada regla, a los distintos repositorios con el código y documentación:

https://github.com/Maureque/GSoC_2019-versionHablaHispana/wiki/8.-Reporte-Final

https://docs.google.com/document/d/1th0CVKOr918ltBI9czTJsRKAYSGnY6xpiY1R2415QMU

 

El trabajo realizado por Hector Tundidor sobre esta misma temática durante el GSoC 2019 lo publicaremos en próximos post.

Artículo escrito por: Mauro Carlevaro

This entry was posted in gvSIG Desktop and tagged , , . Bookmark the permalink.

2 Responses to Proyecto GSoC 2019: Nuevas reglas para el Marco de Topología (1)

  1. Sergio Acosta y Lara says:

    Reblogged this on siglibreuruguay.

  2. Pingback: gvSIG Desktop 2.5 está aquí: ¡Descargas ya disponibles! | gvSIG blog

Leave a Reply to Sergio Acosta y Lara Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s