Cálcular el área ráster (QGIS3)

Muchas aplicaciones requieren cuantificar los patrones de uso del suelo en una región. Los conjuntos de datos sobre el uso y cobertura de la tierra (UTCT) se presentan como archivos ráster en los que se asigna a cada píxel un valor de clase. Los analistas de SIG a menudo necesitan generar informes basados en estos datos calculando el área por clase en una región determinada. QGIS viene con muchas herramientas incorporadas para calcular y resumir el área ráster.

Nota

Históricamente, el enfoque sugerido para calcular las áreas de los rásters era convertir el ráster en una capa vectorial y utilizar técnicas de cálculo de áreas vectoriales. Este enfoque es bastante intensivo en términos de computación y propenso a errores. El enfoque recomendado es utilizar la herramienta de procesamiento Informe de valores únicos de la capa rasterizada que puede calcular directamente las áreas de los píxeles. Si tiene una capa con muchos polígonos y necesita áreas para cada uno de ellos, puede utilizar la herramienta Histograma zonal para obtener el recuento de píxeles para cada clase y luego multiplicarlo por el área de cada píxel.

Vista general de la tarea

Utilizaremos una capa rasterizada con 11 clases de cobertura del suelo y calcularemos la superficie de cada clase dentro de un parque nacional. También procesaremos los resultados para crear una hoja de cálculo con los nombres de las clases y las áreas.

Otras habilidades que aprenderá

  • Cómo aplicar la simbología a una capa desde un archivo de estilo en formato .qml.

  • Cómo escribir expresiones con múltiples condiciones if/else utilizando la sentencia CASE.

  • Cómo exportar una tabla de QGIS como una hoja de cálculo de Excel.

Obtener los datos

Vamos a descargar los siguientes conjuntos de datos

  1. Base de Datos Mundial sobre Áreas Protegidas (WDPA): Vamos a descargar el archivo shape de los límites del Parque Nacional de Kaziranga en la India.

  2. ESA WorldCover 2020: El producto WorldCover 10 m 2020 de la Agencia Espacial Europea (ESA) proporciona un mapa global de la cobertura del suelo para el año 2020 con una resolución de 10 m. Descargaremos el mosaico que cubre nuestra región de interés.

Límite del Parque

  1. Vaya al sitio web de Protected Planet y haga clic en la caja de herramientas de búsqueda. Busque Kaziranga National Park.

../../_images/data01.png
  1. El límite del vector protegido se mostrará como resultado de la búsqueda. Haga clic en él para ver la página del Kaziranga National Park.

../../_images/data02.png
  1. Esta página contendrá información adicional como la superficie total, el año de creación, etc. Haga clic en la etiqueta Download y en la etiqueta SHP para descargar los datos en formato Shapefile.

../../_images/data03.png
  1. Se le pedirán dos opciones de descarga. Haga clic en continuar bajo Uso no comercial. Ahora se descargará un archivo zip que contiene los límites del parque nacional.

../../_images/data04.png

Datos de Cobertura de la Tierra

  1. Vaya al sitio web de ESA WorldCover y haga clic en el menú DATA ACCESS.

../../_images/data112.png
  1. Desplácese hasta la sección DATA DOWNLOAD y haga clic en el enlace para abrir el WorldCover viewer

../../_images/data121.png
  1. Es necesario crear una cuenta gratuita para descargar los datos. Haga clic en el enlace Registro de la esquina superior derecha. Siga las instrucciones dadas para crear una nueva cuenta.

../../_images/data13.png
  1. Después de crear la cuenta, inicie sesión con las credenciales. Nuestra área de interés para este tutorial es el Parque Nacional de Kaziranga. Acérquese a la región del noreste de la India. Una vez que se haya acercado lo suficiente, comenzará a aparecer el cuadro delimitador de los mosaicos de la imagen de la cubierta terrestre.

../../_images/data14.png
  1. Busque y localice la región de teselas N24E093.

../../_images/data15.png
  1. Seleccione la tesela y haga clic en NEXT.

../../_images/data16.png
  1. Haga clic en :guilabel: DESCARGAR para descargar un archivo zip que contiene la información de la cubierta terrestre en formato raster. Asegúrese de seleccionar los datos WorldCover Version 1 para la descarga.

../../_images/data17.png
  1. También descargaremos un archivo de simbología proporcionado por la ESA. Visite la página ESA WorldCover Data Access, Desplácese hacia abajo hasta la sección Symbología. Haga clic en QGIS para descargar el archivo ESAWorldCover_ColorLegend.qml que puede utilizarse para dar estilo a la capa ráster con los colores y etiquetas de clase apropiados.

../../_images/data18.png

Para su comodidad, puede descargar directamente una copia de los conjuntos de datos de los enlaces abajo:

Fuente de datos [WDPA] [WorldCover]

