library(meteospain)
library(dplyr)
library(ggplot2)
library(ggforce)
library(units)
library(sf)
library(keyring)
MeteoCat is the Catalonian
meteorologic service. It offers access to different meteorological data
and information, being one of their main missions to curate and
circulate data from meteorological stations. meteospain
only access to the automatic meteorological stations network data.
meteospain
offers access to the MeteoCat API at
different temporal resolutions:
In “daily” and “monthly”, a start_date
argument must be
provided, indicating the date from which retrieve the data as explained
earlier. For more info see
vignette('api_limits', package = 'meteospain')
.
meteospain
access the data in the MeteoCat API
collecting all stations. If a character vector of stations codes is
supplied in the stations
argument, a filter step is done
before returning the data to maintain only the stations supplied.
MeteoCat API only allow access to the data with a personal API Key.
This token must be included in the api_key
argument of
meteocat_options
function.
To obtain the API Key, please visit https://apidocs.meteocat.gencat.cat/ and follow the
instructions there.
It is not advisable to use the keys directly in any script shared or publicly available (github…), neither store them in plain text files. One option is using the keyring package for managing and accessing keys:
install.packages('keyring')
library(keyring)
key_set('meteocat') # A prompt asking for the secret (the API Key) will appear.
# current day, all stations
<- meteocat_options(
api_options resolution = 'instant',
api_key = key_get('meteocat')
) api_options
#> $resolution
#> [1] "instant"
#>
#> $start_date
#> [1] "2022-05-25"
#>
#> $stations
#> NULL
#>
#> $api_key
#> [1] "my_api_key"
# daily, all stations
<- meteocat_options(
api_options resolution = 'daily',
start_date = as.Date('2020-04-10'),
api_key = key_get('meteocat')
) api_options
#> $resolution
#> [1] "daily"
#>
#> $start_date
#> [1] "2020-04-25"
#>
#> $stations
#> NULL
#>
#> $api_key
#> [1] "my_api_key"
Accessing station metadata for MeteoCat is simple:
get_stations_info_from('meteocat', api_options)
<- meteocat_options(
api_options resolution = 'monthly',
start_date = as.Date('2020-04-01'),
api_key = key_get('meteocat')
)<- get_meteo_from('meteocat', options = api_options)
catalunya_2020 catalunya_2020
Visually:
%>%
catalunya_2020 ::drop_units() %>%
unitsmutate(month = lubridate::month(timestamp, label = TRUE)) %>%
ggplot() +
geom_sf(aes(colour = mean_temperature)) +
facet_wrap(vars(month), ncol = 4) +
scale_colour_viridis_c()
%>%
catalunya_2020 mutate(month = lubridate::month(timestamp, label = TRUE)) %>%
ggplot() +
geom_histogram(aes(x = precipitation)) +
facet_wrap(vars(month), ncol = 4)