Análisis de Sobreposición Multicriterio (QGIS3)

El análisis de sobreposición ponderado multicriterio es el proceso de asignación de áreas en base a una variedad de atributos que las áreas seleccionadas deberían poseer. A pesar de que esta es una operación común en SIG, es mejor realizada en el espacio ráster usando un enfoque basado en cuadrícula (grid).

Nota

Sobreposiciones Vector vs Ráster

Puede realizar el análisis de superposición en capas vectoriales utilizando herramientas de geoprocesamiento como el búfer, la disolución, la diferencia y la intersección. Este método es ideal si desea encontrar una respuesta binaria adecuado/no adecuado y está trabajando con un puñado de capas. Puede consultar nuestro tutorial en vídeo sobre Localización de una nueva estación de aparcamiento para bicicletas mediante análisis multicriterio por superposición para obtener una guía paso a paso sobre este enfoque.

Trabajar en el espacio raster le da una clasificación de la adecuación - no sólo el sitio más adecuado. También le permite combinar fácilmente cualquier cantidad de capas de entrada y asignar diferentes pesos a cada criterio. En general, éste es el enfoque preferido para conveniencia de sitio.

Este tutorial recorre el flujo de trabajo típico para realizar un análisis de conveniencia de sitio - convirtiendo datos vector fuente a los rasters apropiados, re-clasificándolos y realizando las operaciones matemáticas.

Vista general de la tarea

En este tutorial, identificaremos las áreas convenientes para desarrollo, que son

  • Cercanas a caminos, y

  • Alejadas de cuerpos de agua, y

  • No están en regiones protegidas.

../../_images/output5.png

Obtener los datos

Usaremos capas de datos vector de OpenStreetMap (OSM). OSM es una base de datos global de datos de mapa base libremente disponible. Geofabrik provee archivos shape actualizados diariamente de los conjuntos de datos OpenStreetMap.

Vamos a utilizar las capas de datos OSM para el estado de Assam en la India. Los shapefiles de Geofabrik India fueron descargados, reproyectados a una proyección UTM, recortados a los límites del estado y empaquetados en un único archivo GeoPackage. Puede descargar una copia del geopackage desde el siguiente enlace:

assam.gpkg

Fuente de Datos: [GEOFABRIK]

Procedimiento

  1. Navegue al archivo assam.gpkg descargado en el Navegador QGIS. Expándalo y arrastre cada una de las 5 cadas individuales de datos a la pantalla de mapa. Verá que carga las capas boundary, roads, protected_regions, water_polygons y water_polylines en el panel Capas.

../../_images/1109.png
  1. El primer paso en el análisis de superposición es convertir cada capa de datos en ráster. Una consideración importante es que todos los rásters deben tener la misma extensión. Utilizaremos la capa boundary como extensión para todos los raster. Vaya a Procesamiento ‣ Caja de herramientas. Busque y localice el algoritmo GDAL ‣ Conversión vectorial ‣ Rasterizar (vector a raster). Haga doble clic para ejecutarlo.

../../_images/2105.png
  1. En el diálogo Vector Conversion - Rasterize (vector to raster), seleccione roads como Capa de entrada. Queremos crear un raster de salida donde los valores de los píxeles sean 1 donde haya una carretera y 0 donde no haya carreteras. Introduzca 1 como Un valor fijo para grabar. Las capas de entrada están en un SRC proyectado con metros como unidad. Seleccione Unidades georeferenciadas como Unidades de tamaño de la trama de salida. La resolución del raster de salida será de 15 metros. Seleccione 15 como Ancho/Resolución horizontal y Alto/Resolución vertical. A continuación, haga clic en la flecha situada junto a Extensión de salida y seleccione Calcular a partir de capa ‣ límite.

../../_images/348.png
  1. Desplácese hacia abajo hasta encontrar la Parámetros Avanzados y seleccione el perfil Alta Compresión para aplicar la compresión. Esto generará un archivo raster comprimido de menor tamaño después de ejecutar la herramienta. La aplicación de la compresión sin pérdidas es muy recomendable cuando se trabaja con datos ráster.

