# Instala los paquetes sf y climaemet previamente
# Ejecuta una sola vez para obtener tu API key:
# aemet_api_key(apikey, overwrite = FALSE, install = FALSE)
library(climaemet)
library(ggplot2)
library(dplyr)
all_stations <- aemet_daily_clim(
start = "2021-01-08", end = "2021-01-08",
return_sf = TRUE
)
ggplot(all_stations) +
geom_sf(aes(colour = tmed), shape = 19, size = 2, alpha = 0.95) +
labs(
title = "Average temperature in Spain",
subtitle = "8 Jan 2021",
color = "Max temp.\n(celsius)",
caption = "Source: AEMET"
) +
scale_colour_gradientn(
colours = hcl.colors(10, "RdBu", rev = TRUE),
breaks = c(-10, -5, 0, 5, 10, 15, 20),
guide = "legend"
) +
theme_bw() +
theme(
panel.border = element_blank(),
plot.title = element_text(face = "bold"),
plot.subtitle = element_text(face = "italic")
)8 Visualización de datos espaciales
Para concluir los contenidos de este taller, ofrecemos información introductoria sobre la representación de datos espaciales en R. Es muy probable que esta sea, entre otras áreas, una de las que ha experimentado mayores y más potentes avances en R. No en vano, en el III Congreso y XIV Jornadas de Usuarios de R que tuvieron lugar en Sevilla (nov. 2024) se presentaron dos talleres prácticos relacionados con este ámbito:
“Machine learning approaches for working with spatial data” (Jakub Nowosad; materiales; diapositivas).
“Introducción a la cartografía con R” (Dominic Royé; materiales).
En estos apuntes tan solo vamos a introducir de manera superficial algunas de las posibilidades y herramientas que ofrece R para visualizar datos con dependencias espaciales y tareas de geocomputación. En la Sección 8.3 se pueden encontrar algunas referencias que proporcionan mucha más información y ejemplos sobre este área de aplicación.
8.1 Datos espaciales
8.1.1 Simple features
El estándar simple features es un modelo común de almacenamiento y acceso para atributos geográficos, creado principalmente para geometrías 2-D (puntos, polígonos, líneas, etc.). Permite conexión con bases de datos geográficas (e.g. PostGIS) y también con Sistemas de Información Geográfica (GIS, por sus siglas), tales como ArcGIS.
En R, el paquete sf da soporte para trabajar con datos representados según el estándar simple features. Los registros de datos espaciales se almacenan en un objeto data.frame o tibble con una columna que contiene la información de geometría a representar. Están soportados los 17 tipos de datos representables con simple features en todas las dimensiones. También tiene interfaces con sistemas externos como GEOS, s2geometry, GDAL o PRØJ para realizar multitud de operaciones sobre distintos tipos de objetos y espacios de coordenadas.
Existe un listado de operaciones soportadas por sf que resume las capacidades completas de este paquete.
En particular la función geom_sf() permite incorporar objetos espaciales geométricos gestionados mediante el paquete sf como una capa más de nuestros gráficos creados con ggplot2. También es totalmente compatible con las funciones del paquete dplyr.
8.1.2 Datos raster y cubos de datos vectoriales
- El paquete
starsofrece soporte para representación y manejo de datos raster (por ejemplo, de imágenes satelitales) así como cubos de datos vectoriales (vector datacubes), tal y como muestra la Figura 8.1.
- El paquete
terraincluye numerosas herramientas para procesado y análisis de datos espaciales, incluyendo manipulación de objetos raster.
8.1.3 Datos de España
Tenemos la enorme suerte de que en nuestro país existe una comunidad muy activa que desarrolla múltiples paquetes R con información cartográfica, datos climáticos y de otra índole, ya preparados y perfectamente integrados con el resto de paquetes populares como ggplot2. Destacan:
mapSpain: facilita la creación de mapas de diferentes niveles administrativos de España. Incluye muchas herramientas, como por ejemplo una función para representar las regiones como cuadrados o hexágonos de forma esquemática, siguiendo una idea parecida a los gráficos creados por el paquetestatebins. Estos son una alternativa simplificada a los mapas de coropletas.climaemet: permite utilizar la API de datos de la AEMET, integrándolos de forma directa en nuestro flujo de trabajo con R. Es imprescindible conseguir previamente una API KEY
airqualityES: datos diarios de medidas de calidad del aire en España en un periodo de 18 años (2001-2018), incluyendo varios agentes contaminantes. Los datos son publicados por el Gobierno de España en abierto.
8.2 Representación de datos espaciales
Dominic Royé ha creado recientemente un taller titulado Breve introducción a la cartografía con R, que muestra algunos ejemplos básicos sobre cómo manejar este tipo de datos.
Por supuesto, se pueden realizar todo tipo de representaciones más clásicas, como los mapas de coropletas en versión estática (Figura 8.5) como interactiva (Figura 8.6), utilizando la biblioteca JavaScript Leaflet.
library(tidyverse)
library(sf)
system.file("gpkg/nc.gpkg", package="sf") |>
read_sf() -> nc
nc.32119 <- st_transform(nc, 'EPSG:32119')
nc.32119 |>
select(BIR74) |>
plot(graticule = TRUE, axes = TRUE)
library(mapview) |> suppressPackageStartupMessages()
mapviewOptions(fgb = FALSE)
nc.32119 |> mapview(zcol = "BIR74", legend = TRUE, col.regions = sf.colors)8.3 Referencias para análisis de datos espaciales
Las dos fuentes principales para aprendizaje sobre procesado y análisis de datos espaciales en R son:
- Geocomputation with R (Lovelace et al., 2025).
- Spatial Data Science: With Applications in R (Pebesma & Bivand, 2023).
Además, se pueden recomendar otras referencias interesantes: