Tutorial: Cálculo del porcentaje de cobertura terrestre por subcuenca
Sitio: | OpenCourseWare for GIS |
Curso: | QGIS para Aplicaciones Hidrológicas |
Libro: | Tutorial: Cálculo del porcentaje de cobertura terrestre por subcuenca |
Imprimido por: | Guest user |
Día: | jueves, 26 de diciembre de 2024, 21:01 |
Tabla de contenidos
- 1. Introducción
- 2. Preparación de la capa de subcuenca
- 3. Preparación de los datos de cobertura del suelo
- 4. Interseca la capa de cobertura terrestre con la capa de Subcuenca
- 5. Calcula el área de cobertura terrestre por Subcuenca
- 6. Crea una gráfica de pastel usando el complemento Data Plotly
- 7. Conclusiones
1. Introducción
Para los estudios sobre la hidrología de una Cuenca, es importante conocer el porcentaje de cobertura terrestre por Subcuenca.
Después de estes capítulo serás capaz de: En esta lección seguiremos el siguiente flujo de trabajo:
En esta sección utilizaremos:
catchpolygons.shp
: archivo shapefile con subcuencas- CORINE 2018 Land cover
El primer archivo ha sido creado por la delineación de subcuencas dentro de la Cuenca Rur utilizando los métodos descritos en la Lección 4.
En esta lección, aprenderemos a descargar datos CORINE 2018 data. Un subconjunto de datos, también es proporcionado en el conjunto de datos del curso, el cual, será descargado desde la página de la lección principal.
1.1. Teoría de la superposición de capas vectoriales
En esta lección, utilizaremos algunas herramientas vectoriales de superposición.
Revisa el video para aprender los conceptos.
2. Preparación de la capa de subcuenca
Ejecutemos un QGIS con un nuevo proyecto.
We'll start with a new QGIS project.
1. Descarga el shapefile catchpolygons.shp
ya agrégalo desde un proyecto vacío de QGIS.
2. Abre la tabla de atributos de la capa catchpolygons.
Esta capa fue calculada utilizando la delineación de la Cuenca en la lección 4. El resultado es que cada subCuenca tiene un valor de 100. Para nuestro propósito, sin embargo, cada Subcuenca requiere un Identificador único.
3. Habilta el modo de edición utilizando el botón .
4. En la sección de expresiones indica la ecuación DN = $id
y da un click en Update All. Guarda con el botón para salvar las ediciones.
La función $id
asigna un objeto geométrico único en la tabla de atributos.
Ahora requerimos agregar un atributo a el área de cada polígono de la Subcuenca.
5. Da Click para agregar una columna a la tabla de atributo.
6. Nombre al nuevo campo como CatchArea
, indica que es del tipo Decimal number (real) con un tamaño Length of 10
caracteres y una precisión de 2
decimales. Da Click OK para crear la columna.
7. En el cuadro de expresiones formula la ecuación CatchArea = $area
y da un click Update All.
La tabla de atributo ahora tiene un identificador único id's y el área de la superficie de cada subcuenca.
8. Ha un Click en el icono para salvar las ediciones y deshabilitar la edición.
Ahora preparemos los datos de cobertura del suelo.
3. Preparación de los datos de cobertura del suelo
Ahora preparemos los datos de cobertura del suelo, los cuales consisten de los siguientes pasos que seguirás en las siguientes secciones:
- Descarga los datos CORINE 2018
- Estiliza la capa de cobertura terrestre
- Recorta y reproyecta la capa de cobertura terrestre
- Agrega clases de cobertura terrestre
- Disuelve los objetos geométricos de la capa de cobertura terrestre
3.1. Descarga datos CORINE 2018
En los capítulos previos, hemos utilizados datos WMS CORINE 2012 . Para calculos, sin embargo, no podemos utilizar imágenes WMS, requerimos acceso a los datos CORINE 2018 que pueden descargarse desde la Internet.
1. Abre un navegador y dirígete a https://land.copernicus.eu/pan-european/corine-land-cover.
2. Da un Click sobre CLC 2018.
Observa los mapas en línea con una vista previa de la capa.
3. Da un Click en la pestaña Download.
4. Para la descarga de datos, es necesario una cuenta. Da un Click en el enlace de registro.
Una vez que hayas ingresado al sistema, puedes elegir varios formatos de datos distintos.
Aquí utilizaremos el formato GeoPackage, porque requerimos datos vectoriales.
5. Habilita el checkbox del formato GeoPackage.
6. Da un Click en el botón Download.
El archivo tiene 3.5GB. Si tienes un ancho de banda reducido, puedes descargar un subconjunto de datos desde la sección de materiales del curso en la página principal.
7. Descomprime el contenido a un nuevo folder que utilices en este ejercicio.
8. Arrastra la capa del GeoPackage U2018_CLC2018_V2020_20u1 al Map Canvas.
9. En la ventana de Select Transformation sólo haz un click en OK para utilizar la ecuación de transformación por default.
10. Haz que los polígonos de la capa catchpolygons transparentes con un contorno negro (black outline) y un asurado con un ancho de 0.66 mm y asegurate que se encuentre en la parte superior de la capa de cobertura terrestre.
3.2. Estiliza el mapa de cobertura terrestre CORINE 2018
Ahora, estilizaremos el mapa de cobertura terrestre CORINE 2018. En el conjunto de datos descargados encontrarás la carpeta Legend. El folder contiene los archivos de leyendas en distintos formatos. Utilizaremos el archivo clc_legend.qml, un archivo de estilizado QGIS.
1. Haz un Click derecho sobre la capa de cobertura terrestre y selecciona las propiedades - Properties. Cambia a la pestaña de Simbología.
2. En la parte inferior de la ventana de diálogo dírigete Style | Load Style.
3. Ahora, se presenta la ventana de diálogo Database styles manager. Navega al archivo legend\clc_legend.qml y da un click en Load style.
La leyenda se aplica con las configuraciones correctas sobre la capa de cobertura terrestre.
4. Da un Click en OK para aceptar y regresa al Map Canvas.
3.3. Recorta y reproyecta el mapa de cobertura terrestre
La capa de cobertura terrestre es aún muy grande (incluso si haz descargado un subconjunto de datos) así prepararemos un subconjunto que sólo cubra a las subcuencas. Además, reproyectaremos la capa de cobertura terrestres (EPSG:3035) en la misma proyección como la capa catchpolygons (EPSG:32632). Ambos procesos pueden realizarse con una herramienta.
1. Haz un click derecho sobre la capa U2018_CLC2018_V2020_20u1 y selecciona Export | Save Features As.
2. Escoge el formato Format GeoPackage para la capa Corine2018_repr
y para el CRS, el CRS del proyecto (EPSG:32632).
3. Verifica el checkbox antes del Extent y un click en Calculate from Layer y escoge catchpolygons. Da un Click en OK.
4. Copia el estilo desde la capa U2018_CLC2018_V2020_20u1 a la capa Corine2018_repr y borra la capa U2018_CLC2018_V2020_20u1.
Los resultados debería lucir como:
3.4. Agrega clases de cobertura terrestre
CORINE tiene diferentes niveles de clases de cobertura terrestre. Los datos CORINE que tenemos son de nivel 3. En la tabla de atributos el campo code_18 tiene un valor para el nivel 3, indicado por 3 dígitos. En esta sección agregaremos la clasificación detallada de nivel 3 a nivel 1. Por lo tanto requerimos crear un campo nuevo con sólo el primer dígito de cada objeto.
1. Abre la tabla de atributos de la capa Corine2018_repr y habilita el modo de edición.
2. Agrega un nuevo campo. Indica el nombre de Level1
, escoge el tipo de dato Type Whole number (integer) y Length 1
.
3. Usa el botón para abrir la ventana de Expression Dialog.
Vamos a escribir una expresión que recodifique todos las clases del nivel 3 al nivel 1.
4. Escribe la expresión como se muestra en la figura inferior.
La función left
regresa una cadena de los caracteres en el extremo derecho . Requerimos el primer carácter, así que indicamos 1
para el tamaño (length). Utilizaremos la función to_int
para convertir la cadena a entero.
5. Actualiza el nivel 1 en el campo.
La tabla de atributos debería lucir como esto:
6. Deshabilita el modo de edición y guarda las ediciones.
3.5. Disolver objetos de la capa de cobertura terrestre
Ahora hay muchos polígonos contiguos con la clase nivel 1. Estos polígonos se fusionaran en un sólo objetos. Esto se hará con la operación disolver (dissolve).
1. Desde el menú principal dírigete a Vector | Geoprocessing tools | Dissolve.
2. En la ventana de diálogo de Disolver (Dissolve) y escoge como capa de entrada corine2018_repr y selecciona el campo level1 como campo de disolución (Dissolve field). Guarda el archivo como corine2018_dissolved y haz un click en Run.
3. Haz un Click en Close para regresar al Map Canvas cuando el procesamiento este completo.
4. Abre la tabla de atributos de corine2018_dissolved para verificar el resultado. Se deben mostrar sólo 5 registros nivel 1 con clases de 1 a 5. Considera que puedes dar un click en el nombre del campo para ordenar los registros.
5. Borra la capa corine2018_repr desde el panel de capas (Layers Panel) y estiliza la capa corine2018_dissolved con los colores basados en la leyenda CORINE nivel 3.
4. Interseca la capa de cobertura terrestre con la capa de Subcuenca
Ahora que hemos preparado la capa de cobertura terrestre y la capa de subcuenca, el paso siguiente es intersectar las dos capas para agregar los límites de las Subcuencas al mapa de cobertura terrestre.
1. Desde el menú principal, selecciona Vector | Geoprocessing tools | Intersection.
2. Selecciona la capa corine2018_dissolved como capa de entrada (Input layer), escoge la capa catchpolygons como Overlay layer. Indica corine_catch_intersected.shp
como el archivo de salida y después da un click en Run.
Observarás el siguiente error.
Esto esta relacionado con los errores de geometría que pueden ocurrir en la delineación de la Cuenca, en el paso de poligonizar una capa ráster.
El error puede correguirse.
3. En la caja de herramientas (Processing Toolbox) busca la herramienta Fix geometries.
4. En la ventana de diálogo Fix geometries selecciona como capa de entrada catchpolygons e indica como archivo de salida catchpoly_fixed.shp
y da click en Run.
5. Da un Click en Close después de que el procesamiento se haya realizado.
6. Copia el estilo de la capa catchpolygons a la capa catchpoly_fixed y borra la capa catchpolygons.
7. Repite los pasos 1 y 2 y nombra al archivo de la intersección como corine_catch_intersected_cor.shp
8. Estiliza la capa corine_catch_intersected_cor por la copia del estilo desde estilos previos de la capa corine2018_dissolved. Verifica los resultados de la intersección.
9. Borra la capa corine2018_dissolved desde el panel de capa (Layers panel).
5. Calcula el área de cobertura terrestre por Subcuenca
Ahora requerimos calcular el área CORINE nivel 1 por Subcuenca.
1. Abre la tabla de atributos de la capa corine_catch_intersected_cor.
En la tabla de atributos encontraremos el campo CatchArea dentro del área de cada Subcuenca, el campo DN con el ID único para cada Subcuenca, y el campo Level1 con el valor CORINE nivel 1 para cada registro.
Agregaremos un campo y calcularemos el área de cada objeto que corresponda con el área de cada clase nivel 1 en una Subcuenca en forma similar como hemos hecho previamente para las áreas de las subcuencas.
2. Habilita el modo de edición.
3. Agrega el campo ClassArea
con el tipo como Decimal number (real), tamaño 10
, y precisión 2
.
4. Usa la calculadora de campos para calcular ClassArea = $area
y da un click en Update all.
5. Ahora agrega un campo para el porcentaje de cada clase CORINE nivel 1 por Subcuenca. Nombra el campo Percentage
de tipo Decimal number (real), Length 4 y
Precision 1
.
6. Usa la calculadora de campos para calcular Percentage = (ClassArea/CatchArea) * 100
. Puedes utilizar el cuadro de expresiones para formular la ecuación.
7. Haz un Click en Update all para asignar el porcentaje de cada objeto.
8. Para completar la tabla de atributos, agrega un campo con los nombre de clase 1 como tipo Texto, ombra al campo como Landcover
. Utiliza la función CASE...WHEN
para ello:
Dentro de esta funcion puedes escribir condiciones. Para este ejemplo significa: Si el atributo Level1 es igual al valor 1 entonces el resultado es una cadena : Artificial, etc.
9. Deshabilita el modo de edición y guarda las ediciones.
La tabla de atributos luce como la figura:
6. Crea una gráfica de pastel usando el complemento Data Plotly
Ahora, que contamos con el porcentaje de cobertura terreste de cada Subcuenca, crearemos una gráfica de pastel. Una forma es copiar las columnas y pegarlas en una hoja de cálculo para su posterior procesamiento. Otra forma es utilizar el complemento Data Plotly, el cual utilizaremos aquí.
1. Instala el complento Data Plotly desde el administrador de complementos (Plugin Manager).
Realizaremos una gráfica de pastel para cada Subcuenca. Previamente hemos asignado un ID único para cada subucuenca en el campo DN.
2. Desde la tabla de atributos de la capa corine_catch_intersected_cor, selecciona todos los registros con valores DN = 0. Puedes utilizar la ventana de diálogo de Select features by expression con un Click sobre el botón . Alternativamente puedes ordenar la tabla de atributos sobre el campo DN y utilizar el botón Ctrl
que selecciona mútilples registros con valores DN = 0
.
3. Da un Click sobre el botón del complemento Data Plotlypara abrir el panel Data Plotly.
4. Para el tipo de gráfico (Plot Type) selecciona Gráfico de pastel (Pie Plot). Bajo los parámetros del gráfico (Plot Parameters) escoge la capa corine_catch_intersected_cor , verifica el checkbox antes de Use only selected features, para el campo de agrupación (Grouping field) escoge la capa Landcover, y el campo Y Field Percentage.
5.Da un Click sobre el botón que define las propiedades de la leyenda.
6. Da un Click en el botón Create Plot y verifica los resultados.
7. Con el botón de exportar imagen (Export to image) puedes exportar la gráfica a un archivo .png.
El resultado debería verse como este:
Puedes repetir el procedimiento para otras Subcuencas.
7. Conclusiones
En esta lección aprendiste a :