meteoclimaticR
: Descarga de datos de MeteoclimaticmeteoclimaticR permite la descarga de datos meteorológicos proporcionados por la red de estaciones Meteoclimatic. Se pueden obtener los datos actuales de temperatura, humedad relativa, precipitación, viento y presión atmosférica. Además también se pueden descargar los valores máximos y mínimos del mismo día. Novedad de la última versión (21-07-2021): Descarga de los históricos diarios desde 2012 de forma masiva !!!
# Descarga desde github (0.0.2):
# install.packages("remotes")
remotes::install_github("lemuscanovas/meteoclimaticR")
Para la descarga de los datos meterológicos más recientes existe la función current_download
. Ésta tiene un funcionamento muy simple. Hay que especificar el id
de la comunidad autónoma (CCAA), provincia o estación meteorológica que proporciona Meteoclimatic. Lógicamente, para los ids relativos a CCAA y provincias, se descargan todas las estaciones pertenecientes a la región solicitada.
Así, por ejemplo, si el usuario tienen interés en descargar los datos de la CCAA Illes Baleares, debe especificar: id = ESIBA
; Si desea los datos de las estaciones de la isla de Mallorca, entonces id = ESIBA07
. Para la estación concreta del Port de Sòller: id = ESIBA0700000107108A
. Si, por ejemplo, se desean los datos de Catalunya, País Valencià e Illes Balears, se puede generar un simple vector: id = c("ESCAT","ESPVA","ESIBA")
.
También es posible exportar directamente la descarga en un fichero excel especificando save_excel = T
Veámoslo en un ejemplo:
library(meteoclimaticR)
ppcc <- current_download(id = c("ESCAT","ESPVA","ESIBA"),save_excel = F)
ppcc
# A tibble: 6 x 26
# name id num month yr hour lat lon Temp.unit Temp.act
# <chr> <chr> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl>
# 1 Sant Mate~ ESIBA0~ 21 Jul 2021 17:0~ 39.0 1.38 C 30.8
# 2 Sant Miqu~ ESIBA0~ 21 Jul 2021 17:0~ 39.0 1.42 C 30.1
# 3 Santa Eul~ ESIBA0~ 21 Jul 2021 17:0~ 39.0 1.53 C 30.1
# 4 Son Ferri~ ESIBA0~ 21 Jul 2021 17:0~ 39.6 2.71 C 30.7
# 5 Vilafranc~ ESIBA0~ 21 Jul 2021 17:0~ 39.6 3.09 C 33.1
# 6 Vilafranc~ ESIBA0~ 21 Jul 2021 17:0~ 39.6 3.08 C 32.7
# # ... with 16 more variables: Temp.max <dbl>, Temp.min <dbl>,
# # Hum.unit <chr>, Hum.act <dbl>, Hum.max <dbl>, Hum.min <dbl>,
# # Pres.unit <chr>, Pres.act <dbl>, Pres.max <dbl>, Pres.min <dbl>,
# # Vient.unit <chr>, Vient.act <dbl>, Vient.dir <dbl>, Vient.max <dbl>,
# # Precip.unit <chr>, Precip.total <dbl>
Los datos están georreferenciados, por lo que es posible realizar una cartografía rápida de estos datos. A continuación un plot de la temperatura máxima:
library(sf)
library(ggplot2)
library(rnaturalearth)
library(pals)
spa <- ne_countries(country = "spain", scale = 10, returnclass = "sf")
ggplot()+
geom_sf(data = spa)+
geom_point(data = ppcc, aes(lon,lat, fill = Temp.max),
shape = 21, colour = "black")+
scale_fill_gradientn(colours = rev(brewer.spectral(100)))+
xlim(-1,5)+ylim(38,43)+
theme_bw()
La descarga de datos históricos se realiza mediante la función historical_download
. Ésta tiene un funcionamiento muy similar a la anterior, pero con la diferencia que la descarga se debe realizar de forma masiva para toda la CCAA. Por lo tanto, no es posible realizar la descarga por provincia o por estación concreta. De todos modos, es fácil realizar un filtraje de las estaciones desadas después de la descarga.
A parte de los argumentos id
y save_excel
, en esta función es necesario especificar la fecha o el intervalo de fechas que se quiere descargar mediante el argumento dates
. Por lo tanto hay dos opciones:
- Una sola fecha: dates = "2017-01-05"
- intervalo de fechas: dates = c("2019-01-01","2020-05-30")
Si se opta por un intervalo de fechas, el usuario puede filtrar solamente aquellos meses de su interés, por ejemplo los eneros del intervalo: months = 1
(1 se refiere a Enero, 12 a Diciembre).
A continuación se muestra un ejemplo todo en uno para la CCAA Illes Balears:
bal_hist <- historical_download(id = "ESIBA",
dates = c("2019-01-01","2021-05-30"),
months = c(1:3),# solamente de enero hasta marzo
save_excel = F) # recomendable T
bal_hist
# A tibble: 6,134 x 14
# name id time lon lat alt Temp.max Temp.min Hum.max Hum.min Pres.max Pres.min
# <chr> <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 Cala ~ ESIB~ 2019-01-01 1.28 39.0 12 17.7 5.7 94 64 1030 1028
# 2 Eivis~ ESIB~ 2019-01-01 1.32 38.9 27 17 8.3 92 61 1030 1028
# 3 Cala ~ ESIB~ 2019-01-01 3.89 40.0 65 15.5 10.9 94 76 1031 1028
# 4 Campa~ ESIB~ 2019-01-01 2.97 39.8 129 22.2 10.1 86 29 1031 1028
# 5 Ciuta~ ESIB~ 2019-01-01 3.83 40.0 16 15.6 9 91 73 1030 1027
# 6 Eivis~ ESIB~ 2019-01-01 1.41 38.9 27 17 8.3 92 61 1030 1028
# 7 Estel~ ESIB~ 2019-01-01 2.48 39.6 145 16.1 8.1 86 53 1032 1029
# 8 Inca ~ ESIB~ 2019-01-01 2.9 39.7 124 18.4 7.3 88 38 1030 1027
# 9 Inca ~ ESIB~ 2019-01-01 2.9 39.7 120 15.7 4.7 52 37 1027 1026
# 10 Llore~ ESIB~ 2019-01-01 2.97 39.6 166 18.7 6.1 83 40 1031 1027
# ... with 6,124 more rows, and 2 more variables: Vient.max <dbl>, Precip.diaria <dbl>
Como se observa, la descarga tarda aproximadamente unos 5 minutos. Es recomendable guardar el fichero excel resultante save_excel = T
si se quiere descargar una serie más larga, ya que la descarga podría demorarse bastante tiempo.
Mediante las funciones proporcionadas por la librería dplyr
, es muy fácil filtrar la estación/es que se deseen. En este caso vamos a filtrar la estación de "Llucmajor" (ESIBA0700000107620A), en la isla de Mallorca. Con lubridate
y ggplot
, uno puede representar la serie diaria de precipitación o tempratura máxima para cada uno de los años descargados.
library(dplyr)
library(lubridate)
# Filtraje de la estación en cuestión:
llucmajor <- bal_hist %>% filter(id == "ESIBA0700000107620A")
# Visualización de la precipitación diaria.
ggplot(llucmajor, aes(x = time, y = Precip.diaria))+
geom_col(color = "blue")+
facet_wrap(~year(time), scales = "free")+
ylab("mm/dia")+
labs(title = "Precipitación diaria en Llucmajor",
subtitle = "Enero-Marzo, 2019-2021",
caption = "Producido con MeteoclimaticR. Fuente: Meteoclimatic")+
theme_bw()+
theme(axis.title.x = element_blank())
# Visualización de la tempreratura máxima diaria.
ggplot(llucmajor, aes(x = time, y = Temp.max))+
geom_line(color = "darkred")+
facet_wrap(~year(time), scales = "free")+
ylab("ºC")+
labs(title = "Temperatura máxima diaria en Llucmajor",
subtitle = "Enero-Marzo, 2019-2021",
caption = "Producido con MeteoclimaticR. Fuente: Meteoclimatic")+
theme_bw()+
theme(axis.title.x = element_blank())
Finalmente, se muestra el vector para todas las provincias de la Península:
id_prov <- c("ESCAT08000000","ESCAT25000000","ESCAT17000000","ESCAT43000000", # cat
"ESPVA12000000","ESPVA46000000","ESPVA030000000", #val
"ESMUR30000000", # mur
"ESAND040000000","ESAND18000000","ESAND23000000","ESAND14000000","ESAND29000000",
"ESAND41000000","ESAND1100000011600A","ESAND21000000", # and
"PTSUR080000000","PTSUR120000000","PTCEN110000000",
"PTCEN200000000","PTCEN100000000","PTNOR040000000","PTNOR180000000", # pt
"ESEXT060000000","ESEXT10000000", #ext
"ESCLM45000000","ESCLM13000000","ESCLM16000000","ESCLM020000000",
"ESCLM19000000", #cylam
"ESMAD28000000", #mad
"ESCYL0500000005","ESCYL40000000","ESCYL42000000","ESCYL42000000",
"ESCYL34000000","ESCYL24000000","ESCYL49000000","ESCYL47000000",
"ESCYL37000000","ESCYL49000000", #cyleo
"ESGAL320000000","ESGAL36000000","ESGAL15000000","ESGAL27000000", # gal
"ESAST33000000", #astu
"ESCTB39000000" ,#cant
"ESEUS48000000","ESEUS20000000","ESEUS010000000", #eusk
"ESNAF31000000", #nav,
"ESLRI26000000", #rioj
"ESARA22000000","ESARA50000000","ESARA44000000", #arag
"ESIBA0700000","ESAND52000000")#"ESICA3800000") # bal, melilla y canarias
Para cualquier cuestión no dudes en contactarme: marc.lemusicanovas@eurac.edu
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.