Proceso de delimitación de subcuencas con QGIS

06/07/2022Por iCarto

Este artículo forma parte de nuestra serie sobre delimitación de subcuencas con QGIS a partir de un MDE:

  1. Delimitación de subcuencas hidrográficas con QGIS y MDE
  2. Modelos digitales de elevaciones para estudios hidrológicos
  3. Criterios técnicos para la delimitación de subcuencas
  4. Proceso de delimitación de subcuencas con QGIS (Este artículo)

En este artículo vamos a explicar el proceso para delimitar las subcuencas hidrográficas de una región determinada utilizando la QGIS y partiendo de un MDE. En este caso la región es toda la República de Mozambique.

Los datos de partida que necesitamos son un mosaico de Modelos Digitales de Elevaciones (MDE) de toda el área y la capa de cuencas hidrográficas. Como comentamos en los artículos anteriores de la serie, utilizaremos los mosaicos NASADEM HGT (aquí explicamos como descargarlos) y la capa de cuencas elaborada por GEAMA.

Unir mosaico

El primer paso es la unión de los mosaicos MDE para crear un único MDE de todo Mozambique.

QGIS nos proporciona diferentes opciones para la unión de archivos ráster. En este caso vamos a utilizar la herramienta “Combinar”. Para ello, en el menú seleccionamos “Ráster”, desplegamos las opciones “Miscelánea” y hacemos clic en “Combinar”.

En la ventana emergente añadimos todas las capas de entrada, es decir, todos los MDE descargados de la web del área en la que vamos a trabajar. Damos una ruta y un nombre para el archivo de salida, marcamos la opción “Abrir el archivo de salida después de ejecutar el algoritmo” y ejecutamos.

Proyectar el MDE

El MDE combinado se encuentra en el Sistema de Coordenadas Geográficas WGS 84 (EPSG:4326). Reproyectamos el DEM a un Sistema de Coordenadas Proyectadas. En nuestro caso a WGS 84 / UTM zone 37S (EPSG:32737). Para reproyectar el MDE desde el menú seleccionamos “Ráster”, a continuación “Proyecciones” y “Combar (reproyectar)”.

En capa de entrada seleccionamos el MDE combinado e indicamos tanto el SRC de origen como el SRC objetivo. Indicamos también una ruta y un nombre para el archivo de salida y ejecutamos el algoritmo.

Máscaras de cuenca y recorte del MDE

Para reducir el cálculo de procesamiento de los algoritmos que utilizaremos en los pasos siguientes, recortaremos ahora el MDE según cada cuenca. Otro de los motivos de realizar estos recortes es la diferencia de tamaños y formas de las cuencas que vamos a analizar. Se obtendrán mejores resultados analizando cada cuenca por separado para poder ajustar los parámetros de los algoritmos a cada caso particular en lugar de usar los mismos parámetros para todo Mozambique.

Creamos las máscaras de cada cuenca a partir de la capa de cuencas. En la imagen siguiente se puede ver de fondo el MDE, en blanco el límite administrativo de Mozambique y en azul la máscara de la cuenca del río Lurio.

A continuación, recortamos el MDE con cada máscara creada. Para recortar el MDE en el menú principal seleccionamos “Ráster”, luego “Extracción” y “Cortar ráster por capa de máscara”.

En la ventana emergente seleccionamos el MDE reproyectado en capa de entrada y la máscara de la cuenca en la capa de máscara. Además, para que el recorte se ajuste exactamente al borde de la cuenca y que no se vea una zona negra, vamos a especificar un valor para “sin datos”, por ejemplo -9999. Por último, marcamos las siguientes dos opciones:

  • Ajustar la extensión del ráster cortado a la extensión de la capa de máscara.
  • Mantener resolución del ráster de entrada.

Especificamos la ruta y el nombre para el archivo de salida y ejecutamos el algoritmo.

Realizar este proceso para todas las cuencas. Se puede utilizar para esto el procesado por lotes en vez de hacerlo una por una.

Relleno de sumideros/depresiones

Aunque las últimas versiones de los MDE ya están procesadas con diferentes correcciones y relleno de vacíos, todavía pueden contener artefactos como las depresiones. Los artefactos deben ser eliminados antes de utilizar un DEM en el análisis hidrológico. Existen varios algoritmos para el llenado de huecos (GDAL, GRASS, SAGA, …). La incorporación del conjunto de herramientas hidrológicas de GRASS en QGIS es de gran utilidad. Utilizaremos pues el algoritmo de GRASS tanto para este paso como para otros que veremos más adelante.

Para el relleno de sumideros utilizaremos la caja de herramientas de procesos, si no está visible en la parte derecha de la ventana de QGIS, se puede habilitar desde el menú principal, seleccionando “Procesos” y “Caja de herramientas”.

En la caja de herramientas busca o escribe el siguiente algoritmo: r.fill.dir. En la ventana de diálogo selecciona como entrada (Altitud) el DEM recortado y desmarca direcciones de flujo y áreas problemáticas. Solamente nos interesa obtener el DEM sin depresiones. Indica la ruta y el nombre para el archivo de salida y ejecuta.

