---
title: "Extending climaemet"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Extending climaemet}
  %\VignetteEncoding{UTF-8}
  %\VignetteEngine{knitr::rmarkdown}
resource_files:
   - vignettes/example-gif.gif
---

<!-- extending-climaemet.Rmd is generated from extending-climaemet.Rmd.orig. Please edit that file -->



**climaemet** provides several functions for accessing a selection of endpoints
of the [AEMET API tool](https://opendata.aemet.es/dist/index.html?). 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.


``` r
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:


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



``` r

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


``` r
# 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 28 DE AGOSTO DE 2024 A LAS 08:21 HORA OFICIAL
PREDICCIÓN VÁLIDA PARA EL MIÉRCOLES 28

A.- FENÓMENOS SIGNIFICATIVOS
Temperaturas elevadas en zonas de la meseta Sur, depresiones del
nordeste y valle del Guadalquivir. Tormentas localmente fuertes en
la montaña turolense.

B.- PREDICCIÓN
Un frente atlántico se aproximará al noroeste peninsular,
dejando cielos nubosos en Galicia y Cantábrico occidental, sin
descartar precipitaciones débiles, más probables e intensas en
el norte de la comunidad gallega. También se prevé nubosidad
baja matinal en zonas del área mediterránea y el Estrecho. En el
resto de la Península y Baleares empezará poco nuboso,
aumentando a nubes medias y altas por el oeste y el sur. Por la
tarde se formarán nubes de evolución en el centro e interiores
del tercio oriental, sin descartar chubascos o tormentas aislados,
más probables e intensos en el sistema Ibérico y Pirineo
oriental, esperándose localmente fuertes en la Ibérica de
Teruel. En Canarias se esperan cielos nubosos desplazándose de
oeste a este, predominantemente de nubes medias y altas, sin
descartar chubascos aislados en las islas montañosas.

Llegará calima por el tercio sur de la Península y Alborán, sin
descartar que se extienda con menor intensidad por el resto de la
mitad sur. Probables nieblas matinales en el extremo norte, zonas
del Mediterráneo y el Estrecho.

Las temperaturas máximas descenderán en el Cantábrico y oeste
de Andalucía y aumentarán en el oeste de Galicia, este de
Andalucía y zonas del centro y nordeste. Se superarán los 36
grados en depresiones de la vertiente atlántica sur y zonas del
medio Ebro, incluso los 38 en puntos del Guadalquivir, Guadiana y
Tajo. Las mínimas en ascenso en el nordeste y centro norte y en
descenso en interiores del oeste.

Soplará alisio moderado en Canarias con algunas rachas o
intervalos fuertes en zonas expuestas. Componente este en el área
mediterráneas y tercio oriental, con intervalos de fuerte en el
Estrecho y litoral almeriense. Tenderá a componentes norte y este
en litorales gallegos, con intervalos de fuerte en Rías Baixas.
En el resto de zonas los vientos serán variables, flojos en
general y más intensos en litorales, tendiendo a sudoeste en el
cuadrante sudoeste.

 
---

## Example: Maps

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


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



``` r

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

<div class="figure">
<img src="example-gif.gif" alt="Example: Surface analysis map provided by AEMET" width="100%" />
<p class="caption">Example: Surface analysis map provided by AEMET</p>
</div>
