Client tool to get data and metadata from AEMET and convert json to
tibble
.
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