Extending climaemet

climaemet provides several functions for accessing a selection of endpoints of the AEMET API tool. However, this package does not cover in full all the capabilities of the API.

For that reason, we provide the get_data_aemet() function, that allows to access any API endpoint freely. The drawback is that the user would need to handle the results by him/herself.

library(climaemet)

Example: Normalized text

Some API endpoints, as predicciones-normalizadas-texto, provides the results as plain text on natural language. These results are not parsed by climaemet, but can be retrieved as this:

# endpoint, today forecast

today <- "/api/prediccion/nacional/hoy"

# Metadata
knitr::kable(get_metadata_aemet(today))
unidad_generadora descripcion periodicidad formato copyright notaLegal
Grupo Funcional de Predicción de Referencia Predicción general nacional para hoy / mañana / pasado mañana / medio plazo (tercer y cuarto día) / tendencia (del quinto al noveno día) Disponibilidad. Para hoy, solo se confecciona si hay cambios significativos. Para mañana y pasado mañana diaria a las 15:00 h.o.p.. Para el medio plazo diaria a las 16:00 h.o.p.. La tendencia, diaria a las 18:30 h.o.p. ascii/txt © AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma. https://www.aemet.es/es/nota_legal

# Data
pred_today <- get_data_aemet(today)
#> 
#> Results are MIME type: text/plain
#> Returning data as string
# Produce a result

clean <- gsub("\r", "\n", pred_today, fixed = TRUE)
clean <- gsub("\n\n\n", "\n", clean, fixed = TRUE)

cat(paste("---\n\n", clean, "\n---"))

AGENCIA ESTATAL DE METEOROLOGÍA PREDICCIÓN GENERAL PARA ESPAÑA DÍA 31 DE ENERO DE 2024 A LAS 07:51 HORA OFICIAL PREDICCIÓN VÁLIDA PARA EL MIÉRCOLES 31

A.- FENÓMENOS SIGNIFICATIVOS Intervalos de viento fuerte en el Estrecho, con rachas muy fuertes. Temperaturas elevadas para la época. Nieblas matinales en ambas mesetas, entorno del Ebro y Galicia.

B.- PREDICCIÓN Seguiremos bajo el dominio de las altas presiones en la mayor parte del país con cielos poco nubosos, y algunos intervalos de nubes medias y altas en la mitad noroeste. Asimismo se espera abundante nubosidad baja matinal en amplias zonas de la vertiente mediterránea, ambas mesetas, Galicia, litorales cantábricos, Baleares, Alborán y áreas de Andalucía occidental, que en general tenderán a levantar para quedar poco nuboso. Perdurarán los intervalos de nubes bajas en el entorno del Estrecho, donde se producirá alguna llovizna, y no se descarta, igualmente, al norte del cabo de la Nao. También se espera algún intervalo de nubes de evolución en el norte de Tenerife, con baja probabilidad de algún chubasco ocasional.

Se prevén brumas y nieblas matinales en ambas mesetas, áreas del nordeste y Galicia; con entrada de calima por la tarde en Canarias.

Las temperaturas máximas no experimentarán grandes cambios, con aumentos en zonas de interior del este peninsular, oeste de Galicia y alto Ebro, y descensos en las Canarias orientales y zonas de la meseta Norte y depresiones del nordeste donde las nieblas sean más persistentes. Predominarán los descensos de las mínimas en buena parte del este y nordeste peninsular, Baleares y oeste de Galicia, sin grandes cambios en el resto. Pese a los descensos, seguirán siendo elevadas en la mayor parte del país, con heladas únicamente en valles de Pirineos y del sistema Ibérico, y, de forma dispersa, en otros valles de zonas de montaña de la mitad norte, así como en la meseta Norte.

Soplarán vientos de componente este en la mitad sur del área mediterránea llegando a fuerte en el Estrecho. En Canarias, flojos del nordeste en las islas occidentales, moderados del sudeste en las islas orientales. En el resto se espera un viento flojo variable o en calma, con predominio de la componente sur en el norte y noroeste peninsular, y la este en el resto.


Example: Maps

AEMET also provides map data, usually on image/gif format. One way to get this kind of data is as follows:

# Endpoint of a map
a_map <- "/api/mapasygraficos/analisis"

# Metadata
knitr::kable(get_metadata_aemet(a_map))
unidad_generadora descripción periodicidad formato copyright notaLegal
Grupo Funcional de Jefes de Turno Mapas de análisis de frentes en superficie Dos veces al día, a las 02:00 y 14:00 h.o.p. en invierno y a las 03:00 y 15:00 en verano. image/gif © AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma. https://www.aemet.es/es/nota_legal

the_map <- get_data_aemet(a_map)
#> 
#> Results are MIME type: image/gif
#> Returning raw data


# Write as gif and include it
giffile <- "example-gif.gif"
writeBin(the_map, giffile)

# Display on the vignette
knitr::include_graphics(giffile)
Example: Surface analysis map provided by AEMET

Example: Surface analysis map provided by AEMET