R y GIS: qué es R y su relación con los SIG

R es un entorno de software libre y lenguaje de programación para realizar análisis estadístico. Se trata de uno de los lenguajes de programación más utilizados en investigación por la comunidad estadística.

Consiste en un lenguaje de programación y en un entorno de ejecución con gráficos, un depurador, acceso a ciertas funciones del sistema y la capacidad de ejecutar programas almacenados en archivos de script.

Puede ejecutarse en una amplia variedad de plataformas: Linux, Windows y MacOS.

El proyecto data de 1997 y se encuentra bajo la Licencia Pública General (GPL por sus siglas en inglés) del proyecto colaborativo de software libre GNU.

R y RStudio

La interfaz del núcleo R es una ventana de línea de comandos que proporciona una excelente flexibilidad y control, pero no es fácil trabajar de este modo.

Los scripts son usualmente utilizados a través de IDEs (Integrated Development Environment o entorno de desarrollo integrado), el líder es RStudio.

RStudio es un entorno de desarrollo integrado (IDE) para programar en R.

R y GIS

La relación entre R y los Sistemas de Información Geográfica es larga. R se ha utilizado para el análisis de datos espaciales desde los primeros días de R. Iniciado por Roger Bivand, los esfuerzos estructurados de la comunidad comenzaron en 2003 en un taller previo a la conferencia durante el DSC2003.

Algunas características de R aplicado a SIG son:

  • Clases para datos espaciales.
  • Lectura y escritura de datos espaciales.
  • Análisis de patrones de puntos.
  • Geoestadística.
  • Regresión espacial.
  • Análisis ecológico.
  • Algoritmos de procesamiento ráster.
  • Detección remota.
  • Teledetección y LiDAR.

Paquetes de R para trabajar con datos espaciales

Gracias al código abierto se han desarrollado paquetes modulares (actualmente + de 13.500), que son complementos para temas específicos por la comunidad de desarrolladores.

En R existen cientos de paquetes que se pueden emplear para manejar información geográfica, destacamos algunos:

  • Datos vectoriales: mediante el paquete sf y el paquete sp.
  • Datos ráster: mediante el paquete raster y stars.
  • rgdal o maptools: se trata de un conjunto de herramientas pagar gestionar datos geográficos. Útiles por ejemplo para importar archivos shapefile.
  • maps: para visualizar mapas.
  • whiteboxR: Este repositorio incluye 400 herramientas para realizar análisis geoespacial. Es la  interfaz de R del programa de línea de comandos WhiteboxTools. Incluye herramientas para trabajar con teledetección y LiDAR. Más info aquí: https://github.com/giswqs/whiteboxR

El paquete sf – Simple Features for R

