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


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


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


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