Extending climaemet

climaemet provides functions for selected endpoints from the AEMET API tool. However, the package does not cover every API capability.

For that reason, get_data_aemet() allows access to any API endpoint. Users need to parse endpoint-specific results themselves.

library(climaemet)

Example: normalized text

Some API endpoints, such as predicciones-normalizadas-texto, return plain natural language text. climaemet does not parse these results, but you can retrieve them directly:

# Endpoint: today's 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 UTF-8 string.
# Produce a result.

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

cat("<blockquote>", clean, "</blockquote>", sep = "\n")

AGENCIA ESTATAL DE METEOROLOGÍA PREDICCIÓN GENERAL PARA ESPAÑA DÍA 02 DE JUNIO DE 2026 A LAS 07:41 HORA OFICIAL PREDICCIÓN VÁLIDA PARA EL MARTES 2

A.- FENÓMENOS SIGNIFICATIVOS Chubascos y tormentas localmente fuertes en el Pirineo oriental. Temperaturas máximas en descenso acusado y generalizado en casi toda la Península, salvo en el área mediteránea donde subirán, siendo este ascenso localmente notable en el extremo sureste y costa del Sol. Se podrán superar los 36-38 grados en puntos del Guadalquivir y Costa del Sol, y los 38-40 en el extremo sureste peninsular.

B.- PREDICCIÓN El paso de un frente por el norte dejará tras de sí una masa de aire más fresca en casi toda la Península, a excepción del sur y sureste, donde las temperaturas máximas serán muy altas. En el extremo norte, debido al frente predominarán los cielos nubosos o cubiertos, que dejarán precipitaciones débiles y dispersas. En el Pirineo oriental, a partir del mediodía, se esperan chubascos y tormentas localmente fuertes y con posible granizo. También podrían darse algún chubasco o tormenta aislada en la Ibérica oriental. En cuanto al resto de la Península y Baleares, los cielos estarán poco nubosos o con intervalos de nubes altas. En Canarias, se prevén cielos nubosos en el norte, con alguna precipitación débil en las islas montañosas, y poco nubosos o despejados en el sur.

Las temperaturas máximas descenderán de forma generalizada y acusada en la casi toda la Península, de forma notable (más de 6 grados) en regiones del tercio norte. La excepción será el área mediterránea, donde las máximas subirán, incluso de forma notable en el extremo sureste y Costa del Sol. En cuanto a las mínimas, aumentarán en el litoral cantábrico y el cuadrante sureste, bajarán en los Pirineos y sufrirán pocos cambios en el resto. En Baleares se esperan ligeros ascensos térmicos y en Canarias habrá pocas variaciones. Durante el día, es probable superar los 36-38 grados en el Guadalquivir y puntos de Alborán y los 38-40 grados en el extremo sureste. Además, se registrarán noches tropicales (sin bajar de los 20 grados) en el centro, el tercio sur y el litoral mediterráneo. En las cumbres de los Pirineos se producirán heladas.

Se espera viento moderado de componentes oeste y norte en la Península, con intervalos fuertes y posibles rachas muy fuertes de poniente en el Estrecho y Alborán, y, a últimas horas, de tramontana en Ampurdán y de cierzo en el bajo Ebro. En Canarias, el alisio podrá venir acompañado de intervalos fuertes y probables rachas muy fuertes en zonas expuestas.

Example: maps

AEMET also provides map data, usually in image/gif format. You can retrieve this kind of data directly:

# Map endpoint.
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> bytes. See also `base::writeBin()`.

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

# Display in the vignette. It may be rotated.
knitr::include_graphics(giffile)
Example: surface analysis map provided by AEMET

Example: surface analysis map provided by AEMET