Tutorial: Aplicación de SWAT en la cuenca del río San Juan, México

0
243

Sobre el blog

Gidahatari
Gidahatari es una una empresa dedicada a la ​gestión sostenible de los recursos hidricos ​con especialización en modelamiento numérico y herramientas computacionales.
243

En este tutorial se verá un ejemplo básico usando el plugin de SWAT para MapWindows. La mayoría de datos se importarán de archivos preexistentes, por lo que este ejemplo es solo ilustrativo de los alcances y la manera de trabajar de SWAT.

Para este ejemplo inicial usaremos la cuenca de San Juan, en México.

Configuración inicial

Abrimos MapWindows y nos dirigimos a Plug-ins, allí habilitamos MWSWAT 2012, Shapefile editor y Watershed Delineation.

Luego, una vez que ya aparecieron estos 3 plugins en la barra de herramientas, abrimos MWSWAT dándole click a la pestaña MWSWAT2012.

Una vez allí aparecerá una pantalla gestora de MWSWAT. Damos click en New Project, y nos aparecerá una ventana para elegir la ubicación donde se guardará nuestro proyecto. Buscamos la ubicación de la carpeta San Juan, y dentro de ella, en el mismo rango que la de SJ_MAPS, creamos nuestro proyecto, al cual nombraremos SJ_MWSWAT:

Cuando grabemos, automáticamente aparecerá un recordatorio sobre los siguientes puntos:

  • Todos los mapas deben estar en una proyección de áreas iguales (por ejem. en UTM), y que las unidades de medida de los mapas estén en metros.
  • Se ha seleccionado el plugin Delineación de cuencas. Si es necesario volver a proyectar algunos de los mapas puede utilizar la barra de herramientas de MapWindow para hacerlo.
  • Comprobar que se establece en la opción file formats (Project/Settings/Application Settings/File formats) una configuración de Automatic o LoadAsGrid, pues no se podrá procesar algunos de los mapas, si se establece en LoadAsImage.

Paso siguiente se desbloqueará el primer paso del MWSWAT: Delineate Watershed.

Primer paso: Delineación de la cuenca

Le hacemos click a Delineate Watershed y aparecerá una ventana en la que tenemos que seleccionar la DEM (modelo digital del terreno) que vamos a usar. En SJ_Maps/Geo_processed buscamos sj_dem_clip_utm.tif y le damos ok. Luego ponemos Process DEM.

Aparecerá una ventana de configuración (guiarse siempre de la imagen posterior), en la que primeramente en Setup and Reprocessing, tenemos que verificar que estemos trabajando en metros. Ahora, le damos click a Use a Focusing Mask para nosotros especificar el área de análisis, y que el programa no coja simplemente el área total que se visualiza. Elegimos la opción Use grid or shapefile for Mask y adjuntamos el archivo shp de la cuenca; el cual lo buscamos como sj_washd_utm.shp en SJ_Maps/Geo_processed. Luego le ponemos RUN para que corra la delimitación de cuenca principal.

Teniendo ya delimitada la cuenca principal, en Network Delineation by Threshold Method, cambiamos las unidades de millas cuadradas (sq.mi) a kilómetros cuadrados (km.sq), y cambiamos el valor del área a 50 km2 (esto corregirá automáticamente el número total de cuadrados en la grilla a 7200). Paso seguido le damos click al segundo RUN para crear las trayectorias de los ríos en la cuenca.

Ahora, antes del último paso, con la ayuda de la herramienta lupa en la esquina superior izquierda, hacemos un zoom a la zona de la descarga de los ríos de la cuenca. Una vez hecho el acercamiento, se marca la casilla Use a Custom Outlets/Inlets Layer, y en Custom Outlets/Inlets Layer, le damos click a Draw Outlets/Inlets y nos aparecerá un mensaje para crear un nuevo shapefile de Outlets/Inlets, aceptamos y lo creamos con el nombre sj_out. Acto siguiente tenemos que establecer el outlet dando un click en el punto que consideramos como el inicio de la cuenca hidrográfica, y al que descargan sus aguas, como indica la siguiente figura:

Damos click en Done, y luego en RUN para correrlo y se verá que se ha dividido la cuenca principal en varias subcuencas.

Si todo está bien, se cierra la ventana y cuando volvamos a la ventana de configuración general de MWSWAT, veremos que se ha desbloqueado el siguiente nivel: Create HRU’s.

Segundo paso: Crear las Unidades Hidrológicas de Respuesta (HRU’s)

