Skip to contents

Client tool to get data and metadata from AEMET and convert json to tibble.

Usage

get_data_aemet(apidest, verbose = FALSE)

get_metadata_aemet(apidest, verbose = FALSE)

Arguments

apidest

Character string as destination URL. See https://opendata.aemet.es/dist/index.html.

verbose

Logical TRUE/FALSE. Provides information about the flow of information between the client and server.

Value

A tibble (if possible) or the results of the query as provided by httr2::resp_body_raw() or httr2::resp_body_string().

See also

Some examples on how to use these functions on vignette("extending-climaemet").

Examples

# Run this example only if AEMET_API_KEY is detected

url <- "/api/valores/climatologicos/inventarioestaciones/todasestaciones"

get_data_aemet(url)
#> Error in httr2::req_perform(req1): Failed to perform HTTP request.
#> Caused by error in `curl::curl_fetch_memory()`:
#> ! Failure when receiving data from the peer [opendata.aemet.es]: Recv failure: Connection was reset


# Metadata

get_metadata_aemet(url)
#> Error in httr2::req_perform(req1): Failed to perform HTTP request.
#> Caused by error in `curl::curl_fetch_memory()`:
#> ! Failure when receiving data from the peer [opendata.aemet.es]: Recv failure: Connection was reset

# We can get data from any API endpoint

# Plain text

plain <- get_data_aemet("/api/prediccion/nacional/hoy")
#> 
#> Results are MIME type: text/plain
#> Returning data as string

cat(plain)
#> AGENCIA ESTATAL DE METEOROLOGÍA


#> PREDICCIÓN GENERAL PARA ESPAÑA 


#> DÍA 10 DE FEBRERO DE 2025 A LAS 08:10 HORA OFICIAL


#> PREDICCIÓN VÁLIDA PARA EL LUNES 10


#> 


#> A.- FENÓMENOS SIGNIFICATIVOS


#> Aumento notable de las temperaturas mínimas en Pirineos.


#> 


#> B.- PREDICCIÓN


#> Este día se espera que la Península siga bajo un flujo


#> atlántico que afecte a la mitad norte peninsular. Así se esperan


#> cielos nubosos y precipitaciones débiles o moderadas en la mitad


#> norte, menos probables en el extremo nordeste peninsular, y sin


#> descartar que sean localmente fuertes y vengan acompañadas de


#> tormenta. Serán en forma de nieve en montañas del tercio norte


#> con la cota por encima de 1600 m. En el resto de la Península y


#> en Baleares, nubes altas con intervalos de nubes bajas y alguna


#> llovizna en el Estrecho. En Canarias se esperan intervalos nubosos


#> sin precipitaciones, salvo en La Palma, donde se esperan débiles.


#> 


#> Posibles brumas y bancos de niebla matinales en amplias zonas de


#> la vertiente atlántica, que serán espesas en la meseta norte.


#> Calima débil en Canarias.


#> 


#> Las temperaturas máximas aumentarán en el norte de la


#> Península, mientras que en el resto del territorio no se darán


#> cambios significativos. Las mínimas aumentarán en la Península


#> de forma casi generalizada, localmente notable en Pirineos, sin


#> cambios en Galicia y en los archipiélagos. Las heladas seguirán


#> retrocediendo y afectarán a zonas montañosas del noreste,


#> localmente moderadas en Pirineos y sin descartarlas en otros


#> sistemas montañosos.


#> 


#> Se esperan vientos flojos de dirección variable en el interior


#> peninsular con predominio de la componente sur. Vientos moderados


#> con algún intervalo fuerte en los litorales, del este en el


#> Cantábrico, Estrecho y Alborán y del sur en Galicia y en el


#> resto del Mediterráneo. En Canarias soplarán flojos del este,


#> tendiendo al final a alisios moderados en las islas orientales.


#> 



# An image

image <- get_data_aemet("/api/mapasygraficos/analisis")
#> Error in httr2::req_perform(req1): Failed to perform HTTP request.
#> Caused by error in `curl::curl_fetch_memory()`:
#> ! Failure when receiving data from the peer [opendata.aemet.es]: Recv failure: Connection was reset

# Write and read
tmp <- tempfile(fileext = ".gif")

writeBin(image, tmp)
#> Error in writeBin(image, tmp): can only write vector objects

gganimate::gif_file(tmp)
#> Error in shell.exec(url): 'C:\Users\RUNNER~1\AppData\Local\Temp\Rtmp8MSFSw\file4e853042750.gif' not found