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 19 DE JUNIO DE 2024 A LAS 15:32 HORA OFICIAL PREDICCIÓN VÁLIDA PARA EL MIÉRCOLES 19

A.- FENÓMENOS SIGNIFICATIVOS Probabilidad de chubascos y tormentas localmente fuertes en litorales de Galicia y Asturias a primeras horas, y en los entornos cantábrico y pirenaico occidentales, sin descartarlos en Extremadura y Andalucía occidental, por la tarde. Intervalos de viento fuerte en litorales de Alborán y zonas expuestas de Canarias. Rissagas en Menorca.

B.- PREDICCIÓN Una DANA se acercará al oeste Peninsular propiciando una situación de inestabilidad con cielos nubosos o cubiertos en Galicia, entorno cantábrico y suroeste peninsular; también en el resto de la vertiente atlántica, alto Ebro y área pirenaica en la segunda mitad del día, predominando los cielos poco nubosos o con intervalos de nubes bajas en la primera. Se prevén precipitaciones ocasionalmente acompañadas de tormenta desde primera horas en el entorno cantábrico y norte de Galicia, sin descartarlas localmente fuertes en áreas de litoral de Asturias y Lugo, que por la tarde se extenderán al resto de la mitad oeste peninsular, así como al entorno del alto Ebro, norte de la Ibérica, Cantábrico oriental y Pirineo y aledaños al sur. Se prevén más intensas en los entornos cantábrico y pirenaico occidentales, con probabilidad de llegar a localmente fuertes, y sin descartarlo en áreas de Extremadura y Andalucía occidental. En el resto de la Península y Baleares se darán intervalos de nubes medias y altas yendo a más a lo largo del día y dejando probables precipitaciones con tormenta en áreas del tercio este, sin descartarlas en Baleares. Intervalos de nubes en los nortes y este del archipiélago canario, sin descartar precipitaciones débiles dispersas en las islas montañosas, y poco nuboso en el resto.

Se prevé la presencia de calima en Baleares y rissagas en Menorca.

Las temperaturas descenderán de forma prácticamente generalizada, acusadamente en interiores de la mitad oriental peninsular, y con algunos aumentos en litorales del Levante, fachada atlántica gallega, meseta Norte y norte de Baleares.

Predominarán los vientos de componente norte en Galicia y vertiente cantábrica, de sur y este en la mitad norte del área mediterránea y nordeste peninsular, y de sur y oeste en el resto. Se prevén intervalos de fuerte en litorales de Alborán, que no se descartan en los del oeste de Galicia. Alisio en Canarias, con intervalos de fuerte en los canales entre islas.


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