Antes de empezar guardamos nuestro proyecto haciendo click en el símbolo de disquette en la ventana principal de MapWindows.

Ahora le damos click a Create HRUs y nos aparecerá un error producido por una indebida lectura del archivo shp de subcuencas generado en el paso anterior, que impide al programa activar automáticamente la leyenda de capas o shapefiles que aparecerá en la parte izquierda de la pantalla principal de MapWindows. Para corregir este pequeño impase simplemente se tiene que habilitar esta opción manualmente desde la barra de herramientas de MapWindows. Como por ahora no la necesitamos continuaremos con el modelado y más adelante la activaremos.

Siguiendo con el procedimiento, aceptamos el mensaje de advertencia y se abrirá una ventana auxiliar. Ahora implantaremos en el modelo los usos que se le da al suelo o usos del suelo, y los tipos de suelo que se encuentran espacialmente distribuidos en la cuenca. Estos files se encuentran en SJ_Maps/Geo_processed.

En Landuse Map examinamos el icono de carpeta y seleccionamos el archivo sj_land_clip_utm.tif, luego en Soil Map, hacemos lo propio y elegimos el archivo sj_soil_clip_utm.tif.

Siguiendo con el procedimiento definiremos las tablas de base de datos que MWSWAT tomará como referencia para el análisis. En Landuse Table elegimos global_landuses y en Soil Table, lo hacemos con global_soils.

Ahora es momento de definir el umbral de pendiente, es decir, el valor que subdivide los valores de pendiente del terreno en dos grupos. En nuestro caso, definimos esta pendiente intermedia en 10%, entonces los dos grupos serían 0-10% y 10-999% (el 999 hace referencia a una pendiente casi vertical). En Set bands for slope (%) ingresamos 10, y luego le damos a Insert.

En las opciones avanzadas (parte inferior), Split Landuses sirve para dividir más precisamente los usos del suelo manualmente en más subgrupos, y Exempt Landuses nos permite asegurar que el uso de suelo se mantiene en el cálculo de las HRU incluso si cae por debajo de los umbrales que se definirán más adelante. En este ejemplo no se usará ninguno de los dos.

Finalmente le damos en READ, para que lea los mapas que le hemos dado al programa para procesar.1

Tras leer los mapas tendremos que definir el enfoque que le daremos a la creación de los HRUs, para esto elegiremos entre 3 opciones:

  • Dominant HRU: selecciona el más grande de los HRUs potenciales en cada subcuenca y hace que su rango de uso del suelo, tipo de suelo y pendiente sean los elegidos para toda la subcuenca.
  • Dominant landuse, soil, slope: elige el uso de suelo con el área más grande de la subcuenca, el tipo de suelo con el área más grande de la subcuenca, y el rango de pendiente con el área más grande de la subcuenca y los utiliza para toda la subcuenca.
  • Multiple HRU: ignorará cualquier HRU potencial para la que el uso de la tierra, el tipo de suelo o la pendiente sea menor que el umbral seleccionado, que es el porcentaje de la subcuenca. Las áreas de HRUs que son ignoradas son redistribuidas proporcionalmente entre las que se conservan.

Para el ejemplo elegiremos el tercero, para lo cual hacemos click Single/Multiple HRU, seleccionamos Multiple HRUs, y luego By percentage.

Ahora se definirán los umbrales con los que se van a trabajar. Entonces elegimos 20% para Landuse, 10% para Soil, y 5% para Slope.

Luego le damos click en Create HRUs. Si todo está bien saldrá un cuadro de diálogo que confirmará la creación de 195 HRUs en 47 subcuencas. Aceptamos y la ventana de trabajo se cerrará automáticamente, volviendo al menú principal de SWAT.

Si hemos logrado obtener la imagen anterior habremos terminado con esta fase, pasando a la siguiente: SWAT Setup and Run.

Tercer paso: Establecer y correr SWAT

Cuando volvamos al menú de configuración principal veremos que se ha desbloqueado el nivel SWAT Setup and Run.

Antes de comenzar, nos percatamos que ha aparecido también en la parte inferior izquierda un pequeño menú de reportes. Los 3 tipos de informes que presenta son los siguientes:

  • Elevation report: proporciona información sobre la cantidad de terreno que está en cada elevación desde la más baja a la más alta, tanto para la cuenca en su conjunto y para cada subcuenca.
  • Basin report: en él se enumeran las áreas del uso del suelo, el tipo de suelo y la pendiente para cada subcuenca.
  • HRUs report: incluye los usos del suelo, los tipos de suelo y los grupos de pendiente después de la selección de HRUs, y también da detalles de las HRUs que han sido formadas.