El paquete sf representa los objetos geográficos como objetos nativos de R utilizando estructuras de datos simples (listas, matrices, vectores…). Se trata de un paquete que proporciona acceso a Simple Features para R.

  • Todas las funciones y métodos del paquete sf que emplean datos espaciales tienen el prefijo st_, que se refiere a espacial y temporal (al igual que en PostGIS).
  • Los objetos geográficos son data.frames o tibbles con una columna de geometrías.
  • Representa de forma nativa en R los 17 tipos de objetos geográficos simples para todas las dimensiones (XY, XYZ, XYM, XYZM)
  • Interfaces a GEOS para soportar el modelo topológico DE9-IM.
  • Se conecta a GDAL, es compatible con todas las opciones de controlador, columnas de fecha (Date)  y fecha y hora (DateTime) (POSIXct) y transformaciones del sistema de coordenadas de  referencia a través de PROJ.
  • Utiliza serializaciones WKB (well-know-binary conocidas escritas en C++/Rcpp para fast I/O con GDAL y GEOS.
  • Lee y escribe directamente en bases de datos espaciales como PostGIS usando DBI.
R y GIS - paquete sf
(Illustration (c) by Allison Horst)

El paquete sp

Clases y métodos para datos espaciales; el documento de clases donde reside la información espacial, para datos 2D o 3D. S. Las  funciones que se proporcionan son: imprimir  datos como mapas, selección espacial, métodos para recuperar coordenadas, subconjuntos, impresión, resumen, etc.

Es un paquete muy extendido y se integra con muchos otros paquetes, incluyendo el paquete raster.

Sin embargo el paquete sf es más fácil de aprender y reemplazará paulatinamente a sp, por lo que se recomienda utilizar el paquete sf. Ya hay páginas web para realizar la migración.

El paquete raster

El paquete raster permite manejar datos ráster con el objeto de clase RasterLayer. El raster se obtiene a partir de una matriz que contiene los valores de cada celda.

En la última década, el paquete de R raster ha sido un claro dominante como paquete principal para el análisis raster: potente, flexible y escalable. Su modelo de datos es el de un ráster 2D o un conjunto de capas ráster.

El paquete stars

Muchos de los datos raster disponibles en la actualidad son dinámicos y vienen como series temporales de ráster para diferentes temas.

Los datos raster recientes, como las imágenes de satélite, modelos climáticos o los datos de pronóstico del tiempo, que no caben en el almacenamiento local necesitan otro tipo de tratamiento. Existe un paquete para el análisis raster, denominado stars que:

  1. Permite representar pilas dinámicas de raster, además de las rejillas regulares, giradas, cortadas, rectilíneas y rasters curvilíneos.
  2. Proporciona una estrecha integración con el paquete sf.
  3. Sigue los principios de diseño tidyverse.
  4. Pretende ser escalable, también más allá del tamaño del disco local.
  5. Proporciona una mayor integración de las nuevas características de GDAL que otros paquetes de R.

Ejemplo de creación de un mapa con R

library(tidyverse)
#> ── Attaching packages ────────────────────────────────── tidyverse 1.2.1 ──
#> ✔ ggplot2 3.1.0          ✔ purrr   0.2.5.9000
#> ✔ tibble  2.0.0          ✔ dplyr   0.8.0.9000
#> ✔ tidyr   0.8.2          ✔ stringr 1.3.1     
#> ✔ readr   1.2.1          ✔ forcats 0.3.0
#> ── Conflicts ───────────────────────────────────── tidyverse_conflicts() ──
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag()    masks stats::lag()
library(sf)
#> Linking to GEOS 3.7.0, GDAL 2.3.2, PROJ 5.2.0
system.file("gpkg/nc.gpkg", package="sf") %>%
    read_sf() %>%
    st_transform(32119) %>%
    select(BIR74) %>%
    plot(graticule = TRUE, axes = TRUE)
Fuente: https://keen-swartz-3146c4.netlify.com/intro.html#a-first-map

Integración de R con QGIS

RQGIS3 establece una interfaz entre R y QGIS 3, es decir, permite al usuario acceder a las funcionalidades de QGIS 3 desde dentro del entorno de R. Esto se logra al establecer un túnel a la API de Python QGIS 3 a través del paquete de retícula. Esto proporciona al usuario una amplia gama de funciones GIS, ya que QGIS 3 nos  permite llamar a algoritmos nativos y algoritmos de terceros a través de su marco de procesamiento. Los proveedores externos incluyen, entre otros, GDAL, GRASS GIS y SAGA GIS. RQGIS3 le ofrece este increíblemente poderoso entorno de geoprocesamiento en la consola R.

Podemos consultar el documento que presenta RQGIS en detalle.

Configurar R en QGIS 3.x mediante el plugin Processing R Provider

Sin embargo, lo que hace más estrecha la relación entre R y GIS es la posibilidad de utilizar scripts de R en el entorno de QGIS. En QGIS 3 existe un complemento denominado Processing R Provider, creado por North Road.

R y GIS

Una vez instalado podremos configurarlo. Para ello debemos ir al menú superior Configuración > Opciones…

En la pestaña Procesos, vamos a la sección Proveedores > R.

Marcamos la casilla junto a Activate. En la opción R folder, debemos buscar y seleccionar la carpeta donde esté instalado R.

R y GIS

A partir de ese momento si abrimos la caja de herramientas de Procesos (menú superior Procesos > Caja de herramientas) veremos los algoritmos de R.

Leaflet y R

Leaflet es una de las bibliotecas de JavaScript de código abierto más populares para mapas interactivos. Lo utilizan sitios web que van desde The New York Times hasta GitHub, así como especialistas en SIG como OpenStreetMap, Mapbox o CARTO.

El paquete Leaflet for R facilita la integración y el control de los mapas de Leaflet en R.

R y GIS - Leaflet

Lo dejamos aquí, aunque podríamos hacer un articulo mucho más largo y será mejor continuar ampliando el tema con artículos más específicos. Como veis las posibilidades de trabajo con R y GIS son abundantes, ya que ese trata de una librería bastante madura y con mucho futuro.

Os dejamos con algunos enlaces de interés:

Página principal de la comunidad de R para Análisis Espacial en Español: http://respaciales.ourproject.org/

En MappingGIS hemos preparado un completo curso online relacionado con el análisis espacial con R, la geoestadística, la conexión con QGIS y muchas cosas más:

Curso online de R y SIG: usa R como un SIG

Let’s connect!

Date de alta en nuestra newsletter y te enviaremos GRATIS el ebook que te ayudará a impulsar tu perfil GIS:
Vitaminas MappingGIS

Tan solo una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

6 comentarios en «R y GIS: qué es R y su relación con los SIG»

  1. Estimado,

    Me interesa el curso. Habrá alguno por estas fechas (agosto/septiembre 2019).

    Me interesa vincular R con QGIS.

  2. Hola, yo tengo la version 3.2 Bonn se QGIS y a mi no me aparece ese complemento. Es eso normal? ha cambiado de nombre?

Los comentarios están cerrados.