Ciencia de Datos: Análisis Geoespacial con R
Programa del curso — 4 sesiones × 2 horas
1 Descripción general
Los datos tienen una dimensión espacial que frecuentemente se ignora en el análisis convencional. Saber dónde ocurren los fenómenos es tan importante como saber qué ocurre. Este curso enseña a trabajar con datos geoespaciales en R: desde la importación y visualización de mapas hasta el análisis de relaciones espaciales y el manejo de variables ambientales en formato raster.
A lo largo de 4 sesiones de 2 horas, los participantes aprenderán a crear mapas profesionales, realizar análisis espaciales básicos y extraer información ambiental a partir de capas raster, con aplicaciones en ecología, biología, geografía y ciencias ambientales.
El curso está dirigido a estudiantes, profesionales y científicos que trabajan con datos que tienen una componente espacial.
2 ¿Por qué análisis geoespacial en R?
R ofrece un ecosistema completo para el análisis geoespacial que compite con software especializado como ArcGIS o QGIS, con la ventaja de ser gratuito y reproducible:
sf— manejo de datos vectoriales (puntos, líneas, polígonos) con integración total contidyverseterra— procesamiento eficiente de datos raster y variables ambientalesggplot2ytmap— cartografía estática de calidad publicablemapviewyleaflet— mapas interactivos para exploración y comunicación- Reproducibilidad — todos los mapas y análisis quedan documentados en código
3 Objetivos del curso
Al finalizar el curso, los participantes serán capaces de:
- Importar, exportar y manipular datos espaciales vectoriales con
sf - Trabajar con sistemas de coordenadas y proyecciones
- Crear mapas estáticos e interactivos profesionales
- Realizar operaciones espaciales básicas: buffers, intersecciones y joins espaciales
- Importar y procesar datos raster con
terra - Extraer valores ambientales en puntos o polígonos
4 Estructura del curso
| Sesión | Pregunta práctica | Tema técnico |
|---|---|---|
| 1 | ¿Cómo trabajo con datos espaciales en R? | Datos vectoriales con sf |
| 2 | ¿Cómo hago mapas profesionales e interactivos? | Cartografía con ggplot2, tmap y mapview |
| 3 | ¿Cómo analizo relaciones espaciales? | Análisis espacial vectorial |
| 4 | ¿Cómo trabajo con variables ambientales? | Datos raster con terra |
5 Sesión 1 — ¿Cómo trabajo con datos espaciales en R?
Duración: 2 horas
Problema que resuelve: Tengo datos con coordenadas o archivos shapefile y no sé cómo cargarlos en R ni cómo manipularlos como si fueran una tabla normal.
Objetivos:
- Comprender la estructura de los datos espaciales vectoriales
- Importar y exportar distintos formatos espaciales
- Manipular datos espaciales con verbos de
dplyr - Transformar entre sistemas de coordenadas
Contenidos:
- Tipos de geometría: puntos, líneas y polígonos
- El paquete
sf: datos espaciales como data frames con geometría - Importar datos espaciales:
- Shapefiles con
st_read() - GeoPackage, GeoJSON y otros formatos
- Convertir coordenadas a
sfconst_as_sf()
- Shapefiles con
- Exportar con
st_write() - Sistemas de referencia de coordenadas (CRS):
- Geográficos vs proyectados
- EPSG codes: WGS84 (4326), CRTM05 (5367)
- Transformar con
st_transform()
- Manipulación con
dplyr:filter(),mutate(),select()sobre objetossf st_drop_geometry()— convertir a data frame convencional
Paquetes introducidos: sf
Ejercicio práctico: Importar un shapefile de Costa Rica y una tabla de registros de especies con coordenadas, convertirla a sf, asignar el CRS correcto y transformar a la proyección CRTM05.
6 Sesión 2 — ¿Cómo hago mapas profesionales e interactivos?
Duración: 2 horas
Problema que resuelve: Necesito hacer mapas claros y publicables para un artículo o informe, y también mapas interactivos para explorar mis datos o compartirlos en web.
Objetivos:
- Crear mapas estáticos con
ggplot2ytmap - Personalizar leyendas, colores y elementos cartográficos
- Generar mapas interactivos con
mapviewyleaflet
Contenidos:
- Mapas estáticos con
ggplot2:geom_sf()— geometrías espaciales en ggplot2- Colorear por variable:
aes(fill = variable) - Escalas de color:
scale_fill_viridis_c(),scale_fill_distiller() - Elementos cartográficos: norte, escala con
ggspatial - Composición de mapas con
patchwork
- Mapas temáticos con
tmap:tm_shape()+tm_polygons(),tm_dots(),tm_lines()- Modos estático e interactivo:
tmap_mode("plot")/tmap_mode("view") - Facetas con
tm_facets()
- Mapas interactivos con
mapview:mapview()— exploración rápida de capas espaciales- Combinar capas:
mapview() + mapview() - Personalizar popups y colores
- Introducción a
leafletpara mapas web personalizados
Paquetes introducidos: tmap, mapview, leaflet, ggspatial
Ejercicio práctico: Crear un mapa estático publicable de distribución de especies con ggplot2 y un mapa interactivo con mapview que permita explorar los registros por especie.
7 Sesión 3 — ¿Cómo analizo relaciones espaciales?
Duración: 2 horas
Problema que resuelve: Necesito saber qué puntos caen dentro de un polígono, qué tan lejos están mis registros de un área protegida, o combinar información de dos capas espaciales distintas.
Objetivos:
- Realizar operaciones geométricas básicas
- Ejecutar joins espaciales
- Calcular distancias y áreas
Contenidos:
- Operaciones geométricas:
st_buffer()— zonas de influencia alrededor de geometríasst_intersection()— intersección entre capasst_difference()— diferencia entre capasst_union()— unión de geometríasst_centroid()— centroides de polígonos
- Predicados espaciales:
st_intersects(),st_within(),st_contains()- Filtrar puntos dentro de polígonos
- Joins espaciales con
st_join():- Asignar atributos de polígonos a puntos
- Contar puntos por polígono
- Cálculo de distancias con
st_distance() - Cálculo de áreas con
st_area() - Simplificación de geometrías con
st_simplify()
Paquetes introducidos: funciones avanzadas de sf
Ejercicio práctico: A partir de registros de especies y capas de áreas protegidas, determinar qué registros caen dentro de áreas protegidas, calcular la distancia de cada registro al área protegida más cercana y calcular el área total de hábitat potencial.
8 Sesión 4 — ¿Cómo trabajo con variables ambientales?
Duración: 2 horas
Problema que resuelve: Tengo variables climáticas o de cobertura del suelo en formato raster y necesito visualizarlas, recortarlas a mi área de estudio y extraer valores en mis puntos de muestreo.
Objetivos:
- Importar y visualizar datos raster con
terra - Recortar y enmascarar rasters al área de estudio
- Extraer valores ambientales en puntos o polígonos
Contenidos:
- El paquete
terra:SpatRasterySpatVector - Importar rasters con
rast(): GeoTIFF, NetCDF - Propiedades del raster: resolución, extensión, CRS
- Visualización con
plot()y conggplot2viatidyterra - Operaciones básicas:
crop()— recortar al extent del área de estudiomask()— enmascarar al contorno del área de estudioproject()— reproyectar rastersresample()— cambiar resolución
- Álgebra de rasters: operaciones entre capas
- Extracción de valores:
extract()— valores en puntos o polígonos- Integración con
sfytidyverse
- Variables bioclimáticas de CHELSA: estructura y uso
- Cobertura del suelo: interpretar y extraer proporciones por celda
Paquetes introducidos: terra, tidyterra
Proyecto integrador: Cada participante selecciona una especie de su interés, descarga sus registros de GBIF o iNaturalist, los importa a R, los visualiza sobre un mapa de Costa Rica, extrae variables ambientales en cada punto de presencia y genera un reporte reproducible en Quarto con mapas estáticos e interactivos.
9 Evaluación
| Componente | Descripción | Peso |
|---|---|---|
| Ejercicios por sesión | Entregable práctico al final de cada sesión | 50% |
| Proyecto integrador | Reporte reproducible en Quarto con datos propios | 50% |
10 Requisitos
- Computadora personal con R (≥ 4.3) y RStudio (≥ 2023) instalados
- Quarto instalado (
quarto.org) - Se recomienda haber completado el Curso 1: Ciencia de Datos — Manejo y Visualización de Datos con R, o tener experiencia básica en R y
tidyverse
10.1 Instalación de paquetes
install.packages(c(
"sf",
"terra",
"tidyterra",
"tmap",
"mapview",
"leaflet",
"ggspatial",
"tidyverse",
"patchwork",
"here"
))11 Referencias
Pebesma, E. (2018). Simple Features for R: Standardized Support for Spatial Vector Data. The R Journal, 10(1), 439–446. https://doi.org/10.32614/RJ-2018-009
Hijmans, R.J. (2024). terra: Spatial Data Analysis. https://rspatial.org/terra
Lovelace, R., Nowosad, J. & Muenchow, J. (2019). Geocomputation with R. CRC Press. https://r.geocompx.org
Karger, D.N. et al. (2017). Climatologies at high resolution for the earth’s land surface areas. Scientific Data, 4, 170122. https://doi.org/10.1038/sdata.2017.122
Tennekes, M. (2018). tmap: Thematic Maps in R. Journal of Statistical Software, 84(6), 1–39. https://doi.org/10.18637/jss.035.i06