Manejar Geometrías No Válidas (QGIS3)

Cuando se trabaja con capas de datos vectoriales, puede encontrarse con errores de geometría. Estos errores a menudo se vuelven parte de tus datos después de ejecutar geoprocesamiento, digitalización, edición o conversión de datos. QGIS3 viene con herramientas incorporadas y algoritmos para detectar y corregir geometrías no válidas. Este tutorial le mostrará un flujo de trabajo típico para manejar geometrías no válidas en sus datos.

Nota

Diferentes sistemas de software implementan diferentes nociones de validez de geometría. Pero el estándar que lidera el modelo de geometría para uso en un SIG son las Especificaciones Simples de Entidades (SFS) de OGC. En este tutorial, usaremos bibliotecas GEOS para revisar la validez de geometría que usa este estándar. Esta publicación da una vista general de los errores comunes de geometría según lo define el estándar OGC.

Vista general de la tarea

Trabajaremos con una capa de límite administrativo para la India y corregiremos un error de geometría para un polígono de estado.

Otras habilidades que aprenderá

  • Usar el algoritmo de Coloración Topológica para aplicar un esquema de coloración a una capa polígono.

Obtener los datos

Datameet provides community-created administrative boundary shapefiles for India.

Download the Datameet Spatial Data Repository [~150 MB] zipfile. The downloaded archive contains multiple folders. Extract the archive and use the files in the States/ folder.

Fuente de Datos: [DATAMEET]

Procedimiento

  1. Navegue al archivo descargado India-States.zip en el Explorador QGIS. Expándalo y arrastre el archivo India-States.shp a la pantalla del mapa.

../../_images/170.png
  1. Verá cargada una nueva capa India-States en el panel Capas. Vaya a Procesos ‣ Caja de Herramientas.

../../_images/237.png
  1. Intentaremos ejecutar un algoritmo de procesamiento sobre la capa de entrada para demostrar cómo las geometrías no válidas pueden causar problema durante las operaciones de geoprocesamiento. Busque y localice el algoritmo Cartografía ‣ Coloración topológica. Doble-clic para iniciarlo.

../../_images/327.png
  1. En el diálogo Coloración topológica, seleccione India-States como la Capa de entrada. Mantenga todos los parámetros predeterminados y clic en Ejecutar.

../../_images/413.png

Nota

El algoritmo Coloración topológica implementa un algoritmo para colorear un mapa de manera que ninguno de los polígonos adyacentes tengan el mismo color. Ésta es una técnica de cartografía útil y el El teorema de cuatro colores <https://en.wikipedia.org/wiki/Four_color_theorem> afirma que 4 colores son suficientes para alcanzar este resultado. Hay una versión de teoría de grafo de este teorema llamado `Teorema de los cinco colores. La implementación QGIS del algoritmo está basada en grafos de manera que en la práctica verá que las capas complejas de polígono como ésta requerirá hasta 5 colores.

  1. A medida que el algoritmo se ejecuta, verá una advertencia mostrada en la pestaña Registro. 1 entidad en la capa de entrada tiene una geometría no válida y fue saltada durante el procesamiento. La configuración predeterminada para manejar geometría no válida en le Caja de Herramientas de Procesos está ubicada en Configuración ‣ Opciones ‣ Procesos ‣ General ‣ Filtrado de entidades no válidas y está definido como Saltar (ignorar) entidades con geometrías no válidas. Este es una buena definición predeterminada, pero si su entrada es grande, puede perder esta advertencia y podría no saber que una entidad de entrada fue saltada. Le podría interesar cambiar el valor a Parar la ejecución del algoritmo cuando una geometría no sea válida.

../../_images/514.png
  1. De vuelta en la ventana principal QGIS, verá una nueva capa Colored agregada al panel Layers. Note que a la nueva capa le falta un estado que tenía geoemtría no válida. Ahora sabemos que este polígono particular de estado tenía geometría no válida pero no sabemos cual era la causa. Podemos fácilmente averiguarlo. Busque y localice el algoritmo Geometría vector ‣ Revisar validez.

../../_images/614.png
  1. In the Check Validity dialog, select India-States as the Input layer. Select GEOS as the Method. Click Run.

../../_images/713.png
  1. As the algorithm finishes processing, you will see 3 new layers in the Layers panel - Valid output, Invalid output and Error output. The layer Error output contains the locations and description of the geometry errors. Right-click it and select Open Attribute Table.

../../_images/813.png
  1. You will see that the error message is Ring self-intersection. Select the row and click Zoom map to selected features button. As you zoom in, you will see the root cause of the geometry error.

../../_images/913.png
  1. QGIS comes with a built-in algorithm to fix geometry errors automatically. Search for and locate the Vector geometry ‣ Fix geometries algorithm. Double-click to run it.

../../_images/1013.png
  1. In the Fix Geometries dialog, select India-States as the Input layer and click Run.

../../_images/1117.png
  1. A new layer Fixed Geometries will be added to the Layers panel. At this point, the geometry error is fixed and you can run any processing algorithm on this layer without problems. But we can see that there is still a gap between the adjacent polygons that is unexpected and can cause topological errors down the line. We can fix this too by editing the polygon. Click the Toggle Editing button in the Digitizing Toolbar. Select the Vertex Tool and from the drop-down select Vertex Tool (Current Layer).

../../_images/1214.png
  1. When the vertex tool is active, click on a vertex to select it. You can press Delete key to delete a vertex or drag it to move it. You can move the vertex so that the polygon edge now touches the adjacent polygon.

../../_images/13.gif
  1. Once done, click the Toggle Editing button again and click Save.

../../_images/1412.png
  1. Let’s run the Cartography ‣ Topological coloring algorithm again.

../../_images/1511.png
  1. In the Topological Coloring dialog, make sure you select Fixed Geometries as the Input layer. Click Run.

../../_images/1610.png
  1. You will see the algorithm run without any errors and a new layer Colored will be added to the Layers panel. Note that the algorithm doesn’t color the layer by itself, but works by adding a new column called color_id to each polygon that can be used to assign a unique color that is different than adjacent polygons. Select the Colored layer and click the Open the Layer Styling Panel button.

../../_images/1711.png
  1. Select Categorized renderer and the column color_id as the Value. Click Classify. You will now see the map colored so that adjacent polygons have different colors.

../../_images/189.png
comments powered by Disqus