- Construcción de modelos topológicos: control de calidad y correcciones automatizadas
Construcción de modelos topológicos: control de calidad y correcciones automatizadas
Asistente para la construcción de nuevas topologías
El primer paso para empezar a utilizar la extensión de Topología de gvSIG es crear una vista y cargar una ( o varias) capas vectoriales en ella.
Seguidamente, podemos establecer una serie de restricciones topológicas sobre los elementos constituyentes de cada capa mediante la creación de una topología. Una topología es un objeto gvSIG constituido por una agrupación de capas y el conjunto de restricciones que estas capas deben cumplir por sí mismas y en sus relaciones con el resto de capas. Para garantizar la consistencia lógica del modelo topológico definido por una topología de gvSIG, no pueden existir capas vectoriales que formen parte de dos topologías.
Pulsando sobre este botón, que estará activo siempre que exista al menos una capa vectorial cargada en la vista actual, se mostrará el asistente para la creación de nuevas topologías.
Una vez saltada la primera pantalla introductoria del asistente, se nos muestra una pantalla en la que hay que empezar a definir algunas de las propiedades de la topología a construir.
En primer lugar hay que introducir el nombre de la topología. Es recomendable emplear un nombre descriptivo, que dé información sobre el tipo de restricciones topológicas introducidas. Por ejemplo: "limites catastrales", "red de carreteras", etc.
Seguidamente, se especificará la "tolerancia de cluster". Esta tolerancia indica la distancia que debe existir entre dos coordenadas para que el sistema no las considere iguales.
El número máximo de errores representa el umbral máximo tolerable de falta de consistencia lógica espacial de la topología. Cuando durante el proceso de validación de las reglas topológicas que rijen la topología el número de errores detectados supera este umbral, el proceso de validación se detendrá. Esto indicará que la consistencia lógica de los datos que forman parte de la topología es muy deficiente, y por tante, antes de seguir validando este parámetro de calidad es conveniente aplicar correcciones bien desde entornos CAD bien mediante geoprocesos de corrección topológica como BUILD o CLEAN.
El último paso para completar esta fase del asistente será especificar qué capas, de las cargadas en la vista activa, formarán parte de la topología. En el cuadro de selección de capas se mostrarán las capas vectoriales cargadas en el TOC de la vista que no formen parte ya de alguna topología.
La siguiente pantalla del asistente nos permitirá definir las reglas topológicas a aplicar sobre las capas que forman parte de la topología. Al principio no habrá definida ninguna regla, por lo que habrá que pulsar el botón "Añadir Regla", y se mostrará el diálogo "Reglas de la topología".
El diálogo consta de dos partes bien diferenciadas:
- La parte de la izquierda permite especificar sobre qué capa de la topología se va a aplicar una regla, y qué regla aplicar. En función del tipo de geometría de la primera capa de la regla (punto, línea, polígono o multigeometría) se podrán aplicar unas reglas topológicas u otras. Actualmente la extensión de topología de gvSIG permite definir reglas que aplican sobre una sola capa (reglas reflexivas) o reglas que rigen las relaciones existentes entre las geometrías de dos capas. Si la regla seleccionada en el diálogo se aplica sobre dos capas, se activará la lista desplegable "Segunda capa que interviene en la regla", permitiendo al usuario escojer una capa entre el resto de capas de la topología.
- La parte de la derecha muestra documentación de ayuda sobre la regla seleccionada.
Podemos añadir tantas reglas topológicas como deseemos, en las que intervengan una o más de las capas que conforman la topología. Con los botones "Eliminar Regla" o "Eliminar todas" se pueden eliminar alguna o todas las reglas añadidas a la topología. Al final de esta sección se incluye una guía sobre las reglas topológicas implementadas en gvSIG. Existe una regla que se añadirá por defecto para todas las capas incorporadas a la topología: la regla Mayor que la tolerancia de cluster. Esta regla fuerza que no haya puntos a una distancia entre sí inferior a la distancia de cluster, líneas cuya longitud sea inferior a esta tolerancia o polígonos cuyo perímetro y área se colapsen como efecto de aplicar dicha tolerancia.
Podemos navegar por las distintas fases del asistente con los botones "Anterior" y "Siguiente" hasta que finalmente, pulsando el botón "Fin" del asistente concluiremos el proceso de construcción de una nueva topología.
La nueva topología creada se representará en el TOC de la vista como una nueva agrupación de capas (lo cual es lógico, pues dos de las características de una topología son el estar formada por varias capas, y el hecho de que una misma capa no pueda pertenecer a dos topologías de forma simultánea).
Estado de una topología. Representación en el ToC
Una de las características de una topología de gvSIG es su estado en relación con la verificación de su propia consistencia lógica, es decir, el grado de cumplimiento de las reglas topológicas por parte de los features de las capas que forman parte de la topología.
Los estados que puede tener una topología son:
- No validada. Topología que acaba de ser creada, formada por capas y reglas topológicas, pero en la que no se ha chequeado el cumplimiento de las restricciones impuestas por las reglas sobre los features de sus capas.
- Validada. Topología en la que se ha verificado el cumplimiento de las reglas topológicas por los features de sus capas y en la que no se ha detectado ningún incumplimiento o error topológico.
- Validada con errores. Topología en la que se ha verificado el cumplimiento de sus reglas topológicas y en la que se han detectado features que incumplen las restricciones impuestas.
- Validada con zonas sucias. Topología en la que viniendo del estado "Validada", alguna de sus capas ha sufrido una modificación como consecuencia de un proceso de edición. Una zona sucia es una zona en la que las geometrías contenidas han sufrido una modificación, y por tanto existe la posibilidad de que se hayan introducido errores topológicos. En subsiguientes procesos de validación solo se evaluarán las reglas topológicas para los features contenidos en las zonas sucias existentes.
- Validando. Una topología se encuentra en este estado durante el proceso de validación de sus reglas topológicas. No es conveniente realizar ninguna operación con la topología (ni con sus capas) mientres esté en este estado.
- Vacía. Este estado solo es de interés para los desarrolladores que vayan a hacer uso del API de topología de gvSIG, definido en el proyecto libTopology.
Recien construida la topología, esta se crea en estado "No Validado". Mientras no se valide la topología, no existirá ninguna certeza de que los elementos de las capas que forman parte de la misma cumplan ningún criterio de calidad topológico.
El icono asociado a la topología en el TOC variará para indicarnos así su estado, empleándose actualmente los iconos reflejados en la siguiente figura.
Es muy importante comprender el significado del estado de una topología, y las implicaciones que tienen sobre éste las operaciones que se puedan realizar con las capas de la topología. Así, a modo de ejemplo, podemos encontrarnos con alguna de las siguientes situaciones:
- Tenemos una topología con estado "No validado". Cualquier operación de edición sobre las capas de esta topología no modificará su estado, ni por tanto supondrá la creación de zonas sucias en la topología.
- Validamos una topología y no se detectan errores durante el proceso, por lo que su estado pasará a ser "Validado". Si editamos alguna de las capas de la topología en este momento, su estado pasará a ser "Validado con zonas sucias".
- Validamos una topología y se detectan violaciones de las reglas (errores topológicos). Su estado pasa a ser "Validado con errores".
- Editamos las propiedades de una topología, y añadimos una nueva capa o una nueva regla. Su estado pasa a ser "No validado".
- Lanzamos el proceso de validación de las reglas topológicas de una topología. Su estado pasa a ser "Validando".
- Tenemos una topología con estado "validada con errores". gvSIG nos da la posibilidad de tolerar la ocurrencia de determinados errores topológicos marcándolos como excepciones de la regla. Si marcamos todos los errores como excepciones, la topología pasará a estar en estado "Validada".
Muchas de las herramientas que la extensión de topología de gvSIG proporciona no serán visibles en la barra de herramientas, ni estarán activas en las barras de menú a menos que la topología esté activa en el TOC.
Diálogo de propiedades de una topología
Como hemos visto con anterioridad, gvSIG considera una topología como un caso particular de agrupación de capas. No obstante, una topología tiene una serie de propiedades adicionales (además de una colección de capas vectoriales) como tolerancia de cluster, número máximo permitido de errores, estado de validación, reglas topológicas, errores detectados, etc.
Para tener en cuenta todas estas particularidades, el diálogo de propiedades de una topología en el TOC es distinto del diálogo de propiedades de una agrupación de capas. De este modo, seleccionando la opción "Propiedades..." en el menú desplegable del TOC de una topología recién creada, se nos mostrará el diálogo de la siguiente figura.
El panel de propiedades de una topología está constituido por las siguientes pestañas:
- General. Muestra atributos generales de la topología: nombre descriptivo, tolerancia de cluster, estado de validación (ver apartado anterior), Número máximo de errores, Número de capas que la forman y Número de reglas topológicas. Es la pantalla mostrada en la figura anterior. Algunos atributos son editables (si se modifica la tolerancia de cluster, el estado de la topología pasará a ser "No Validada").
- Capas. Muestra las capas que forman parte de la topología. Permite añadir o eliminar capas (en cuyo caso también se reseteará el estado de la topología a "No validado").
- Reglas topológicas. Muestra las reglas que forman parte de la topología. Tal y como comentamos con anterioridad, además de las reglas incorporadas por el usuario se añade por defecto la regla "Más grande que la tolerancia de cluster" para cada capa de la topología.
- Errores topológicos. Muestra los errores topológicos detectados durante el proceso de validación de la topología, y permite operar con ellos. Si el estado es "No validado" la tabla de errores aparece vacía.
En la siguiente figura podemos ver un ejemplo de pestaña de errores cuando la topología ha sido validada y se han detectado errores topológicos.
En las columnas de la tabla de errores se muestra la siguiente información:
- Regla violada. Regla que es incumplida por el error.
- Capa 1. Capa de origen de la regla. Una regla topológica puede afectar a una sola capa (capa de origen) o a dos capas (capa de destino.
- Capa 2. Capa de destino de la regla.
- Tipo de geometría. Tipo de geometría del error. Todo error topológico tiene asociada una geometría del error, y esta columna nos indica si dicha geometría es puntual, lineal, poligonal o de tipo múltiple.
- Feature 1. En un error topológico pueden intervenir cero, uno o dos features. En esta columna se muestra el código del primer feature implicado en el error. Un ejemplo de error en el que no interviene ningún feature es la infracción de la regla "No puede tener huecos" de una capa poligonal.
- Feature 2. Código del segundo feature implicado en el error.
- Excepción. Indica si el error es tolerado (NO) o por el contrario el usuario lo ha marcado como excepción (SI).
Desde la pestaña "errores topológicos" podemos realizar las siguientes acciones:
- Filtrar los errores mostrados en la tabla por regla incumplida. En la lista desplegable "Mostrar" se puede seleccionar la opción "Mostrar todas las reglas" (activa por defecto) o bien se puede escoger alguna de las reglas topológicas que han sido infringidas durante el proceso de validación. Pulsando el botón "Actualizar" se actualizará el contenido de la tabla de errores, de tal forma que solo se muestren los errores fruto de incumplir la regla seleccionada. Los cuadros de selección "Errores", "Excepciones" y "Vista actual" permiten filtrar todavía mas el contenido de la tabla. Si el checkbox "Errores" está marcado, se mostrarán los errores topologicos. Si está marcado el checkbox "Excepciones" se mostrarán aquellos errores que el usuario haya decidido tolerar marcándolos como excepción (seguidamente veremos como hacer ésto). El checkbox "Vista actual" permite filtrar el contenido de la tabla de errores de tal forma que solo se muestren los errores cuya geometría está contenida en el puerto de visión de la vista actual de gvSIG.
- Lanzar un proceso de corrección por defecto para los errores detectados. Toda infracción de una regla topológica tiene un proceso de corrección por defecto asociado (profundizaremos en esto con más detalle al ver la guía de reglas implementadas por gvSIG). Así, por ejemplo, la regla topológica "Las líneas no pueden autointersectarse" tiene asociada la corrección por defecto "Dividir línea por punto de autointersección". Los procesos de corrección por defecto pueden requerir de la participación del usuario (por ejemplo: si dos polígonos se intersectan, la corrección "borrar polígono" puede requerir que el usuario pulse sobre el polígono a borrar) o pueden ejecutarse automáticamente. Si el usuario pulsa sobre el botón "Corrección por lotes" de la pestaña de errores topológicos gvSIG aplicará la corrección por defecto en todos los errores detectados siempre que no requiera de la participación del usuario.
- Mostrar el menú contextual asociado a cada error topológico.
Este menú contextual tiene una parte común a todos los errores topológicos y una parte que dependerá de la regla violada por el error. La parte común a todos los errores permite realizar las siguientes operaciones:
- Desplazar. Desplaza el puerto de la visión de la vista activa para que su centro coincida con el centro del MER (Bounding Box) de la geometría del error.
- Zoom. Cambia el puerto de visión para que coincida con el MER de la geometría del error.
- Ver descripción de la regla. Muestra información sobre la regla topológica infringida.
- Marcar el error como excepción. Si se ejecuta esta opción del menú, el error topológico será considerado una "excepción a la regla".
La parte que depende del tipo de regla infringida será una entrada por cada una de las correcciones que la regla tenga asociada. En el caso del ejemplo de la figura, la regla violada es "Los polígonos de una capa no pueden solaparse". Esta regla tiene asociada tres tipos de correcciones: 'añadir el área de solape a uno de los dos polígonos', 'eliminar dicha área de los dos polígonos dejando un hueco' y 'eliminar dicha área de los dos polígonos construyendo un nuevo feature cuya geometría sea el área de solape'. El menú contextual mostrará una entrada para cada una de estas correcciones.
Si se aplica alguna de las correcciones predefinidas, las capas afectadas por la corrección se pondrán en modo edición, aplicándose las modificaciones inherentes al tipo de corrección. No obstante, estos cambios no se harán persistentes hasta que el usuario seleccione una a una las capas editadas y ejecute la acción "Terminar edición".
En las siguientes figuras se puede ver un ejemplo del proceso de corrección desde el menú desplegable de cada error topológico.
Seleccionamos un error del tipo "No puede tener huecos" y accionamos la corrección "Crear nuevo feature que cubra el hueco".
Una vez realizada la corrección, se mostrará un diálogo con el mensaje "Corrección realizada con éxito". Pulse aceptar
Como resultado, el hueco aparece relleno por un nuevo feature poligonal, y en el TOC la capa afectada está en modo edición. Para guardar los cambios hay que accionar la opción "Terminar edición" de la capa de la topología.
Proceso de validación de una topología
Como hemos visto con anterioridad, el estado de una topología recién construida es "No validada". En este estado, se han definido las restricciones que deben cumplir las geometrías de los features que constituyen las capas que forman parte de la topología, pero no se dispone ninguna información sobre el grado de cumplimiento de estas reglas (su consistencia lógica). Para validar una topología, debemos seleccionarla en el TOC y accionar el botón "Evaluar topología" de la barra de herramientas.
Si accionamos este botón, inmediatamente se lanza un geoproceso en el que se nos van notificando las reglas que están siendo evaluadas en cada momento.
Al finalizar el proceso de evaluación de la topología, el icono de la topología en el TOC nos indicará el resultado de la misma. Para obtener más información sobre el estado y los errores hay que abrir el diálogo de propiedades de la topología visto con anterioridad.
Si el estado de la topología es "Validada", y accionamos el botón no se desencadenará ningún proceso de validación. Si el estado de la topología es "Validada con errores" el proceso de verificación de reglas solo se lanzará para las zonas sucias detectadas (una zona sucia, expresado de forma muy simplificada, es el MRE de la geometría de un error). Si ponemos en edición una capa de una topología "Validada", aplicamos una serie de cambios y guardamos los resultados, el estado de la topología pasará a ser "Validada con zonas sucias", pues se habrá creado una zona sucia correspondiente al MRE de la geometría del cambio aplicada. ¡Ojo! Este cambio de estado solo se producirán cuando se guarden los cambios de la edición. En sucesivos procesos de evaluación de la topología las reglas topológicas solo se verificarán para las regiones contenidas en las zonas sucias.
Guardando y cargando topologías
La tarea de definición de las restricciones que deben existir entre las capas de nuestro modelo de datos SIG para garantizar su calidad no puede perderse cada vez que dejemos de utilizar gvSIG. Por este motivo, la extensión de topología de gvSIG proporciona las funcionalidades "Guardar topología" y "Cargar topología".
La topología se almacenará en un fichero de extensión *.xml. El botón "Guardar topología" solo estará activo si existe una topología activa en el TOC de una vista.
Guía de reglas topológicas implementadas en gvSIG
Introducción
A continuación se presenta una referencia de las reglas topológicas incluídas en la primera versión de la extensión de Topología y análisis vectorial avanzado de gvSIG. La parte de proceso topológico de este proyecto es realizada por la librería org.gvsig.topology.jar, generada por el proyecto libTopology, que define un marco de desarrollo extensible que permite a cualquier desarrollador introducir nuevas reglas topológicas (y / o alfanuméricas).
Seguidamente procedemos a describir cada una de las reglas introducidas en la primera versión de la extensíon.
Reglas topológicas implementadas en gvSIG
GEOMETRÍA JTS VÁLIDA.
-Descripción
Actualmente gvSIG trabaja para la mayor parte de sus operaciones con un modelo de geometrías que establece muy pocas restricciones topológicas, casi en "espaguetti". La principal ventaja de este modelo es que su nivel de abstracción es muy cercano al del API empleado para renderizar mapas (Java2D), lo que permite que gvSIG tenga una velocidad de renderizado de geometrías vectoriales muy elevada.
Un beneficio adicional de emplear un modelo de geometrías con pocas restricciones topológicas es que permite dibujar prácticamente la totalidad de orígenes de datos. Al establecer pocas restricciones topológicas, casi la totalidad de los datos cumplen estas restricciones y por tanto pueden ser dibujados sin problemas.
A la hora de realizar operaciones de geoprocesamiento vectorial gvSIG se apoya en la funcionalidad de la librería JTS [1], al igual que la gran mayoría del resto de proyectos SIG del stack OSGeo como UDIG, PostGIS, OpenJUMP, etc. JTS es una librería Java que trata de implementar (en un 99%) la especificación SFS de OGC, especificación que define un modelo de geometrías propio [2], mucho más restrictivo topológicamente que el modelo de geometrías de gvSIG.
El hecho de que el modelo de geometrías empleado por gvSIG para renderizar apenas introduzca restricciones topológicas hace que a la hora de aplicar funciones de análisis y geoprocesamiento sobre geometrías que sí podemos visualizar, en ocasiones nos encontremos con el efecto no deseado de que no podemos realizar estas operaciones, al no cumplir estas geometrías las restricciones topológicas impuestas por el modelo de JTS.
Esta regla topológica verifica que las geometrías de una capa vectorial verifican las restricciones topológicas impuestas por el modelo topológico de JTS, y que por tanto originarán geometrías JTS válidas.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Eliminar: Borrar el Feature cuya geometría no cumple la regla.
LAS LÍNEAS NO PUEDE TENER NODOS COLGANTES.
-Descripción
Esta regla verifica que todas las geometrías de una capa de líneas conectan en sus extremos con otras geometrías de la misma capa. Los extremos de línea que no conecten con otras líneas generarán errores, conocidos en este caso como nodos colgantes.
Esta regla es de utilidad cuando las geometrías lineales de una capa deben formar circuitos cerrados, como por ejemplo los bordes de polígonos. De este modo, si queremos convertir una capa de líneas en una capa de polígonos que cubra completamente el espacio (sin huecos), podemos verificar si vamos a encontrar problemas en la conversión mediante esta regla. También es de utilidad en el caso de líneas que deben conectar con otras líneas, como los tramos de un callejero. En este caso, cuando un nodo colgante se corresponda con un fin de calle o callejón sin salida, los errores topológicos encontrados podrán ser marcados como excepciones.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal.
-Correcciones predefinidas de los errores/incumplimientos
Extender nodo colgante hasta el nodo más próximo. Desplaza el nodo colgante hasta el nodo más próximo, siempre que la distancia de desplazamiento no supere un umbral determinado. Si se produce la corrección, garantiza que no se introducen pseudonodos.
Extender nodo colgante hasta el vértice más próximo. Igual que el anterior, pero el desplazamiento es hasta el vértice más próximo de otra geometría. Si se produce la corrección, se está introduciendo un pseudonodo (dos líneas que intersectan en un punto que no es nodo o extremo de línea).
LAS LÍNEAS NO PUEDEN TENER PSEUDONODOS.
-Descripción
Verifica que todo extremo de una línea conecte al menos con dos líneas. Si una línea tiene un extremo (nodo) que solamente conecta con el extremo de otra línea, a este extremo se le conoce como pseudonodo. Este tipo de restricción topológica es util para modelar tramos de vias urbanas, en los que el fin de un trama aparece delimitado por la aparición de una bifurcación. La finalización del tramo en un punto en el que no existen bifurcaciones definiría un pseudonodo (que podría ser tolerado si se marca como excepción).
Normalmente, en la literatura SIG también se ha conocido con el nombre de pseudonodo los casos en los que dos líneas intersectan en un punto que no es nodo de ambas líneas. Este tipo de pseudonodos no son detectados por esta regla topológica. El geoproceso "Limpiar topología" permite detectar este otro tipo de pseudonodos, y fragmentar las líneas originales para generar un conjunto de líneas conectadas en nodos.
Futuras versiones de la extensión de Topología de gvSIG incorporarán reglas topológicas para detectar este tipo de errores (Line must not intersect in non node points)
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal.
-Correcciones predefinidas de los errores/incumplimientos
Eliminar pseudonodo. Fusiona las dos líneas que han originado el pseudonodo en una única línea.
LAS LÍNEAS NO PUEDEN TENER AUTOINTERSECCIONES.
-Descripción
Tanto el modelo de geometrías de renderizado de gvSIG (API de geometrias de FMap, muy próximo al API de geometrías de AWT/Java2D) como el modelo de geometrías de JTS permite que las geometrías lineales se autointersecten (aunque no las geometrías poligonales).
Esta regla permite añadir un grado de restricción adicional, verificando que las geometrías de una capa de líneas no puedan autointersectarse, a no ser que se trate de geometrías cerradas, no siendo por tanto la "autointersección" otra cosa que la coincidencia de los nodos de inicio y fin de la línea. Una autointersección es un tipo particular de pseudonodo de intersección (intersección de una línea consigo misma en un punto que no es nodo).
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal.
-Correcciones predefinidas de los errores/incumplimientos
Fragmentar línea. Divide la línea que se autointersecta en el punto de autointersección, que pasará a ser nodo extremo de las nuevas líneas generadas.
LOS POLÍGONOS NO PUEDEN TENER AUTOINTERSECCIONES.
-Descripción
Esta restricción verifica que ninguno de los anillos (borde exterior o huecos) o partes de una geometría polígonal presenta autointersecciones.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Poligonal.
-Correcciones predefinidas de los errores/incumplimientos
Fragmentar polígono por autointersecciones. Divide el polígono o superficie 2D que infringe la regla por sus puntos de autointersección. Siendo n el número de autointersecciones detectadas, se generarán n+1 polígonos.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN ESTAR CONTENIDAS EN UNA GEOMETRÍA DE LA CAPA DESTINO.
-Descripción
Toda geometría de la capa A (origen) debe estar contenida en una geometría de la capa B (destino). Un caso típico de aplicación de esta regla lo encontramos para modelar divisiones administrativas (naciones) y subdivisiones de éstas (provincias). Un matiz que diferencia esta regla de la regla "las geometrías de A deben estar cubiertas por una geometría de B" es la la diferencia entre "contenido" y "cubierto". En la relación "contenido" el borde de la geometría contenida debe ser disjunto con el borde de la geometría contenedora.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN ESTAR CUBIERTAS POR UNA GEOMETRÍA DE LA CAPA DESTINO.
-Descripción
Similar a la regla "Las geometrías de A deben estar contenidas en una geometría de B", con un matiz diferenciador: si una geometría de A recae en el borde de una geometría de B, estará cumpliendo la regla. Por ejemplo, si A es una capa de líneas, y B una capa de polígonos, y una geometría de A coincide con el borde de un polígono de B (o está cubierta por dicho borde), aunque dicha geometría de A no esté en el interior del polígono de B, estará cumpliendo la restricción topológica.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN ESTAR CUBIERTAS POR LAS GEOMETRÍAS DE LA CAPA DE DESTINO.
-Descripción
Similar a la regla "Las geometrías de A deben estar cubiertas por una geometría de B", con la diferencia de que en este caso una geometría de A no tiene que estar cubierta por una única geometría de B, sino que cumplirá la restricción si es cubierta por varias geometrías.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBE TENER UNA GEOMETRÍA EQUIVALENTE (IGUAL) EN LA CAPA DE DESTINO.
-Descripción
Esta regla topológica sirve para detectar cambios o modificaciones entre diferentes versiones de una misma capa. Fuerza a que toda geometría de una capa tenga una geometría equivalente en otra capa. Si no se cumple esta restricción, se han introducido modificaciones.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN CONTENER AL MENOS UNA GEOMETRÍA DE LA CAPA DE DESTINO.
-Descripción
Toda geometría de A debe contener al menos una geometría de B. Esta regla puede ser de utilidad para garantizar la integridad "entre capas" cuando una capa es el resultado de aplicar un geoproceso a otra capa. Por ejemplo, si calculamos el buffer de una capa de puntos, los polígonos de la capa resultante deben contener al menos un punto de la capa de partida.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN CUBRIR AL MENOS UNA GEOMETRÍA DE LA CAPA DE DESTINO.
-Descripción
Equivalente a la regla anterior "las geometrías de A deben contener al menos una geometría de B". El matiz está en la diferencia entre "contener" y "cubrir". Supongamos que tenemos una capa con las principales ciudades unidas por ferrocarril, de puntos, y una capa de líneas con las líneas de ferrocarril de primer orden que unen estas ciudades. Esta regla nos permitiría garantizar que no hay líneas de ferrocarril de primer orden que no cubran ciudades.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN CRUZARSE AL MENOS CON UNA GEOMETRÍA DE LA CAPA DE DESTINO.
-Descripción
Esta regla trata de garantizar que toda geometría de la capa A se cruce con al menos una geometría de la capa B. Una geometría se cruza con otra si comparte algunos puntos de su interior, aunque no todos.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
Solo hay que tener en cuenta un matiz: si aplicamos esta regla para dos capas de puntos, solamente se cruzarán aquellas geometrías que sean coincidentes.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN SER DISJUNTAS CON LAS GEOMETRÍAS DE LA CAPA DE DESTINO.
-Descripción
Esta regla topológica sirve para verificar que las geometrías de la capa A no compartan ningún punto con las geometrías de la capa B. Si alguna geometría de A comparte al menos un punto con una geometría de B, ya no serán disjuntas y se estará incumpliendo la regla.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE UNA CAPA NO PUEDEN TENER DUPLICADOS.
-Descripción
Esta regla topológica trata de garantizar que dentro de una misma capa no haya dos geometrías iguales, o cuya similaridad sea tan elevada que puedan llegar a ser consideradas iguales. En este sentido, los criterios de similaridad variarán según el tipo de la geometría de la capa:
- Para capas de puntos: dos puntos son iguales si tiene las mismas coordenadas, o se encuentran separados por una distancia inferior a la distancia de cluster de la topología.
- Para capas de líneas: dos líneas son iguales si tienen el mismo número vértices, y las coordenadas de estos son iguales. En el caso de que esto no suceda, se aplica el criterio de la "banda epsilon". Cada una de las líneas a comparar define una banda, resultado de obtener un buffer de la línea empleando como distancia de buffer la tolerancia de cluster. Si la banda de una línea contiene completamente a la banda de la otra línea, se considerará que las líneas son equivalente. Finalmente, si ambas bandas se solapan en una proporción superior a un umbral porcentual, también se considerarán equivalentes (el umbral implementado actualmente es del 85%. En futuras versiones de la extensión de Topología se podrá especificar este umbral en la página de preferencias de la extensión).
- Para capas de polígonos: dos poligonos son iguales si sus bordes tienen el mismo número de vértices, sus coordenadas son iguales, e idéntico criterio se cumple para sus huecos. Si no se verifica la igualdad, la regla aplicará una ponderación de los criterios de similaridad de polígonos definidos por el proyecto JCS (Jcs Conflation Suite), accesibles en [3], siendo concretamente:
- Distancia entre centroides. Cuanto menor sea esta distancia, más similares serán los dos polígonos comparados.
- Distancia Hausdorff. Longitud de la mayor desviación local de las dos geometrías. Cuanto menor sea esta distancia, mayor será la similitud entre las dos geometrías.
- Diferencia simétrica. La diferencia simétrica de un polígono respecto del otro está constituido por las áreas de éste que no se solapan con el otro. Cuanto menor sea la diferencia simétrica entre dos polígonos, mayor será su similaridad.
- Compacidad. El índice de compacidad de cada polígono es el ratio área/perimetro. Cuanto menor sea la diferencia de compacidad entre los dos polígonos, mayor será su similaridad.
- Histograma angular. El histograma angular de un polígono es el histograma de los ángulos que los segmentos del polígono forman con el eje x cartesiano, ponderado con la longitud del segmento. Cuanto mayor sea la similaridad de los histogramas angulares de dos polígonos, mayor será la similaridad de estos.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DE LA CAPA DE ORIGEN DEBEN TOCAR AL MENOS UNA GEOMETRÍA DE LA CAPA DE DESTINO.
-Descripción
Este regla pretende garantizar la mínima condición para que dos capas no sean disjuntas: que las geometrías de A se toquen al menos con una de las geometrías de B. Dos geometrías se tocan si tienen al menos un punto en común pero sus interiores no intersectan. Si consideramos una capa con edificios, y otra con muros que rodean a éstos, esta regla nos permitirá garantizar que todo muro debe tocar un edificio.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Indiferente.
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS DEBEN SER MAYORES QUE LA TOLERANCIA CLUSTER.
-Descripción
Esta regla trata de garantizar que una capa no contiene geometrías espúreas o residuales. La consideración de que una geometría es residual, y no debe ser tenida en cuenta en una capa, se hace a partir de la tolerancia de cluster de la topología (que sería equivalente a las dimensiones de la minima unidad cartografiable), en función del tipo de geometría:
- Una geometría líneal será considerada espúrea si su longitud es inferior a la tolerancia de cluster. Todos los vértices que se encuentren a una distancia entre ellos inferior a la tolerancia de cluster serán colapsados.
- Una geometría polígonal será espúrea si su superficie es inferior al cuadrado de la tolerancia de cluster.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal (dimensión = 1) o poligonal (dimension = 2).
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LAS GEOMETRÍAS NO PUEDEN TENER PUNTOS CONSECUTIVOS REPETIDOS.
-Descripción
Tanto el modelo de geometrías de JTS como el modelo de geometrías definido por gvSIG en su librería vectorial FMap, permite que una geometría tenga coordenadas consecutivas repetidas. Esta regla trata de añadir un nivel adicional de restricción detectando aquellas ocurrencias de geometrías con coordenadas consecutivas repetidas, con el objetivo de corregirlas.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal o poligonal.
-Correcciones predefinidas de los errores/incumplimientos
Eliminar coordenadas repetidas. Genera una geometría equivalente a la original sin coordenadas consecutivas repetidas.
LOS PUNTOS NO PUEDEN SOLAPARSE.
-Descripción
Esta regla verifica que en una capa de puntos no existen puntos situados entre sí a una distancia inferior a la tolerancia de cluster.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Puntual (dimensión cero).
-Correcciones predefinidas de los errores/incumplimientos
Borrar elemento causante. Borra todas las geometrías de la capa A que no cumplen la regla.
LOS POLÍGONOS NO PUEDEN SOLAPARSE.
-Descripción
Esta regla trata de garantizar que los polígonos de una capa no se solapan entre sí, de tal forma que la intersección entre dos polígonos de una misma capa solo podrá ser un punto o una línea, nunca otro polígono. Esta regla, en combinación con la regla "los polígonos de una capa no pueden presentar huecos" asegura que una capa de polígonos cubre totalmente el espacio, sin solapamientos entre polígonos. Ambas reglas permiten emular el comportamiento del modelo topológico de coberturas (implementado en las versiones antiguas del software de ESRI) para capas de polígonos.
-Número de capas que intervienen en la regla.
Una.
Tipo de geometría de las capa
Poligonal (2 Dimensiones).
-Correcciones predefinidas de los errores/incumplimientos
- Eliminar área de solape. Substrae el área de solape de los dos polígonos que originan el error.
- Crear nuevo polígono. Crea un nuevo feature de geometría poligonal con el área de solape, substrayendo esta área de los dos poligonos que originaron el error.
- Añadir solape a uno de los dos polígonos. Añade el área de solape a uno de los dos polígonos, substrayéndosela al otro polígono. Esta corrección no es completamente automatizada, y requiere de la intervención del usuario. Cuando se activa esta opción desde el menú desplegable, se muestra un diálogo. Accionando en este diálogo el botón "seleccionar geometría que perderá el área", se podrá seleccionar sobre el mapa la geometría que perderá el área de solape. Seguidamente, pulsando aceptar se producirá la corrección.
LOS POLÍGONOS DE LA CAPA DE ORIGEN NO PUEDEN SOLAPARSE CON LOS POLÍGONOS DE LA CAPA DE DESTINO.
-Descripción
Esta regla trata de garantizar que los polígonos de dos capas guardan cierta relación, de tal forma que no se solapen. Esto es de utilidad, por ejemplo, cuando tenemos divisiones administrativas de diferente nivel (naciones, provincias) y queremos que las de inferior jerarquía estén contenidas en las de superior jerarquía sin solaparse.
-Número de capas que intervienen en la regla.
Dos.
-Tipo de geometría de las capa
Poligonal.
-Correcciones predefinidas de los errores/incumplimientos
- Añadir solape a uno de los dos polígonos. Añade el área de solape a uno de los dos polígonos, substrayéndosela al otro polígono. Esta corrección no es completamente automatizada, y requiere de la intervención del usuario. Cuando se activa esta opción desde el menú desplegable, se muestra un diálogo. Accionando en este diálogo el botón "seleccionar geometría que perderá el área", se podrá seleccionar sobre el mapa la geometría que perderá el área de solape. Seguidamente, pulsando aceptar se producirá la corrección.
- Eliminar área de solape. Substrae el área de solape de los dos polígonos que originan el error.
LAS GEOMETRÍAS (LÍNEAS O POLÍGONOS) DEBEN SER CERRADAS.
-Descripción
Esta regla trata de garantizar que una geometría es cerrada (su primer y último punto coinciden), considerando una tolerancia de cluster dada. Para el caso de capas de polígonos, garantiza la corrección de éstas, como paso previo a cualquier proceso de análisis. Para el caso de capas de líneas, la verificación de esta regla es un paso previo conveniente previo a la conversión a capa de polígonos.
-Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Lineal o poligonal.
-Correcciones predefinidas de los errores/incumplimientos
- Eliminar overshoot. Si la geometría cierra áreas, pero el último punto no coincide con el primero, se elimina el segmento sobrante.
- Añadir undershoot. Si la geometría no cierra áras, se añade un segmento que una el último punto con el primero.
LA CAPA DE POLÍGONOS NO PUEDE PRESENTAR HUECOS.
-Descripción
Esta regla permite garantizar que las geometrías poligonales de una capa cubren completamente el espacio, de tal forma que no existe ninguna zona no cubierta. Aquellas zonas no cubiertas constituirán huecos.
Número de capas que intervienen en la regla.
Una.
-Tipo de geometría de las capa
Poligonal.
-Correcciones predefinidas de los errores/incumplimientos
Añadir nuevo polígono. Por cada hueco detectado, se creará un nuevo feature cuya geometría será el polígono del hueco.