Procedimiento

  1. Descomprima todos los archivos descargados. En el Explorador, localice la carpeta que contiene el archivo de límites WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons.shp y arrástrelo y suéltelo en el lienzo de QGIS.

../../_images/013.png
  1. Ahora localice el mosaico rasterizado de la cobertura mundial ESA_WorldCover_10m_2020_v100_N24_E093_Map.tif y suéltelo en el lienzo de QGIS.

../../_images/023.png
  1. Ahora tendrá cargados tanto el límite vectorial como la capa ráster de la cobertura de la tierra en el panel Capas. Vamos a recortar la capa rasterizada de la cubierta vegetal al límite del parque nacional. Vaya a Procesos ‣ Caja de herramientas para abrir la caja de herramientas de Processing. Busque y localice el algoritmo GDAL ‣ Extracción de ráster ‣ Recortar ráster por capa de máscara. Haga doble clic para iniciarlo.

../../_images/033.png
  1. En el diálogo Recortar ráster por Capa máscara, elija la capa ESA_WorldCover_10m_2020_v100_N24_E093_Map como Capa de entrada y WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons como Mask Layer. Introduzca -9999 en la sección Asignar un valor sindato especificado a las bandas de salida`.

../../_images/043.png
  1. Ahora abra la sección Parámetros Avanzados y elija Alta Compresión en Perfil. Ahora en Clipped (mask), haga clic en el botón ... y seleccione Guardar a archivo…. Introduzca el nombre del archivo como worldcover_clipped.tif. Haga clic en Ejecutar.

../../_images/053.png
  1. Ahora la capa worldcover_clipped se cargará en el lienzo de QGIS. Haga clic con el botón derecho en la capa ESA_WorldCover_10m_2020_v100_N24_E093_Map y seleccione Quitar capa…`.

../../_images/063.png
  1. Nuestras dos capas vienen en el SRC geográfico EPSG:4326. Este SRC tiene unidades de grados y no es adecuado para calcular el área. Primero debemos reproyectar las capas a un SRC proyectado. Para análisis regionales como estos, UTM es una buena opción para un SRC proyectado. Reproyectaremos las capas al SRC para la zona UTM local. Abra la caja de herramientas de Processing y busque el algoritmo Vector general ‣ Reproyectar capa. Haga doble clic para lanzarlo.

../../_images/073.png
  1. En el cuadro de diálogo Reproyectar capa, elija la capa WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons como la Capa de entrada, haga clic en el botón Seleccionar SRC bajo SRC destino.

../../_images/083.png
  1. Nuestra área de interés cae en la zona UTM 46N. Busque 46 N y seleccione el SRC WGS 84 / Zona UTM 46N.

../../_images/093.png

Nota

Para saber cuál es la zona UTM de su región, consulte la página web Qué zona UTM tengo.

  1. En la sección Reprojected, haga clic en ... y seleccione Guardar a archivo…`. Introduzca el nombre como nationalpark_reprojected.gpkg. Haz clic en Ejecutar.

../../_images/1010.png
  1. Ahora la capa nationalpark_reprojected se cargará en el lienzo. Haga clic con el botón derecho en la capa WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons y seleccione Quitar capa…` para eliminarla. Ahora reproyectaremos la capa rasterizada. En la caja de herramientas Caja de herramientas Procesos, busque y localice GDAL ‣ Ráster proyecciones ‣ Combar (reproyectar)

../../_images/1113.png
  1. En el cuadro de diálogo Combar (Reproyectar) elija worldcover_clipped como Capa de entrada, seleccione WGS 84 / UTM zone 46N CRS en SRC destino. Abra el menú Parámetros avanzados y seleccione Alta compresión en Perfil.

../../_images/1211.png
  1. Ahora en Reprojected, haz clic en ... y selecciona Guardar a archivo…`. Introduzca el nombre como worldcover_reprojected.tif. Haga clic en Ejecutar.

../../_images/139.png
  1. Ahora la capa worldcover_reprojected se cargará en el lienzo, elimine la capa worldcover_clipped. Vamos a establecer la capa del proyecto en la zona UTM. Haga clic en cualquier capa y elija SRC de capa ‣ Establecer SRC del proyecto desde la capa.

../../_images/148.png
  1. Ahora se actualizará el SRC del proyecto. Establezcamos la simbología de la capa ráster según los nombres de clase y los colores del conjunto de datos ESA WorldCover. Haga clic con el botón derecho del ratón en la capa worldcover_reprojected y haga clic en Propiedades…`.

../../_images/158.png
  1. En el cuadro de diálogo Propiedades de la capa, seleccione Simbología. Puede observar que los colores de la capa se visualizan en un tono blanco-negro. Para solucionarlo, haga clic en la :menuselección:`Estilo --> Cargar estilo...`. Busque y seleccione el archivo ESAWorldCover_ColorLegend.qml.

