# 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 24 DE JUNIO DE 2025 A LAS 08:53 HORA OFICIAL PREDICCIÓN VÁLIDA PARA EL MARTES 24

A.- FENÓMENOS SIGNIFICATIVOS Tormentas y chubascos localmente fuertes o muy fuertes con granizo y rachas muy fuertes en el centro y tercio norte peninsular. Temperaturas máximas significativamente elevadas en zonas de la mitad oriental peninsular y Baleares.

B.- PREDICCIÓN Se espera un día marcado por el paso de una dana por el oeste de la península. Se espera abundante nubosidad de evolución con chubascos acompañados de tormentas en amplias zonas de la Península, siendo poco probables en mitad sudeste y sin esperarlos en los litorales del este peninsular y Baleares. Éstas se prevén acompañadas de chubascos fuertes o muy fuertes, con granizo que podría ser grande y rachas muy fuertes. Aunque se espera que se extiendan por amplias zonas del centro y tercio norte, serían las zonas más adversas el sistema Central, meseta norte y entorno de la cordillera Cantábrica. En el Cantábrico y el norte de Galicia, los cielos permanecerán nubosos durante la mayor parte del día. En Canarias, cielos poco nubosos o despejados al sur y nubosos al norte.

Probables brumas y bancos de niebla matinales en Galicia y Cantábrico. Entrada de calima en Alborán y el sudoeste peninsular, que podría dar lugar a lluvia de barro.

Se prevé que las temperaturas máximas asciendan en el norte de Galicia y el Cantábrico, incluso de forma notable en la mitad oriental; no se esperan cambios en el nordeste ni en los archipiélagos, descendiendo en el resto, de forma incluso notable en la mitad oeste. Aún así, se espera superar los 34-36 en el este de Andalucía, Baleares y en el sudeste y el nordeste peninsular. Incluso alcanzarán los 38-40 en valles del nordeste y del este de Andalucía. Las mínimas en ascenso ligero en el tercio norte y en descenso en la mitad oeste. Sin cambios significativos, ni en el resto de la Península, ni en las islas.

Soplarán vientos flojos en la Península y Baleares, algo más intensos en litorales del nordeste en el Cantábrico y Galicia y en el sudeste. Predominio de la componente este en Baleares y mitad este peninsular, de poniente en el Estrecho y de sur en el resto. En Canarias, alisios con intervalos de fuerte y rachas muy fuertes en zonas expuestas.

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