Es decir, si bien el Basin report da detalles de las áreas del uso del suelo, el tipo de suelo y la pendiente para cada subcuenca; estos son del total, sin aplicar ningún filtro. Sin embargo, el HRUs report solo muestra aquellas que han sobrepasado el umbral impuesto para cada categoría.

Por ejemplo, un reporte de HRUs sería el siguiente:

Ahora sí ha llegado el momento de activar la leyenda manualmente debido al problema mencionado antes. Para esto vamos a View/Panels y originamos un check en Legend. Ahora de todas maneras visualizaremos la leyenda.

Entonces ahora, también en la pantalla principal de MapWindows, podemos apreciar que se ha creado una leyenda con las diferentes capas que se han corrido en el modelo: grupos de pendientes, tipos de suelo, usos de suelo y Full HRUs.

Desmarcando todas las opciones (4 en total) y luego marcando una por vez, se puede ver la variabilidad espacial de los parámetros (la capa del DEM, está por encima de las primeras 3, por lo que es necesario desactivarlo para que recién se puedan ver).

Un ejercicio práctico es dar click derecho en FullHRUs y luego click en Attribute Table Editor para abrir la tabla de atributos. Allí se puede ver que los shapefiles generados están ordenados por:

  • Shape_ID (número de generación del shapefile)
  • Subbasin (subcuenca a la que pertenecen)
  • Landuse (uso del suelo), Soil (tipo de suelo)
  • Slope_Band (grupo de pendiente al que pertenece)
  • Area (área en Ha)
  • % Subbasin (porcentaje de su área con respecto al área de la subcuenca a la que pertenecen)
  • HRUGIS (código de HRU con el que se identifica).

Como podemos apreciar en HRUGIS hay casillas que son rellenadas con ‘NA’, es decir, sin valor. Esto es debido a que dichas áreas no han superado los umbrales antes definidos, y han sido despreciadas por el programa, lo que ocasiona que no se les asigne ningún código identificador de HRU, porque simplemente no están siendo consideradas en el análisis.

Ahora sí iniciaremos con el paso 3, pero antes de empezar guardamos nuestro proyecto haciendo click en el símbolo de disquette en la ventana principal de MapWindows.

Le damos click en SWAT Setup and Run y nos aparecerá una nueva ventana emergente.

Lo primero que realizaremos será definir el período de análisis, para lo cual vamos a Period of simulation y en establecemos el 1 de Enero del 2000 como Start date (inicio de la simulación), y al 31 de Diciembre de 2001 como Finish date (inicio de la simulación).

Paso siguiente en Weather Sources, le damos click en Choose. En la nueva ventana se debe definir las condiciones climáticas del modelo. Un modo común es el uso de datos meteorológicos reales de temperatura y precipitación máxima y mínima, y un archivo generador de tiempo que simulará otros factores climáticos (radiación solar, velocidad del viento y humedad relativa). Así que hay que proporcionar un archivo generador climático para la cuenca y, por otro lado, los datos de precipitación y temperatura.

Lo óptimo es ingresar datos de muchas estaciones meteorológicas para trabajar con mayor precisión. Si se quisiera ingresar un archivo con varias estaciones se marca en Weather Sources la opción Global files, y entonces MWSWAT busca las 6 estaciones meteorológicas más cercanas en ese archivo, genera los datos de temperatura y precipitación para ellos, y luego asocia cada subcuenca con la estación meteorológica más cercana de entre los seis.
En este caso, hemos decidido utilizar sólo una estación meteorológica para toda la cuenca, para lo cual se copió el archivo de texto de la estación en particular (sanjuan1.txt), más dos files adicionales, uno de precipitación (765850.pcp), y otro de temperatura (765850.tmp).

Finalmente en Weather Sources establecemos la opción Local files, y entonces en Weather Stations File se adjunta el archivo sanjuan1.txt ubicado en SJ_Maps.

Ahora, bajo Weather Generator, seleccionamos File, y en Weather Generator File encontramos en SJ_Maps\GeoProcessed\ el archivo sj.wgn. Dejaremos Sub-Daily Precipitation sin marcar y hacemos clic en Done para terminar con este paso.

De vuelta en la ventana anterior, en la barra derecha, damos click en Select All Files, y luego en la parte inferior a Write Files.

