Get started with climaemet 1.0.0

Since the last release, this package has been integrated into rOpenSpain, a community of R enthusiasts whose ultimate goal is to create high-quality R packages for data mining public Spanish open sources.

From version 1.0.0 onward, we have introduced some improvements and (breaking) changes on the package, in order to provide a smoother interaction with the AEMET API service.

API Key

Get your API Key

To be able to download data from AEMET you will need a free API key which you can get at https://opendata.aemet.es/centrodedescargas/obtencionAPIKey

Once that you have your API Key, you can use any of the following methods:

a. Set API Key with aemet_api_key()

This is the recommended option. Just type:

aemet_api_key("YOUR_API_KEY", install = TRUE)

Using install = TRUE ensures that the API key is stored on your local computer and it would be reloaded every time you load the library. From now on you can forget about API keys!

b. Use an environment variable

This is a temporary alternative. You can set your API key as an environment variable

Sys.setenv(AEMET_API_KEY = "YOUR_API_KEY")

Note that this is only valid for the current session. You would need to re-run this command each time you restart your session.

c. Modify your .Renviron file

This stores your API key permanently on your machine. You can start editing your .Renviron running this command:

usethis::edit_r_environ()

Now you can add the following line to you .Renviron file:

AEMET_API_KEY = YOUR_API_KEY

New features

tibble format

From v1.0.0 onward, climaemet provides its results in tibble format. Also, the functions try to guess the correct format of the fields (i.e. something as a Date/Hour now is an hour, numbers are parsed as double, etc.).

See how a tibble is displayed:

# See a tibble in action

aemet_last_obs("9434")
#> # A tibble: 13 × 25
#>    idema   lon fint                 prec   alt  vmax    vv    dv   lat  dmax ubi        pres    hr
#>    <chr> <dbl> <dttm>              <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>     <dbl> <dbl>
#>  1 9434  -1.00 2024-12-07 19:00:00   0     249  14     8.3   317  41.7   323 ZARAGOZA…  993.    66
#>  2 9434  -1.00 2024-12-07 20:00:00   0     249  15.3   5.9   321  41.7   315 ZARAGOZA…  993.    74
#>  3 9434  -1.00 2024-12-07 21:00:00   0     249  15.7  10     310  41.7   290 ZARAGOZA…  993.    70
#>  4 9434  -1.00 2024-12-07 22:00:00   0     249  15.6   9     311  41.7   315 ZARAGOZA…  993.    74
#>  5 9434  -1.00 2024-12-07 23:00:00   0     249  13     6.9   310  41.7   310 ZARAGOZA…  993.    78
#>  6 9434  -1.00 2024-12-08 00:00:00   0     249  13.3   8.7   308  41.7   308 ZARAGOZA…  992.    78
#>  7 9434  -1.00 2024-12-08 01:00:00   0     249  13.3   7.9   297  41.7   320 ZARAGOZA…  992.    73
#>  8 9434  -1.00 2024-12-08 02:00:00   0     249  13.7   8.9   298  41.7   308 ZARAGOZA…  991.    69
#>  9 9434  -1.00 2024-12-08 03:00:00   0     249  15.1  10.7   299  41.7   298 ZARAGOZA…  991     65
#> 10 9434  -1.00 2024-12-08 04:00:00   0     249  16.3   9.2   298  41.7   308 ZARAGOZA…  991.    74
#> 11 9434  -1.00 2024-12-08 05:00:00   0     249  17.1  12.4   309  41.7   300 ZARAGOZA…  990.    75
#> 12 9434  -1.00 2024-12-08 06:00:00   0     249  18     5.9   297  41.7   305 ZARAGOZA…  991.    86
#> 13 9434  -1.00 2024-12-08 07:00:00   0.6   249  17     5.1   320  41.7   330 ZARAGOZA…  992.    91
#> # ℹ 12 more variables: stdvv <dbl>, ts <dbl>, pres_nmar <dbl>, tamin <dbl>, ta <dbl>,
#> #   tamax <dbl>, tpr <dbl>, stddv <dbl>, inso <dbl>, tss5cm <dbl>, pacutp <dbl>, tss20cm <dbl>

Note that when possible, data representing dates and numbers are converted to the right format.

Spatial objects: sf

Another major change in v1.0.0 is the ability of return information on spatial sf format, using return_sf = TRUE. The coordinate reference system (CRS) used is EPSG 4326, that correspond to the World Geodetic System (WGS) and return coordinates in latitude/longitude (unprojected coordinates):

# You would need to install `sf` if not installed yet
# run install.packages("sf") for installation

library(ggplot2)
library(dplyr)

all_stations <- aemet_daily_clim(
  start = "2021-01-08", end = "2021-01-08",
  return_sf = TRUE
)


ggplot(all_stations) +
  geom_sf(aes(colour = tmed), shape = 19, size = 2, alpha = 0.95) +
  labs(
    title = "Average temperature in Spain",
    subtitle = "8 Jan 2021",
    color = "Max temp.\n(celsius)",
    caption = "Source: AEMET"
  ) +
  scale_colour_gradientn(
    colours = hcl.colors(10, "RdBu", rev = TRUE),
    breaks = c(-10, -5, 0, 5, 10, 15, 20),
    guide = "legend"
  ) +
  theme_bw() +
  theme(
    panel.border = element_blank(),
    plot.title = element_text(face = "bold"),
    plot.subtitle = element_text(face = "italic")
  )
Example: Temperature in Spain

Example: Temperature in Spain

Further enhancements

Other enhancements included on the v1.0.0:

  • All the functions are now vectorized.
  • New function get_metadata_aemet().
  • New function ggclimat_walter_lieth(). This function is now the default for climatogram_* functions Experimental. Old behavior can be reproduced with options ggplot2 = FALSE.
  • Plot functions gains new parameters (verbose and ...). Now it is possible to pass colors to the plotting functions.
  • New example datasets: climaemet::climaemet_9434_climatogram, climaemet::climaemet_9434_temp and climaemet::climaemet_9434_wind.