../../_images/167.png
  1. Ahora puede ver los colores de los símbolos actualizados y las descripciones de las clases. Haga clic en Aceptar.

../../_images/178.png
  1. Expanda la capa worldcover_reprojected en el panel Capas para ver la leyenda con las descripciones correctas de las clases.

../../_images/186.png
  1. Ahora vamos a calcular el área de cada clase. En la caja de herramientas de procesamiento, busque y localice la herramienta Informe de valores únicos de capas rasterizadas. Haga doble clic para abrirla.

../../_images/196.png
  1. En el cuadro de diálogo Informe de valores únicos de capas rasterizadas, elija la Capa de entrada como worldcover_reprojected. Bajo la Tabla de valores únicos haga clic en ... y elija Guardar en archivo…`. Introduzca el nombre como class_areas.gpkg. Haga clic en Ejecutar.

../../_images/206.png
  1. Ahora la capa class_areas se añadirá al panel Capas. Haga clic con el botón derecho en la capa y haga clic en Abrir tabla de atributos. La columna m2 contiene el área de cada clase en metros cuadrados.

../../_images/2110.png
  1. Convirtamos el área en kilómetros cuadrados. En la Caja de herramientas de procesamiento, busque y seleccione Tabla de vectores ‣ Calculadora de campos.

../../_images/226.png
  1. En el cuadro de diálogo Calculadora de campos, seleccione la capa class_areas en la Capa de entrada`. Introduzca el Nombre del campo como area_sqkm. En la etiqueta Resultado tipo de campo seleccione Float. En la ventana Expresión, introduzca la siguiente expresión. Esto convertirá el sqmt en sqkm y redondeará el resultado a 2 decimales. En la ventana Calculado haga clic en ... y elija Guardar en archivo…`. Introduzca el nombre como class_area_sqkm.gpkg. Haga clic en Ejecutar.

round("m2"/ 1e6, 2)
../../_images/235.png
  1. Ahora la capa class_area_sqkm se cargará en el lienzo. Abra la tabla de atributos y examine la columna area_sqkm recién añadida. Observará que la columna Valor contiene números para cada clase. Para facilitar la interpretación de los resultados, vamos a añadir también la descripción de cada número de clase. Las descripciones de las clases están disponibles en el Manual de usuario de productos de ESA.

../../_images/246.png
  1. Abra la calculadora de campos y seleccione la capa class_areas_sqkm en Capa de entrada. Introduzca en Nombre de campo como landcover, en Tipo de campo resultado, elija String. En la ventana Expresión introduzca la siguiente expresión. Esta expresión utiliza la sentencia CASE para asignar un valor basado en múltiples condiciones. En la ventana Calculado haga clic en ... y elija Guardar en archivo…`. Introduzca el nombre como clase_área_con_cubierta.gpkg. Haga clic en Ejecutar.

CASE
WHEN "value" = 10 THEN 'Tree cover'
WHEN "value" = 20 THEN 'Shrubland'
WHEN "value" = 30 THEN 'Grassland'
WHEN "value" = 40 THEN 'Cropland'
WHEN "value" = 50 THEN 'Built-up'
WHEN "value" = 60 THEN 'Bare / sparse vegetation'
WHEN "value" = 70 THEN 'Snow and Ice'
WHEN "value" = 80 THEN 'Permanent water bodies'
WHEN "value" = 90 THEN 'Herbaceous wetland'
WHEN "value" = 95 THEN 'Moss and lichen'
WHEN "value" = 100 THEN 'Mangroves'
END
../../_images/256.png
  1. Ahora la capa class_area_with_landcover se cargará en el lienzo. Abra la tabla de atributos. La columna landcover contendrá el nombre del landcover contra cada valor de la cobertura de la tierra.

../../_images/265.png
  1. Vamos a exportar este resultado como un archivo Excel. Antes de exportar también organizaremos la tabla y eliminaremos los campos no deseados. En la Caja de herramientas Procesos, busque y seleccione Vector table ‣ Rehacer campos.

../../_images/276.png
  1. En el cuadro de diálogo Rehacer campos, seleccione la capa class_area_with_landcover en la Capa de entrada. Seleccione todas las columnas excepto area_sqkm y landcover, y haga clic en Borrar campo seleccionado.

../../_images/286.png
  1. También puede cambiar el orden de los campos en la tabla utilizando el botón Mover campos seleccionados. Una vez que haya terminado con las ediciones, haga clic en el botón ... junto a Refactored y elija Guardar a archivo…`. Seleccione Archivos XLSX (*.xlsx) como formato. Introduzca el nombre del archivo como park_area_by_landcover.xlsx y haga clic en Guardar. En el cuadro de diálogo Rehacer campos, haga clic en Ejecutar para aplicar los cambios.

../../_images/295.png
  1. El resultado será una hoja de cálculo con las columnas landcover y area_sqkm.

../../_images/305.png

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