Existe un programa para calcular las unidades de calor necesarias para el crecimiento de las plantas, a partir de datos climáticos, pero sólo está disponible para los EE.UU. Si el proyecto se encuentra dentro de los EE.UU., y se desea utilizar este programa de estimación, entonces acepte el valor predeterminado en el formulario y haga clic en Done. Si se desea utilizar en vez un valor fijo, haga clic en esa opción, y cambie el valor numérico si lo desea, y haga clic en Done.

A los proyectos fuera de los EE.UU. se les da automáticamente el valor predeterminado fijo de 1800, como en el ejemplo de San Juan.

El valor de las unidades de calor aparece en los archivos mgt., y se puede editar luego utilizando el SWAT Editor.

Puede guardar su corrida en Save Run, pero si modifica los archivos de los pasos anteriores, esta fallará.

Con Edit files se puede editar cualquiera de los archivos de entrada y los archivos de base de datos con SWAT Editor, si así lo desea.

Finalmente damos click en RUN SWAT para que corra en DOS.

Si el proceso no se realiza correctamente la ventana de DOS se mantendrá abierta con un mensaje que indica que hay que pulsar Enter para salir.

Se puede volver a correr SWAT pero con la casilla activada de Run SWAT in Debug Mode (justo arriba de Write Files), para que pueda informar el error en detalle. Para soporte técnico se puede contactar a http://swat.tamu.edu/support/

Si todo sale bien aparecerá un mensaje de Run successful. Salimos de la ventana con Close y notaremos que se ha desbloqueado el último nivel: Visualise results.

Cuarto paso: Visualizar los resultados

Antes de empezar guardamos nuestro proyecto haciendo click en el símbolo de disquette en la ventana principal de MapWindows.

La idea es hacer un shapefile de los resultados mostrando las subcuencas y, a continuación, mostrar uno de los outputs de SWAT, coloreando las subcuencas de acuerdo con el valor del output. Esto implica hacer de los valores del output un atributo del shapefile.

Hacemos click en Visualize y aparece una ventana en la cual finalmente los resultados se pueden visualizar de forma estática o dinámica.

Resultados estáticos

En el caso estático podemos añadir muchos outputs si se quiere, que nos permite hacer varias visualizaciones desde un mismo shapefile.

En primer lugar, vamos a Choose Run. En nuestro caso sólo hay una opción, Default, ya que no hemos guardado alguna corrida anterior.

Tenga en cuenta que sólo se puede crear el shapefile de resultados para una corrida anterior si tuviera los mismos parámetros de delineación de cuencas que la ejecución actual, ya que el shapefile de resultados se crea a partir del shapefile actual de la cuenca y depende en particular de la división en subcuencas. Así que, si se desea cambiar los parámetros de las cuencas hidrográficas, es una buena idea crear el shapefile de resultados tan pronto como se haya completado la corrida de SWAT. Cuando se guarda la corrida también se guardará el shapefile de resultados, si lo ha creado en la carpeta por defecto.

El shapefile que se creará es F\Scenarios\Default\TablesOut\results.shp. Default es la carpeta de archivos para la corrida Default. Si hubiéramos elegido una corrida grabada se habría utilizado su carpeta. TablesOut es la carpeta que utiliza el SWAT Editor para guardar productos en una base de datos, y ya existe.

Ahora en Choose SWAT Output encontraremos las opciones Reach y SubBasin.

Seleccionar Reach y luego la opción de Static Data. El cuadro por debajo de Choose Variables ahora contiene las variables definidas en el archivo de salida de SWAT output.rch, que van desde FLOW_INcms a CMETAL#3kg5.

Podemos seleccionar y agregar (Add) una a la vez en el archivo de resultados o podemos seleccionar todas (All). Se puede seleccionar y eliminar (Del) variables, seleccionar y mover hacia arriba o hacia abajo, o borrar la lista completa. También se puede volver al cuadro anterior de Choose SWAT output y seleccionar SubBasin (o HRU si está disponible) y añadir más variables de output.sub (o output.hru). Las variables de diferentes archivos de salida pueden mezclarse.

Nosotros usaremos todo el conjunto de variables. Haga clic en All para que todas las variables sean agregadas al análisis. Luego elegimos visualizar la variable reach\SEDCONCmg/kg y en Summary escogemos el resumen Maxima. Esto significa que vamos a almacenar en el shapefile de resultados y mostrar en la pantalla de MapWindow, la concentración máxima de sedimentos para cada tramo durante la corrida de SWAT.

