Skip to contents

[Experimental] Get current meteorological alerts.

Usage

aemet_alerts(
  ccaa = NULL,
  lang = c("es", "en"),
  verbose = FALSE,
  return_sf = FALSE,
  extract_metadata = FALSE,
  progress = TRUE
)

Source

https://www.aemet.es/en/eltiempo/prediccion/avisos and https://www.aemet.es/es/eltiempo/prediccion/avisos/ayuda for API status and alerts reference, including Annex 2 and Annex 3 documentation.

Arguments

ccaa

Character vector with names for autonomous communities or NULL to get all autonomous communities.

lang

Language of the results. It can be "es" (Spanish) or "en" (English).

verbose

Logical. If TRUE, provides information about the flow of information between the client and server.

return_sf

Logical. If TRUE, the function returns an sf spatial object. If FALSE (the default value), it returns a tibble. The sf package must be installed.

extract_metadata

Logical. If TRUE, the output is a tibble with the description of the fields. See also get_metadata_aemet().

progress

Logical. Displays a cli::cli_progress_bar() object. If verbose = TRUE, it will not be displayed.

Value

A tibble or a sf object.

Examples

# Display CCAA names.
library(dplyr)
aemet_alert_zones() |>
  select(NOM_CCAA) |>
  distinct()
#> # A tibble: 19 × 1
#>    NOM_CCAA                  
#>    <chr>                     
#>  1 Andalucía                 
#>  2 Aragón                    
#>  3 Principado de Asturias    
#>  4 Illes Balears             
#>  5 Canarias                  
#>  6 Cantabria                 
#>  7 Castilla y León           
#>  8 Castilla - La Mancha      
#>  9 Cataluña                  
#> 10 Extremadura               
#> 11 Galicia                   
#> 12 Comunidad de Madrid       
#> 13 Región de Murcia          
#> 14 Comunidad Foral de Navarra
#> 15 País Vasco                
#> 16 La Rioja                  
#> 17 Comunitat Valenciana      
#> 18 Ciudad de Ceuta           
#> 19 Ciudad de Melilla         

# Base map
cbasemap <- mapSpain::esp_get_ccaa(ccaa = c(
  "Galicia", "Asturias", "Cantabria",
  "Euskadi"
))

# Alerts
alerts_north <- aemet_alerts(
  ccaa = c("Galicia", "Asturias", "Cantabria", "Euskadi"),
  return_sf = TRUE
)
#>  No current alerts for the selected `ccaa` values.

# Plot if there are alerts.
if (inherits(alerts_north, "sf")) {
  library(ggplot2)
  library(lubridate)

  alerts_north$day <- date(alerts_north$effective)

  ggplot(alerts_north) +
    geom_sf(data = cbasemap, fill = "grey60") +
    geom_sf(aes(fill = `AEMET-Meteoalerta nivel`)) +
    geom_sf(
      data = cbasemap, fill = "transparent", color = "black",
      linewidth = 0.5
    ) +
    facet_grid(vars(`AEMET-Meteoalerta fenomeno`), vars(day)) +
    scale_fill_manual(values = c(
      "amarillo" = "yellow", naranja = "orange",
      "rojo" = "red"
    ))
}