Los datos obtenidos por nuestro Barómetro Arduino (http://blog.e-ao.org/#post3 ) están compuestos de dos variaciones evidentes que se pueden observar directamente en cuanto que realicemos una gráfica de su evolución temporal minuto a minuto (figura 1). En este tipo de gráficos es fácil ver como la presión atmosférica presenta una tendencia que se suele extender durante varios días y que supone aumentos y descensos de la misma (aumentos y descensos que son causadas por el tránsito de zonas anticiclónicas y depresionarias) a los que se suma una modulación diaria y repetitiva de la presión que se conoce como Marea Barométrica


Figura 1. Ejemplo de datos recopilados por nuestro BARÓMETRO ARDUINO.

Como podemos leer en la Wikipedia (https://en.wikipedia.org/wiki/Atmospheric_tide ) las fluctuaciones de la conocida como Marea Atmosférica se generan principalmente en la troposfera y estratosfera cuando la atmósfera se calienta periódicamente, ya que el vapor de agua y el ozono absorben la radiación solar durante el día. Estas mareas tienen dos rasgos distintivos dominantes:

1.- Las mareas atmosféricas se excitan principalmente por el calentamiento de la atmósfera por el Sol, mientras que las mareas oceánicas son excitadas por la atracción gravitatoria de la Luna y en menor medida por la gravedad del Sol. Esto significa que la mayoría de las mareas atmosféricas tienen períodos de oscilación relacionados con la duración de 24 horas del día solar, mientras que las mareas oceánicas tienen períodos de oscilación relacionados tanto con el día solar como con el día lunar más largo (tiempo entre sucesivos tránsitos lunares , aproximadamente 24 horas 51 minutos).

2.- Las mareas atmosféricas se propagan en una atmósfera donde la densidad varía significativamente con la altura. Una consecuencia de esto es que sus amplitudes aumentan exponencialmente a medida que la marea asciende en regiones progresivamente más raras de la atmósfera. A nivel del suelo, las mareas atmosféricas pueden ser detectadas como regulares pero pequeñas oscilaciones en la presión superficial con períodos de 24 y 12 horas.

En este post vamos a explicar cómo podemos estudiar este tipo de mareas en nuestros datos.

Para poder analizar la Marea Barométrica es necesario eliminar de los datos de presión las tendencias diarias de los mismos. Con este fin se puede restar la presión media de cada día a los datos medidos por el barómetro cada minuto durante ese día, y con las anomalías así obtenidas, calcular una media de todos ellas en una serie de días suficientemente larga. De esta manera obtendremos una valoración de las características de la marea barométrica diaria media durante el período analizado.

En la figura 2 se presenta los resultados que hemos obtenido en nuestro caso aplicando este procedimiento durante el periodo de 8 días comprendido entre el 07/04/2017 y el 15/04/2017. En esta figura se representa el ciclo medio diario de la evolución temporal de la anomalía de la marea en horas UTC.

Figura 2. Ciclo medio diario de la Marea Barométrica desde 07/04/2017 a 15/04/2017

Vemos claramente como las medidas obtenidas de la marea atmosférica presentan una fluctuación del orden de 2 hPa con dos mínimos claramente identificados hacia las 4 H UTC de la madrugada y a las 18 H UTC de la tarde. Es interesante ver que el máximo se alcanza entre las 10 y las 11 H UTC. La variación de la presión que se observa es claramente una señal con dos ciclos en un día lo que indica el carácter dominante de la marea semidiurna en los datos de la fluctuación de la presión asociada a la marea barométrica.

Para profundizar más en nuestro estudio hemos aplicado a nuestros datos un análisis de Fourier (https://es.wikipedia.org/wiki/Transformada_de_Fourier) que hemos llevado a cabo mediante un script desarrollado con el software R ( https://www.r-project.org/ ). Para ello hemos determinado la fluctuación cada minuto de la marea barométrica mediante la interpolación de un polinomio de orden 2 (una parábola) en los valores de la presión medido por nuestro barómetro cada día. Restando al valor de la presión medida por el barómetro cada minuto el valor predicho por el polinomio de orden 2 interpolado, estamos en condiciones de obtener la fluctuación cada minuto de la marea barométrica durante el periodo de observación día a día.
Finalmente a la serie de 8 días de variación de la marea barométrica que hemos obtenido en nuestro caso le hemos aplicado un análisis de Fourier para estudiar sus componentes espectrales. El script R utilizado para hacer este estudio se presenta al final de este post y los resultados obtenidos se resumen en la figura 3.


Figura 3. Resultado del análisis de Fourier de los datos de Marea Barométrica

Básicamente del análisis de la figura 3 podemos inferir:

-La marea barométrica no es igual todos los días, su amplitud y forma varía día a día

-La marea barométrica está básicamente compuesta de dos señales, una diurna (1 ciclo cada día) y otra semidiurna. Aunque la parte semidiurna (2 ciclos al día) es la más intensa (cerca del 80% de la señal) la marea diurna representa cerca del 20 % de la misma.

#############################
# MAREA BAROMETRICA
###########################

library(stats)

#######################
#lectura
#######################
data=read.table(“c://USO_R/presion/DATA_p_150417.txt”)
p=data[,8]

#calculo del tiempo decimal
#################################
hora=data[,1]
minuto=data[,2]
segundo=data[,3]
dia=data[,4]

t=dia+((1/24)*(hora+(minuto/60)+(segundo/3600)))

#############################################################
# como la hora en el barómetro es hora local invierno GMT+1
# interpolaremos 8 días de datos entre
# 7.04166666667 (dia 7 a la 1:00:00) y
# 15.0409722222 (dia 15 a las 0:59:00)
# con pasos de 0.0006944444 (1 minuto)
# un total de 11520 datos (uno cada minuto )
# cada dia tiene 1440 datos
# tengo 8 dias en pr_1 matrix
#############################################################

xout=seq(7.04166666667,15.0409722222,by=0.0006944444)
final_p=approx(t,p,xout,method=”linear”)

pr=final_p$y
pr_1=matrix(pr,nrow=1440)

########################################
# eliminamos la tendencia diaria
# usando un polinomio de orden 2
# para ello usamos un bucle for
#########################################

x=1:1440

for (n in 1:8)
{
y=pr_1[1:1440,n]
regress=lm(y~x+I(x^2))
coeff=matrix(regress$coef,nrow=1)

a=coeff[1,1]
b=coeff[1,2]
c=coeff[1,3]

ypl=a+(b*x)+(c*x*x)
yn=y-ypl

pr_1[1:1440,n]=yn
}

# aqui tengo todos los datos en el vector pp
################################################
pp=matrix(pr_1,nrow=1440*8)

############################################
# pasamos a hacer la fft
#######################################

T= 8
f=1:length(pp)/T
nd=length(pp)

#FOURIER TRANSFORM WORK
############################
Y = fft(pp)
mag = sqrt(Re(Y)^2+Im(Y)^2)*2/nd

#PLOTTING
##########################
x=c(1:length(pp))/1440
layout(matrix(c(1,2), 2, 1, byrow = TRUE))
plot(x,pp,type=”l”)
plot(f[1:40],mag[2:41],type=”l”)