Finalmente le damos click a Save.

Si ya existe el shapefile de resultados, debe confirmar que desea sobrescribirlo. (Si no lo hace, haga clic en No, seleccione un nuevo shapefile de resultados y haga clic en Guardar de nuevo).

El shapefile de resultados se crea y se añade a la pantalla MapWindow como una capa. Inicialmente tiene un color predeterminado y sale un mensaje que tenemos que crear un esquema de colores para ello.

Podemos mirar primero los valores de los atributos que se han incluido en el shapefile de resultados. Hacemos clic derecho sobre results.shp en la leyenda y seleccione Attribute Table Editor. Vemos que hay un SHAPE__ID, generado por MapWindow internamente, luego el número de subcuenca, y luego el área de la subcuenca en km2. Tenga en cuenta que a pesar de que estamos utilizando variables por tramos de río, el área de esta tabla es siempre el área de la subcuenca, no de la zona de drenaje en el tramo de río. Los atributos restantes son los flujos de caudal, evapotranspiración y los balances de entrada y salida de las demás variables que hemos definido en Choose Variables. Cerramos esta tabla.

Como observamos la visualización no es muy buena ya que toda la cuenca sigue del mismo color, así que para poner la escala de colores según parámetros establecidos seleccionamos results.shp y luego hacemos click en Categories , en la paleta superior de MapWindows. En la ventana le damos click al botón Generate Categories y aparecerá otra ventana emergente, en la cual en Classification elegimos Equal Intervals (para partirlo en intervalos iguales) en Classification type, 5 en Number of categories (5 grupos en que se subdivide el parámetro a representar según su concentración), y en Classification field elegimos el atributo que decidimos mostrar, es decir, SEDCONCmg/kg.

Ahora en Visualization debemos elegir un color en Color Scheme. Si se desea obtener una escala de colores diferente a los predeterminados se puede hacer click en el ícono al costado y aparecerá una ventana emergente en la cual podemos crear un nuevo set de colores. Le damos a Edit y luego elegimos en las dos primeras casillas los colores que queremos (el que es para los valores más bajos es el primero). Si se desea un color intermedio se puede ir activando las casillas adicionales (Color 3, Color 4, etc.). Ponemos en Ok y paso siguiente ya está disponible para elegirlo en las paletas de Color Scheme. Lo seleccionamos, o seleccionamos el que nos apetezca, y luego solo nos queda decidir si activamos la casilla de Set Gradient for each category, que le dará un aspecto más suavizado a la gráfica. En nuestro caso, creamos una escala de colores desde blanco a azul. Finalmente damos Ok, y luego al regresar a la ventana inicial le damos Apply y luego Ok. Ahora podemos tener una mejor visualización de nuestro modelo al haberle aplicado una escala de colores.

Resultados dinámicos

Para obtener una animación se debe realizar el mismo procedimiento que en el caso estático, pero elegimos Subbasins en vez de Reach en la pestaña de Choose SWAT Output, y luego le damos a Animation Variable. Esto abre un cuadro adicional en el cual podemos elegir una variable para procesar. Solo se puede una variable a la vez, por lo que podría ser difícil hacer una animación rápida si tuviéramos un gran número de variables a mantener. Seleccionamos la evapotranspiración (símbolo ETmm) y hacemos click en Save en la ventana.

Ya sea si se sobrescribe o no sobre los resultados anteriores, el shapefile de los resultados se actualiza, pero el color no, así que debemos hacer el mismo procedimiento de escala de colores que para el caso estático.

Ahora un nuevo botón se ha desbloqueado: Animate. Le damos click y aparecerá una barra, en la que inicialmente MapWindows refleja los valores de ET para Enero del 2000 (fecha de inicio de la simulación), pero podemos elegir otras fechas o iniciar una animación de la evolución del parámetro dentro del período de simulación con la ayuda de los botones auxiliares. La animación se inicia con el botón PLAY , se para con el botón PAUSA y se rebobina con el botón RETROCEDER . Se puede manejar el progreso directamente con el botón SLIDE y controlar la velocidad aumentando o disminuyendo el pequeño menú SPEED. Los valores en el shapefile, como su color, son actualizados a medida que vayamos variando los parámetros antes mencionados.

Esta entrada ha sido publicada originalmente en www.gidahatari.com y replicada aquí con su expresa autorización.

Comentarios