Este geoproceso puede tardar bastante en finalizar según el tamaño del ráster y la potencia del ordenador. Realizar este geoproceso para todas las cuencas. Se puede utilizar para esto el procesado por lotes en vez de hacerlo una por una.

Direcciones de flujo, flujo acumulado, segmentos de transmisión y subcuencas

Ahora que tenemos un DEM corregido, el siguiente paso es calcular las direcciones de flujo, el flujo acumulado, los segmentos de transmisión y las subcuencas. Para ello buscamos en la caja de herramientas el siguiente algoritmo: r.watershed. En la ventana de dialogo seleccionamos el ráster corregido de la cuenca y establecemos el “Tamaño mínimo de cuenca exterior” más adecuado para cada caso.

Debido a la amplia diferencia entre el tamaño de unas cuencas y otras hay que jugar con el “Tamaño mínimo de cuenca exterior” para obtener los resultados óptimos para cada una de ellas.

Un tamaño medio se puede obtener revisando las características del ráster. El tamaño del píxel del ráster es de 30x30m por lo que el «Tamaño mínimo de cuenca exterior» debe ser de al menos 333.333,33 pixeles, aproximando 300.000 píxel.

En muchos casos se opta establecer 100.000 o menos para resolver algunos problemas detectados en algunas zonas llanas o desembocaduras. Marcar además las siguientes dos opciones:

  • Habilitar flujo de dirección de flujo único (D8)
  • Permitir solo flujo horizontal y vertical de agua

Marcar también las casillas que se pueden ver en la siguiente imagen, además de indicar las rutas y nombre de los archivos de salida y ejecutar el algoritmo.

Obtenemos así para cada cuenca:

  • El flujo acumulado
  • La dirección del flujo o de drenaje.
  • Subcuencas
  • Segmentos de transmisión / Ríos

La única capa en la que vamos a trabajar es la de subcuencas, las demás se calculan para servir de apoyo en pequeños ajustes manuales que haremos más adelante.

Transformación a capa vectorial

Una vez que ya tenemos la capa de subcuencas, el siguiente paso es transformar esta capa ráster en vectorial. Para ello vamos a buscar el siguiente geoproceso en la caja de herramientas: r.to.vect.En la ventana seleccionar como capa ráster de entrada la capa de subcuencas.

Seleccionar también y ejecutar:

  • Tipo de objeto espacial: área
  • Seleccionar “Suavizar esquinas de objetos de área”
  • v.out.ogr tipo de salida: área

Revisión y ajustes manuales

Una vez que ya tenemos la capa vectorial de subcuencas tenemos que revisar el resultado, unir los polígonos necesarios para tener solamente las subcuencas que cumplan los criterios acordados y mencionados en el anterior artículo y hacer pequeñas correcciones manuales donde sea necesario.

La unión de los polígonos es necesario además porque con el algoritmo se crean subcuencas de afluentes no directos al río principal, es decir afluentes de un afluente del río principal. De esta manera solucionamos el problema.

Estos algoritmos funcionan bien en zonas con pendiente, pero en zonas llanas pueden dar resultados no deseados, y es necesario revisarlas. Por ejemplo, en las zonas costeras con cuencas muy llanas fue necesario una revisión más detallada y realizar algunos ajustes en los límites de las subcuencas en base a otra información como las direcciones de flujo, los ríos, etc.

Suavizado y simplificación

Al vectorizar un ráster, los bordes de los polígonos se generan siguiendo la forma de los pixeles, por este motivo es necesario suavizarlos.

Esto conlleva otro problema, y es que al suavizar se crean muchos vértices que hacen que el tamaño de la capa aumente bastante. Para evitar esto, tras el suavizado se puede hacer también una simplificación.

Escogiendo los parámetros adecuados el suavizado y la simplificación se realizan sin perder prácticamente definición en la delimitación de las subcuencas. En la imagen siguiente se pueden ver los bordes de las subcuencas antes y después (rojo) de suavizar y simplificar.

Unión de subcuencas

Como hemos creado una capa de subcuencas para cada cuenca, realizamos una unión de capas vectoriales para crear una única capa de subcuencas de todo el país: mergevectorlayers.

En la ventana de dialogo seleccionamos todas las capas de subcuencas para capas de entrada, especificamos el Sistema de Referencia de Coordenadas, la ruta y el nombre del archivo de salida y ejecutamos.

Comprobaciones y correcciones geométricas y topológicas

Una vez tenemos la capa de subcuencas deseada se deben comprobar y corregir superposiciones, duplicados, huecos, geometrías inválidas, etc.

Esto se puede hacer con los complementos (Administrar e instalar complementos):

Modificar tabla de atributos según necesidades

Además de la geometría de las subcuencas, también debemos añadir los atributos deseados y ordenar como se desee la tabla de atributos. Algunos ejemplos de atributos útiles en una capa de subcuencas son el nombre del río, el área, longitud del río principal o la cuenca a la que pertenece.

RESULTADOS FINALES

Siguiendo estos pasos obtenemos nuestra capa de subcuencas.

Con este artículo cerramos nuestra serie sobre la delimitación de subcuencas. ¿Te han parecido interesantes? ¿Usas otras técnicas? ¿Necesitas ayuda? Ponte en contacto con nosotros o escríbenos por Twitter.