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


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

``` r


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