Para poder tratar los datos de presión medidos con el BARÓMETRO ARDUINO (http://blog.e-ao.org/#post2 ) es necesario que seamos capaces de manipular adecuadamente las fechas y horarios de las medidas llevadas a cabo. En este post trataremos este problema mediante la utilización de los recursos de programación de R (https://www.r-project.org/ ).
La forma habitual de tratar la información de variables que representan fechas y/o horarios es el uso de estas en forma de valores expresados en tiempo decimal. Básicamente esto consiste en reducir la fecha a un número decimal que es más fácilmente manipulable. Con este fin se suele usar en los lenguajes de programación el valor de día JULIANO que es un número que expresa cualquier fecha como el número de días que han pasado desde una fecha en cuestión hasta otra predeterminada.
En el caso del lenguaje R para poder tratar las variables fechas de manera sencilla se suele emplear la librería “LUBRIDATE” que contiene multitud de funciones que tienen este objetivo. Esta librería no viene con el paquete de R por lo que habrá que instalarlo. Básicamente para poder hacer el tratamiento de nuestros datos de presión se ha usado esta librería y las funciones de ploteado propias de R. Para los que no estén familiarizados con R en este link encontrareis una guía muy amplia de tutoriales de este lenguaje de programación (http://www.skilledup.com/articles/18-free-tutorials-learning-r-programming )
A continuación presento las dos gráficas que hemos construido para estudiar e interpretar los datos. La figura 1 representa la evolución temporal de los datos de presión y la figura 2 representa el histograma de los mismos.
Figura 1. Evolución de la presión medida por el BARÓMETRO ARDUINO durante el mes de Mayo (2017)
Figura 2. Histograma de frecuencias de los valores de presión observados
Lo más interesante a destacar de estas dos figuras es el hecho de que la distribución estadística de las medidas (figura 2) no es totalmente simétrica a su valor modal de 1011 hPa. En los datos de nuestro barómetro instalado al nivel del mar, aparecen valores depresionarios con un pico alrededor de 1001 hPa. El fenómeno que observamos es como si en la zona de análisis existiera una situación mayoritaria de presiones que se centran alrededor de 1011 hPa pero que sufre la aparición persistente de períodos depresionarios del orden de de 1000 hPa.
Volviendo al tema de la programación en R que permite la obtención de estas dos gráficas a continuación presentamos comentado el script R desarrollado.
###############################################################
# introducción de la librería “lubridate”
####################################
library(lubridate)
###########################################
# lectura de datos
##########################################
dat=read.table(“c:\\Uso_R\\DATA_p_300517.txt”)
p=dat[,8]
#############################################################
# conversión de los datos de las fechas a día juliano
# la conversión ser realiza considerando como dia 1 el primer día de 2017
# si quisiéramos referirlo a otra fecha habría que modificar
# dia=as.Date (dia, origin=”FECHA EN CUESTION”)
############################################################
dia=paste(dat[,6],dat[,5],dat[,4],sep=”-“)
dia=as.Date(dia)
dia=yday(dia)
################################################
# conversión de la hora de medida a hora decimal
################################################
hora=dat[,1]
min=dat[,2]
seg=dat[,3]
########################################################
# conversión de la día y hora de medida a tiempo decimal
########################################################
td=dia+((1/24)*(hora+(min/60)+(seg/3600)))
# los datos se miden en horario de invierno –> utc+1 <–
td=td-(1/24)
#############################################################################
# como sabemos que la primera medida es td[1]=116.7538
# y la última medida es td[48280]=150.3391 (48280=dim(dat))
# sabiendo que 0.000694444 es “60s” de paso en decimal de dia (1/(24*60))
# elegiremos 117=trunc(td[1]+1) como primera medida
# y 150 – 0.000694444 ( 150=trunc(td[dim(dat)[1]]) ) como última medida
# recordamos que tenemos 1440 minutos de un día
# primero es interpolar ya que la medida no se hacen
# sistemáticamente cada 60 s
#############################################################################
xout=seq(117,(150-0.000694444),by=0.0006944444)
finalp=approx(td,p,xout,method=”linear”)
#########################################################
# en xout tenemos ya los días y las horas en decimal
# en finalp$y los valores de p interpolados regularmente
# así ya podremos plotear los datos
#########################################################
x=as.Date(xout,origin=”2017-01-01″)
plot(x, (finalp$y/10), type=”p”, pch=20, col=”blue”, cex.axis=.75, main=”EVOLUCIÓN DE LA PRESIÓN 28-Abril a 1-Junio”,xlab=””,ylab=”PRESIÓN (hPa)”,xaxt = “n”)
d1=as.Date(113,origin=”2017-01-01″)
d2=as.Date(161,origin=”2017-01-01″)
axis.Date(1,at=seq(d1,d2,”weeks”))
axis.Date(1, at = seq(d1, d2, “days”), labels = FALSE, tcl = -0.2)
#############################################################
# Para hacer el histograma
# sabemos ya que el valor mínimo de la presión e 994 hPa
# y el máximo es 1024 hPa
###########################################################
final=finalp$y/10
limp=seq(994,1024,by=2)
h=hist(final,breaks=limp)
plot(h,main=”DISTRIBUCIÓN DE LOS DATOS DE PRESIÓN”,xlab=”PRESIÓN (hPa)” ,ylim=c(0,10000),ylab=”Frecuencia”,xaxt=”n”,yaxt=”n”)
axis(1,at=seq(970,1030,by=2))
axis(2,at=seq(0,10000,by=2000))
Your article gave me a lot of inspiration, I hope you can explain your point of view in more detail, because I have some doubts, thank you.
free dating sites for men and women: relative dating – online dating sites for free
prednisone 5 mg brand name: https://prednisone1st.store/# prednisone 10mg tabs
Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://accounts.binance.com/sl/register-person?ref=V2H9AFPY
I may need your help. I tried many ways but couldn’t solve it, but after reading your article, I think you have a way to help me. I’m looking forward for your reply. Thanks.
The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you. https://www.gate.io/pt/signup/XwNAU
I am a website designer. Recently, I am designing a website template about gate.io. The boss’s requirements are very strange, which makes me very difficult. I have consulted many websites, and later I discovered your blog, which is the style I hope to need. thank you very much. Would you allow me to use your blog style as a reference? thank you!
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Your article made me suddenly realize that I am writing a thesis on gate.io. After reading your article, I have a different way of thinking, thank you. However, I still have some doubts, can you help me? Thanks.
After reading your article, it reminded me of some things about gate io that I studied before. The content is similar to yours, but your thinking is very special, which gave me a different idea. Thank you. But I still have some questions I want to ask you, I will always pay attention. Thanks.
After reading your article, it reminded me of some things about gate io that I studied before. The content is similar to yours, but your thinking is very special, which gave me a different idea. Thank you. But I still have some questions I want to ask you, I will always pay attention. Thanks.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.