Ciencia de Datos: Análisis Geoespacial con R

Programa del curso — 4 sesiones × 2 horas

Autor/a

Manuel Spínola

Fecha de publicación

29 de mayo de 2026

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 con tidyverse
  • terra — procesamiento eficiente de datos raster y variables ambientales
  • ggplot2 y tmap — cartografía estática de calidad publicable
  • mapview y leaflet — 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 sf con st_as_sf()
  • 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 objetos sf
  • 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 ggplot2 y tmap
  • Personalizar leyendas, colores y elementos cartográficos
  • Generar mapas interactivos con mapview y leaflet

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 leaflet para 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ías
    • st_intersection() — intersección entre capas
    • st_difference() — diferencia entre capas
    • st_union() — unión de geometrías
    • st_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: SpatRaster y SpatVector
  • Importar rasters con rast(): GeoTIFF, NetCDF
  • Propiedades del raster: resolución, extensión, CRS
  • Visualización con plot() y con ggplot2 via tidyterra
  • Operaciones básicas:
    • crop() — recortar al extent del área de estudio
    • mask() — enmascarar al contorno del área de estudio
    • project() — reproyectar rasters
    • resample() — cambiar resolución
  • Álgebra de rasters: operaciones entre capas
  • Extracción de valores:
    • extract() — valores en puntos o polígonos
    • Integración con sf y tidyverse
  • 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