El archivo MP.rdata contiene datos de oleaje obtenidos por puertos del Estado mediante el sistema SIMAR (https://bancodatos.puertos.es/BD/informes/INT_8.pdf) en un punto situado entre las islas de Gran Canaria y Tenerife desde enero de 1960 hasta diciembre de 2004. Los datos disponibles en este archivo se miden cada hora y corresponden a parámetros del oleaje (altura significante, periodo medio, periodo pico, dirección de procedencia) y del viento (velocidad y dirección). Para cada observación se ha anotado también si corresponde a un temporal, al día anterior a un temporal, al día posterior a un temporal, o si esa observación se realizó en un día normal.

Las variables recogidas en dicho archivo son:

  • Fecha en formato año-mes-día

  • Año, mes y día por separado

  • Hora de la observación: se dispone de una observación cada hora

  • Hs: Altura de ola significante

  • Tm: Periodo medio de ola

  • Tp: Periodo de pico

  • 0m: Dirección media de procedencia del oleaje

  • ModuloViento: Velocidad media del viento

  • Dirección viento: Dirección media de procedencia del viento.

  • idTemp: identificación del temporal. En este archivo se han identificado 56 temporales. Todas las observaciones correspondientes al mismo temporal se han identificado con el mismo número. Los días anterior y posterior al temporal se han identificado también con el mismo número.

  • tipoDia: Variable que indica si la observación se ha tomado en un día en que no hay temporal, en el día anterior al temporal, en el día posterior o durante el temporal.

 

La identificación de los temporales en este archivo se ha llevado a cabo de acuerdo con lo descrito en este artículo, aunque con un umbral de detección algo más bajo. Concretamente se han identificado como temporales aquellos periodos con una altura de ola HS mayor que el percentil 99.5 (1.89 metros).

Estos datos pueden cargarse en R mediante el comando:

load("MP.rdata")

Tras ejectuar este comando, en el entorno de trabajo de R aparece un data.frame llamado MP que contiene todas las variables citadas.

 

Cuestiones a estudiar con estos datos

Nota: cuando lo consideres necesario, elabora los gráficos y tablas adecuados para representar las relaciones y tendencias que se puedan observar.

 

  1. Calcular el número de temporales por año entre 1960 y 2004, representar este número gráficamente y ver si hay alguna tendencia a que a medida que transcurre el tiempo va habiendo más (o menos) temporales. Estudiar también si los temporales se producen con mayor frecuencia en un mes o estación del año concretos.

  2. El siguiente código construye un nuevo data.frame (llamado alturas) en el que figura la altura significante de ola media durante el temporal, durante el día anterior y durante el día posterior:

library(tidyverse)
library(flextable)
alturas <- MP %>% group_by(idTemp,tipoDia) %>% 
  summarise(HsMedia=mean(Hs,na.rm=TRUE)) %>% 
  filter(idTemp>0&tipoDia!="no temporal")%>% 
  pivot_wider(names_from = tipoDia,values_from = HsMedia) 
# Presento los datos
flextable(alturas)

Obviamente durante el temporal la altura media de ola es mayor, pero ¿muestran los datos evidencia significativa de que la altura de ola en el día posterior al temporal es mayor que en el día anterior al mismo?

  1. Adapta el código anterior para calcular la media de los periodos medios, de los periodos pico y de la velocidad del viento durante el temporal, el día antes y el día después. ¿Ocurre lo mismo que con la altura de ola, es decir, los valores medios en el día posterior son mayores que en el día anterior?

  2. Calcula, para cada temporal, el promedio de altura de la tercera parte de olas más altas. Representar a lo largo del tiempo estas alturas. ¿Se aprecia alguna tendencia?

  3. El siguiente código calcula, para cada temporal, el valor medio de altura significante de ola, de periodo medio, de periodo pico y de velocidad del viento, por mes y año; además construye una variable que define tres periodos de tiempo: de 1960 a 1975, de 1976 a 1990 y de 1991 a 2004:

medias <-  MP %>% 
  filter(tipoDia=="Temporal") %>% 
  group_by(idTemp, year,month) %>% 
  summarize(HsMean=mean(Hs),TmMean=mean(Tm),TpMean=mean(Tp),ModuloViento=mean(ModuloViento)) %>% 
  ungroup() %>% 
  mutate(periodo=ifelse(year<1976,"[1960,1975]",ifelse(year<1991,"[1976,1990]","[1991,2004")))
# Presento los datos
flextable(medias)

¿Muestra alguna de estas variables diferencias significativas entre los tres periodos considerados? En caso afirmativo ¿Qué periodo difiere y en qué magnitud?

  1. Construye un histograma de frecuencias para las alturas de ola durante los temporales, y otro histograma para las alturas de ola en los días sin temporal (sin incluir el día anterior y el posterior a cada temporal). Interpreta estos gráficos.

  2. El siguiente código permite ajustar distribuciones de Weibull a las alturas de ola significantes de todo el periodo estudiado (de 1960 a 2004):

library(MASS)
params <- fitdistr(na.omit(MP$Hs),"weibull")
ggplot(MP,aes(x=Hs)) +
  geom_histogram(aes(y=..density..), colour="black", fill="lightcyan") +
  stat_function(fun=dweibull, 
                args=list(shape=params$estimate[1], scale=params$estimate[2]),
                color="red")

Adapta el código anterior para representar la distribución de la altura de ola durante los temporales y durante los periodos en los que no hay temporal, ajustando sendas distribuciones de Weibull. Compara los parámetros obtenidos.

  1. Representa la altura media de ola frente a la velocidad media del viento, con un color distinto según que la observación se realice durante el temporal, el día antes o el día después. Si aprecias relación lineal ajusta el correspondiente modelo de análisis de la covarianza.

  2. Representa la altura media de ola durante el temporal frente a la altura media de ola el día anterior. ¿Se aprecia relación de algún tipo? En caso afirmativo estima dicha relación.

  3. Representa gráficamente las posibles relaciones entre altura significante, periodo medio y periodo pico. Ajusta modelos en caso de que la relación lo sugiera.

  4. Estudia la variación de la intensidad de los temporales con la dirección del viento.

  5. Idem con la época del año ¿Los temporales más fuertes son más frecuentes en alguna estación particular?

  6. Estudia la duración de los temporales y su relación con la altura de ola, periodos, etc. Puedes calcular la duración de cada temporal mediante el código siguiente:

duraciones <- MP %>% 
  mutate(horaChar=ifelse(hora<10,paste0("0",hora),as.character(hora))) %>% 
  mutate(diaHora=as.POSIXct(paste(Fecha,horaChar),format="%Y-%m-%d %H")) %>% 
  filter(tipoDia=="Temporal") %>% 
  group_by(idTemp) %>% 
  summarise(start=min(diaHora),end=max(diaHora)) %>% 
  mutate(duracion=end-start)
  1. Crea la variable estación que tome los valores primavera, verano, otoño e invierno según la fecha del año. Estudia si existen diferencias significativas entre estaciones en las velocidades del viento durante los periodos sin temporales. Estudia también si existen diferencias significativas según estación entre las alturas de ola, los periodos medios de ola o los periodos pico.

  2. La libreria openair contiene la función windRose. Instala la librería y usa esta función para representar en una rosa de los vientos las velocidades del viento, globales y según la estación del año.

  3. Repite el ejercicio anterior representando en una rosa de los vientos la altura de ola en función de la dirección del viento y/o del oleaje.