../../_images/426.png
  1. Establezca el ráster de salida :guilabel: Rasterizado como raster_roads.tif y haga clic en :guilabel: Ejecutar`.

../../_images/523.png
  1. Once the processing finishes, you will see a new layer raster_roads loaded in the Layers panel. The raster has pixel values 1 for pixels which intersected with the roads. All other pixels are set as NoData values. These nodata values are problematic because when raster calculator (which we will use later) encounters a pixel with nodata value in any layer, it sets the output value of that pixel to nodata as well, resulting is unexpected output. We will fill these nodata values with the value 0. Search for and locate the Raster Tools ‣ Fill NoData cells algorithm. Double-click to launch it.

../../_images/623.png
  1. Seleccione raster_roads como Entrada raster y elija 0 como Valor de relleno`. Desplácese hacia abajo hasta encontrar Parámetros avanzados y seleccione el perfil Alta compresión para aplicar la compresión. Establezca la Raster de salida como raster_roads_filled.tif y haga clic en Ejecutar`.

../../_images/722.png
  1. Una vez finalizado el proceso, verá la nueva capa raster_roads_filled cargada en el panel Capas. Este raster tiene valores 1 para carreteras y 0 para sin carreteras. Si la capa no se visualiza correctamente, puede hacer clic en Abrir el panel de estilo de capas y ajustar Min a 0 y Max a 1.

../../_images/822.png
  1. Repita los pasos 3-8 para las otras 3 capas vectoriales protected_regions, water_polylines y water_polygons. Es necesario rasterizar y rellenar las celdas nodata de estas capas. Si desea ejecutar estos pasos manualmente, puede configurar el diálogo del algoritmo de procesamiento, ejecutar el algoritmo y una vez que el algoritmo finalice, cambiar a la pestaña :guilabel:Parámetros y simplemente cambiar los nombres de las capas de entrada y salida. También puede ejecutar cada algoritmo en las 4 capas en un solo paso utilizando el procesamiento por lotes. Consulte el tutorial procesamiento_por_lotes para obtener más información. Una vez que haya terminado, debería tener 4 capas ráster y generar las correspondientes capas ráster raster_roads_filled, raster_protected_regions_filled, raster_water_polylines_filled y raster_water_polygons_filled. Observará que tenemos dos capas relacionadas con el agua, ambas representan agua. Podemos fusionarlas para tener una única capa que represente las zonas de agua de la región. Busque y localice el algoritmo Análisis raster ‣ Calculadora raster en la caja de herramientas de procesado. Haga doble clic para ejecutarlo.

../../_images/922.png
  1. Seleccione las capas raster_water_polygons y raster_water_polylines utilizando el botón como Capas de Entrada. Introduzca la siguiente expresión utilizando el botón ε. Mantenga el resto de opciones predeterminadas y guarde la capa de salida con el nombre raster_water_merged.tif y haga clic en Ejecutar`.

"raster_water_polygons_filled@1" + "raster_water_polylines_filled@1"
../../_images/1028.png
  1. El ráster resultante fusionado tendrá píxeles con valor 1 para todas las áreas con agua. Pero notará que hay algunas regiones donde había tanto un polígono de agua como una polilínea agua. Esas áreas tendrán píxeles con valor 2 - lo que no es correcto. Podemos corregir esto con una expresión simple. Abra de nuevo el algoritmo Análisis ráster ‣ Calculadora ráster.

../../_images/1131.png
  1. Seleccione la capa raster_water_merged utilizando el botón como Capa de Entrada. Introduzca la siguiente expresión utilizando el botón ε. Mantenga el resto de opciones por defecto y guarde la capa de salida con el nombre raster_water_filled.tif y haga clic en Ejecutar.

"raster_water_merged@1" > 0
../../_images/1229.png
  1. La capa resultante raster_water_filled tiene ahora píxeles con sólo valores 0 y 1.

../../_images/1327.png
  1. Ahora tenermos capas que representan píxeles camino y agua, podemos generar rásters de proximidad. Estos son también conocidos como distancias Euclideanas - donde cada píxel en el ráster de salida representa la distancia al píxel más cercano en el ráster de entrada. Este ráster resultante luego puede ser usado para determinar áreas apropiadas que están dentro de cierta distancia de la entrada. Busque y localice el algoritmo GDAL ‣ Análisis ráster ‣ Proximidad (distancia ráster). Doble-clic para iniciarlo.

../../_images/1425.png
  1. En el cuadro de diálogo Análisis ráster - Proximidad (Distancia ráster), seleccione raster_roads_filled como Capa de entrada. Seleccione Coordenadas georreferenciadas como Unidades de distancia. Como las capas de entrada están en un SRC proyectado con metros como unidades, introduzca 5000 (5 kilómetros) como Distancia máxima a generar. Para todos los píxeles que estén a más de la distancia máxima - también estableceremos sus valores en 5000. Así que establezca el valor de Nodata a utilizar para el raster de proximidad de destino en 5000.

../../_images/1522.png
  1. Puede expandir la etiqueta :guilabel: Parámetros Avanzados y seleccionar el perfil Alta Compresión para aplicar la compresión. Asigne al archivo de salida el nombre roads_proximity.tif y haga clic en Ejecutar.

../../_images/2016.png

Nota

Este proceso puede tardar hasta 15 minutos en ejecutarse. Se trata de un algoritmo de cálculo intensivo que necesita calcular la distancia de cada píxel de la trama de entrada.

  1. Una vez que se complete el procesamiento, se agregará una nueva capa roads_proximity al panel Capas. Para visualizarla mejor, cambiemos el estilo predeterminado. Clic en el botón Abrir el panel de Estilo de Capa en el panel Capas. Cambie el valor Max a 5000 bajo Gradiente de color.

