Este repositorio buscar ser un manual de referencia para la caracterización del hidroperiodo de manglares considerando las tres variables del hidroperiodo; nivel promedio de inundación (cm/mes), duración (h/mes), frecuencia (eventos/mes), así como espectro de frecuencias, utilizando series de tiempo de sensores de presión Hobbo. Así como una guía para limpiar e integrar datos del Estaciones Meteorológicas Automáticas (EMAs), datos del Servicio Mareográfico Nacional y niveles de manglar con datos del Laboratorio de Producción Primaria del CINVESTAV Mérida (LLP-Mid).
Important
Antes de comenzar debes instalar los siguientes programas
- HOBOware Software Para abrir archvios de formato .hobbo
- Matlab Para limpieza y analisis de datos
Índice
- Introducción
- Descarga de datos
- Fundamentos de Matlab
- Funciones especiales ( fillmissing
- Inspección series de tiempo
- Corrección series de tiempo
- Calculo de hidroperiodo (Duración, Promedio Frecuencia)
- Análisis de espectros
Las variaciones estacionales en el nivel de inundación y las características hidrológicas del humedal definen el hidroperiodo de los humedales. El hidroperiodo define las características de los humedales, en el caso de los manglares se ha observado que estas variaciones del hidroperiodo están relacionadas con cambios en la distribución y productividad del ecosistema.
De acuerdo con Mitsch & Gosselink, 2015 , el hidroperiodo se puede caracterizar a partir de tres variables; nivel de inundación, el cual se reporta como el nivel de inundación promedio en un intervalo de tiempo conocido; Duración de inundación, corresponde al numero de horas en las que humedal se encuentra inundado; y frecuencia de inundación, la cual se refiere al numero promedio de veces que el humedal es inundado en un periodo de tiempo conocido.
En el caso de la frecuencia y duración de inundación existen diversas métricas reportadas para su caracterización, en algunos casos la duración de inundación se reporta como él % de días en los que el humedal se encuentra inundado durante un año, el numero de horas, horas por mes, horas por día o días por año. En el caso de la frecuencia de inundación, se reporta como el número de veces que hay un incremento de marea por mes (tides/mes), numero de días por mes que hay inundación (días/mes) Claudia Teutli-Hernández,2021; Rodríguez Zúñiga M. T, 2005 o el número de inundaciones por año (flooding/year) Twilley R ,2005 La descripción de las variables del hidroperiodo a partir de datos generados por sensores de presión y mediciones de campo han permitido reconocer variaciones naturales, así como cambios originados por la actividad humana. Adicionalmente, en los últimos años el hidroperiodo ha sido caracterizado con nuevas técnicas y tecnologías como los análisis de espectros, imágenes satelitales o el uso de LiDar lo que ha permitido complementar los estudios de este ecosistema.
Antes de comenzar a realizar el análisis de datos se requien obtener datos confiables sobree el área de estudio. En el caso de niveles de inundación de manglares, estos datos corresponde a los que son recuperados de datos gracias a los intrumentos colocados con antelación. Estos sensores pueden ser de dos tipos: nivel de presión inundación (HOBO Water Level Data Logger), y presión atmosferica (hobo barometric pressure logger). El primero consta de un sensor que se coloca por debajo del nivel de agua y mide presión total (presión atmosferica + presión del nivel de agua), el segundo mide exclusivamente presión atmosferica. En un caso ideal ambos sensores se encuentran operando al mismo tiempo.
En el caso de datos de sensores de la marca Hobbo los datos se pueden recuperar del sensor utilizando la lanzadera optica del instrumento y el software HOBOware Software.
Dentro del HOBOware Software podemos abrir los archivos .hobbo. Para esto se selecciona el archvio .hobbo dentro del navegador de HOBOware

La primera ventana que nos aparece corresponde a las unidades de medida que se usaran para importar los datos. En este caso los datos corresponden a presión y temperatura. Por conveción, los datos de presión deben ser medidos en mbar y los de temperatura en °C. Lo anterior permite trabajar con datos de estaciones meteorologicas con mayor fácilidad.
En este punto si contamos con datos del sensor de presión atmosferica (hobo barometric pressure logger) podemos usar la opción Asistente de datos que compensara el nivel de inundación con los datos de presión atmosferica. Si no se cuenta con ese dato de compensación se puede seguir sin problemas.

Una ves que seleccionamos las unidades HOBOware y compensamos (si es posible) nos mostrara una grafica de los datos de presión y temperatura en el tiempo, nos indicará la fecha inicio y fin de recolección de datos asi. En este punto se pueden comenzar a ver puntos en donde se realizaron errores en las mediciones (p ej. cambios abruptos de presión, falta de datos, patrones anomalos)

Al visualizar los datos en HOBBOware ya es posible exportarlos a un formato tipo .csv. Esto se hace utiliza Archivo -> Exportador datos de tabla. Al hacer click se abre pestaña donde nos mostrará las columnas de datos que se van a exportar y posteriormente podemos seleccionar la carpeta para almacenar los datos
Tip
Almacena todos los archivos exportados dentro de la misma carpeta respetando nombre del archvio
En caso de no contar con datos de sensores de presión (hobo barometric pressure logger) se puede recurir a mediciones realizadas por estaciones meteórologicas localizadas en sitios cercanos. En el caso de estaciones externas esto puede enriquecer en analisis de los datos al integrar variables meteorologicas como Dirección del viento, velocidad del viento, precipitación, humedad, y temperatura aire. En el caso de México se recomienda tomar en cuenta las siguienes fuentes de información;
- Servicio Meteorologico Nacional
- Red Universitaria de Observatorios Atmosféricos - UNAM
- Servicio Mareográfico Nacional – SMN del IGEF, UNAM
Tip
Cada una de las basase de datos mencionadas cuenta con frecuencia de muestreo, variables medidas, periodo de datos que varian por institución o estación de muestreo. Así mismo, cada una tiene diferentes formas de acceso a los datos. En el caso de Servicio Meteorologico Nacional los datos están dispobles en su base de datos hasta por 90 días, despues de los cuales se debe realizar una solicitud por correo a CONAGUA para obtener datos historicos. Por otra parte, Servicio Mareográfico Nacional – SMN del IGEF, UNAM pone a disposición sus datos por medio de su correo llenando formatos que proporcionan en su pagina.
En el caso de los servicios mencionados anteriormente los datos son proporcionados en formato .cvs que se puede visualizar facilmente utilizando Excel Un ejemplo de bases de datos es la siguiente obtenida de CONAGUA
Se observa que los datos cuentan con una Frecuencia de muestreo de 10 min, se incluye información de Dirección del Viento Dirección de ráfaga (grados) Rapidez de viento (km/h) Rapidez de ráfaga (km/h) Temperatura del Aire (°C) Humedad relativa (%) Presión Atmosférica (hpa) Precipitación (mm)
Note
1 mbar = 1 hPa. Esto nos permite trabajar con datos de presión de los sensores HOBBO sin mayores conversiones
Ahora podemos comenzar a analizar las series de tiempo. Para esto vamos a utilizar el codigo S01_Limpieza de datos
- Comenzamos abriendo los datos de nivel de manglar que exportamos a .csv con el HOBBOware. Para cada uno de los archvios. Vamos a utilizar la función
readtimetabley la ruta donde esta el archvio. Esto nos permitirá tener accesos a funciones especiales de MATLAB que nos facilitarán la visualización de los datos.
Ejemplo;
Chp=readtimetable("./01_datos/csv/Chaparro_2020_2021/Chaparro_todos2020_2021.csv");
Esto abre el archivo y lo carga en el espacio de trabajo.
- Inspeccionamos el archivo importado. Vemos que las columnas estan bien pero tiene un error en la fecha.
Esto lo sabemos porque el sensor fue colocado en 2020 y la fecha que muestra es 0020
Para poder hacer correciones de fechas podemos hacer una variable y que sea igual al numero de años que tiene de error el archivo importado, en este caso 2000 años
y=years(2000);
- Sumamos
ya latabla de tiempo. Esto lo que hace es sumar los 2000 años faltantes a todas a la fecha
Chp.FechaTiempo_GMT_06_00=Chp.FechaTiempo_GMT_06_00+y;
- Gráficar los datos para inspección de serie de tiemp
Para graficar usamos la función plot. Con el siguiente orden plot( eje x, eje y, Color y forma)
Ejemplo:
plot(Chp.FechaTiempo_GMT_06_00,Chp.PresAbs_Mbar_LGRS_N_20081786_duplicate_duplicate_duplicate_SENS,'r')
En este caso Chp.FechaTiempo_GMT_06_00 es el eje X con datos de tiempo y Chp.PresAbs_Mbar_LGRS_N_20081786_duplicate_duplicate_duplicate_SENS es el eje Y con los datos de presion, mientras 'r' es color rojo para la grafica. Al usar una tabla de tiempo en automatico se reconoce que estamos trabajando con fechas
Se obtiene la siguiente grafica:
En el caso de sitio Peten se observa los siguiente

Caution
Se puede ver como hay picos anomalos que distorcionan la escala de la imagen. Tambien se observa que las series de tiempo no abarcan los mismo espacios de tiempo y que hay datos ausentes. Por lo anterior se deben corregir las series de tiempo
La correción de la serie de tiempo debe realizarse con una idea clara de que elementos se quieren conservar y cuales se quieren eliminar. En el caso del los datos de manglares debemos preservar las variaciones de nivel de inundación que ocurren de manera rápida por precipitación, nortes, descargas subterraneas, así como las variaciones de baja frecuencia como son los patrones estacionales. En el caso del sitio Pet:

Se puede observar que los datos tiene dos tipos de errores:
- Picos anómalo (outliers) a lo largo de la serie de tiempo. Estos pudieron ser resultado de manipulación del equipo o por errores en el sensor
- Ausencia de datos (NaN y NaT) que pueden ser resultado de errores de softwate o equipo
Para poder hacer la correcion de los datos vamos a utilizar las siguientes funciones:
- filloutliers:Para poder hacer la detección y correción de los valores anómalos
- fillmissing: Para poder interpolar y correguir los valores que no tiene datos NaN
- retime: Re muestrear e interpolar los datos en el tiempo
- isbetween Para cortar las series de tiempo
En este caso vamos a utilizar la serie de tiempo de datos de manglar de dos sitios; sitio A y sito B así como la serie de tiempo de sensor de presión atmosferica .
Para el calculo de hidroperiodo se va a utilizar el scrip S02_Hidroperiodo Este scrip hace el calculo de las tres variables del hidroperiodo para cada mes dentro de un año. Para esto el scrip realiza una serie de ciclos for y condicionantes if para identificar y cuantificar las inundaciones en el humedal. El scrip consiste en un archivo de Matlab tipo .mxl el cual tiene como proposito integrar herramientas visuales que faciliten el calculo del hidroperiodo.El scrip S02_Hidroperiodo calculara las siguientes variables para cada mes con datos:
- Duración: h/mes
- Promedio: cm/mes
- Frecuencia: Inundaciones/mes
La matriz de ingreso para S02_Hidroperiodo debe tener el siguiente formato:
Donde las columnas representan:
"AÑO"|"MES"|"DIA"|"HORA"|"MINUTO"|"SEGUNDO"|"NIVEL DE INUNDACIÓN"
A partir de la columna 7 se pueden tener muchas otras columnas que representen diferentes sitios
La primera sección del codigo abre la matriz de los datos. Esto se puede hacer utilizando la función impordata o atravez de la herramienta para importar datos de Matlab. La unica condición que se pide es que el archivo importado se le cambie el nombre a datos
En este punto se puede seleccionar el sitio de interés modificando el valor dentro de la barra. Esto lo que hace es seleccionar una columna dentro de la matriz, la columna que se seleccione corresponde al nivel de inundación en el sitio de interés.
Al seleccionar la columna de interés el codigo va a generar un vector con formato de tiempo y se graficaran los datos seleccionados
Posteriormente, el scrip va a generar una serie de matrices que van a permitir identificar el numero de años que constituyen a la serie de tiempo. Y va a separar la serie de tiempo por años
A continuación, el scrip nos va a mostrar en la sección de salida, los años que conforman la serie de tiempo, y nos permitirá seleccionar el año de interés.
Para la seccion del año de interés tenemos que modificar el valor del la barra, este va del 1 al 10, al seleccionar un valor se va a mostrar el año seleccionado como salida de codigo

Una vez que el scrip tiene selecionado el sitio de interes y el año se hace el calculo del hidroperiodo y regresa una matriz con la información ordenada
En este script el hidroperido se calcula a partir de una serie de ciclos for y condicionantes if. Esto permite tener una idea clara de cómo esta funcionando el programa y en caso de ser necesario se pueda modificar. Los resultado del estas operaciones se van a almacenar en un dato de tipo cell llamado mes que tiene la siguiente estructura:
En donde:
-
La duración de la inundación se calcula para cada mes a partir de un contador de horas, el cual esta condicionado a tomar en cuenta sólo aquellos valores >0 cm. Esto es, contar el numero de horas que el manglar esta inundado. El valor de la suma se almacena dentro de la matriz
mesdentro del espacio correspondiente a la columna5 -
El promedio de inundación mensual se calcula tomando en cuenta todos los valores registrados por el sensor, esto incluye los que son sobre y bajo el nivel del suelo. El valor del promedio se almacena dentro de la matriz
mesdentro del espacio correspondiente a la columna6 -
La frecuencia de inundación mensual se almacena dentro de la matriz
mesdentro del espacio correspondiente a la columna7
Para la frecuencia se hace un calculo por etapas:
- Se toman en consideración sólo los datos que corresponden a inundación (>0 cm). Por lo anterior, los valores
<=0que representan no inundación se convierten en0
- Se suaviza la serie de tiempo con datos >0. Esto se hace ya que se observó que a lo largo del registro hay varios picos en la señar que son muy pequeños y pueden interferir como ruido dentro del calculo de frecuencia. Esta sección queda a criterio de cada persona, ya que se puede o no suavizar la señal, o se pueden utilizar otras metodologías y ventanas para suavizar la señal.
- Se identifican los maximos locales de la señal suavizada. Para identificar un evento de inundación se considera que este esta representado por el punto maximo de un incremento de nivel de inundación
- Se cuentan el numero de maximos locales de la señal suavizada

Al finalizar le calculo de la duración, frecuencia y promedio se muestra una grafica por mes donde se señalan los maximos locales contados, la señal original y la señal suavizada, esto permite reconocer si a criterio del usuario se hizó el smooth y conteo adecuado.
Finalmente muestra los resultado por mes;
Columna 5: Duración de inundación h/mes
Columna 6: Nivel promedio inundación cm/mes
Columna 7: Frecuencia de inundación Eventos/mes
Cada fila representa un mes. Fila 1; Enero, Fila 2; Febrero, Fila3; Marzo... ETC
Note
En caso de presentar valores como NaN en la columna numero 6 promedio significa no se hizó la interpolación por lo que se debe hacer.
Para el calculo de las frecuencias de inundación dentro de la serie de tiempo se utilizó la transformada rápida de fourier fft en Matlab, utilizando un calculo directo con la función mecionanda.
- En la primera sección del código se piden los parametros necesarios para utilizar la función
- Frecuencia de muestro
- Logitud de la señal
- Tiempo de señal
- Aplica la función (fft)
- Se realiza la gráfica de la señal de frecuencia














