# 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)

    # 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 18 DE ENERO DE 2024 A LAS 08:46 HORA OFICIAL PREDICCIÓN VÁLIDA PARA EL JUEVES 18

A.- FENÓMENOS SIGNIFICATIVOS Intervalos de viento fuerte en zonas de la mitad oriental y tercio noroeste de la Península y en Baleares. En Canarias, probabilidad de precipitaciones localmente fuertes en las islas occidentales.

B.- PREDICCIÓN Cielos nubosos o cubiertos y con precipitaciones en el norte de Galicia, área Cantábrica y la vertiente atlántica peninsular, más débiles y dispersas al principio, y que se intensificarán por la tarde-noche. Intervalos nubosos en el resto de la Península y Baleares, con posibilidad de algunas precipitaciones débiles, que no llegarán al litoral mediterráneo ni a Baleares. En Canarias, intervalos nubosos, con posibilidad de alguna precipitaciones débiles, que se intensificarán según avance el día en el extremo occidental con probabilidad de que sean localmente fuertes en las vertientes norte y oeste de La Palma y El Hierro.

Cota de nieve en la Península: 1800/2000 m en el extremo norte, descendiendo a 1000/1300 m; unos 1800/2000 m en la zona centro; y unos 2000/2300 m en el sur.

Las temperaturas descenderán en el tercio norte peninsular, y con pocos cambios en el resto. Heladas en las montañas del extremo norte, más intensas en Pirineos.

Vientos del suroeste de madrugada en la Península y Baleares, con intervalos fuertes en zonas de la mitad oriental y tercio noroeste de la Península y en Baleares. A lo largo del día tenderán a aflojar, y girando al noreste en Galicia y Cantábrico. Flojos o moderados de dirección variable en el extremo noreste peninsular y Canarias.

## 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)

    # 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