../../_images/1722.png
  1. Repita el algoritmo Proximidad (Distancia Raster) para la capa raster_water_filled con los mismos parámetros y nombre la salida water_proximity.tif. Si hace clic en el raster resultante, verá que es un continuo de valores de 0 a 5000. Para utilizar este ráster en el análisis de superposición, primero debemos reclasificarlo para crear valores discretos. Abra de nuevo el algoritmo Análisis raster ‣ Calculadora raster.

../../_images/1819.png
  1. Queremos dar un puntaje mayor a píxeles que están cerca de caminos. Así que usemos el siguiente esquema.

  • 0-1000m –> 100

  • 1000-2000m –> 50

  • >2000m –> 10

    Seleccione la capa roads_proximity utilizando el botón como Capa de Entrada. Introduzca la siguiente expresión que aplica los criterios anteriores en la entrada. Mantenga el resto de opciones por defecto y guarde la capa de salida con el nombre roads_reclass.tif y haga clic en Ejecutar.

    100*("roads_proximity@1"<=1000)
        + 50*("roads_proximity@1">1000)*("roads_proximity@1"<=2000)
        + 10*("roads_proximity@1">2000)
    
    ../../_images/1916.png
  1. Una vez que finalice el proceso de reclasificación, se agregará una nueva capa roads_reclass al panel Capas. Esta capa sólo tiene 3 valores diferentes, 10, 50 y 100 que indican la conveniencia relativa de los píxeles con respecto a la distancia de los caminos. Abra de nuevo el algoritmo Análisis ráster ‣ Calculadora ráster.

../../_images/2016.png
  1. Repita el proceso de reclasificación para la capa water_proximity. Aquí el esquema será a la inversa, donde los píxeles que están más lejos del agua deberían tener un puntaje mayor.

  • 0-1000m –> 10

  • 1000 -2000m —> 50

  • >2000m –> 100

    Seleccione la capa water_proximity utilizando el botón como Capa de Entrada. Introduzca la siguiente expresión que aplica los criterios anteriores a la entrada. Mantenga el resto de opciones por defecto y guarde la capa de salida con el nombre water_reclass.tif y haga clic en Ejecutar.

    100*("water_proximity@1">2000)
    + 50*("water_proximity@1">1000)*("water_proximity@1"<=2000)
    + 10*("water_proximity@1"<1000)
    
    ../../_images/2119.png
  1. Ahora estamos listos para hacer el análisis final de superposición. Recordemos que nuestros criterios para determinar la idoneidad son los siguientes: cerca de carreteras, lejos del agua y no en una región protegida. Abra Análisis raster ‣ Calculadora raster. Seleccione las capas roads_reclass, water_reclass, raster_protected_regions_filled utilizando el botón como Capas de entrada. Utilice el botón ε para introducir la siguiente expresión que aplica estos criterios. Mantenga los demás parámetros por defecto. Nombre la salida overlay.tif y haga clic en Ejecutar.

(("roads_reclass@1" + "water_reclass@1")/2)
*("raster_protected_regions@1"  !=  1 )
../../_images/2217.png

Nota

En este ejemplo, damos la misma ponderación a la proximidad de la carretera y del agua. En la vida real, puede tener varios criterios con diferente importancia. Puede simularlo multiplicando los raster con los pesos adecuados en la expresión anterior. Por ejemplo, si la proximidad a las carreteras tiene el doble de importancia que la proximidad al agua, en lugar de ((«roads_reclass@1» + «water_reclass@1»)/2), puede utilizar la expresión ((2*«roads_reclass@1» + «water_reclass@1»)/3).

  1. Una vez finalizado el proceso, el ráster resultante se añadirá al panel Capas. Los valores de los píxeles de esta trama van de 0 a 100, siendo 0 la zona menos adecuada y 100 la más adecuada para el desarrollo. Recortemos los resultados a la capa límite. Abra el algoritmo Extracción de raster ‣ Recortar raster por capa de máscara.

../../_images/2315.png
  1. En el diálogo Raster Extracción - Recortar Raster por Capa de Máscara, seleccione overlay como la Capa de entrada y boundary como la Capa de máscara.

../../_images/2414.png
  1. Desplácese hacia abajo hasta encontrar la opción Parámetros Avanzados y seleccione el perfil Alta Compresión para aplicar la compresión. Guarde la capa Recortado (máscara) como overlay_clipped.tif y haga clic en Ejecutar.

../../_images/2513.png
  1. Una vez finalizado el procesamiento, la capa de salida final overlay_clipped se añadirá al panel Capas. Haga clic en el botón Abrir el panel de estilos de capa del panel Capas y seleccione el renderizador Pseudocolor de banda única.

../../_images/2612.png
  1. Ajuste la Interpolación a Discreto y elija la rampa de color Espectral.

../../_images/2713.png
  1. Haga clic en los valores de etiqueta predeterminados junto a cada color e introduzca las etiquetas adecuadas.

../../_images/2813.png
  1. Las etiquetas también aparecerán como leyenda bajo la capa overlay_clipped. Este es nuestro mapa final, que muestra la idoneidad del emplazamiento según los criterios elegidos.

../../_images/2912.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)