R espacial en español

REspacialEs

Comunidad de usuarios de R hispanohablantes para análisis espacial

Gabo Gaona

Lectura De 7 Minutos

Consola R in Ubuntu

Tienes datos organizados en capas de objetos espaciales. Ya sea que estén guardados como viejos ficheros SHP o en los más modernos y versátiles estándares, como GPKG o GeoJson. O quizá no son objetos espaciales sino matrices regulares (ej. ASCII grid) o raster (Geotiff, grd, etc.). O quizá, ni siquiera haz llegado a ese punto y solo tienes la información y la referencia del espacio donde se produjo. Como sea que esté, analizar los datos requiere que tengas conocimiento del tipo de análisis que quieres hacer y la herramienta que vas a utilizar. En esta ocasión te presentaré unos consejos básicos para iniciar en el análisis de tus datos espaciales con R.

Empezando con R y Rstudio

Antes de iniciar en R Espacial quiero recomendarte que te familiarices con el lenguaje R y al menos con una de sus IDEs más reconocidas, Rstudio. Si no sabes de qué se trata te recomiendo tomar un curso (Ej. R básico de Pablo Casas), seguir algún tutorial (Ej. R base de Curso-R) o experimentar por tu cuenta. Lo importante es que hayas dado ya el primer paso.

De todas maneras, si aún no has dado el primer paso, puedes seguir estas instrucciones a cuenta propia. La instalación de R y Rstudio se puede seguir usando este tutorial: Instalar R y Rstudio.

Dependencias

Las dependencias, son los programas adicionales que requieren los diferentes paquetes de R para poder funcionar. La mayoría de los paquetes de R ya tienen incluidas todas las librerías y programas que necesitan. Algunos paquetes requieren de librerías del sistema y son las cuales voy a tratar de describir:

Máquina virtual de Java

Este software permite ejecutar desde R algoritmos de librerías Java, a través del paquete rJava. En Windows hay una sola opción viable y es usando el instalador de Oracle (https://www.oracle.com/java/). Por el contrario, Linux y Mac tienen muchas más opciones (OpenJDK, OpenJava, y Oracle Java).

Si eres un usuario de Linux, te recomiendo seguir las siguientes instrucciones de consola:

# Instalar la maquina virtual de Java (JRE).
sudo apt install -y default-jre

#Instalar Java Development Kit (JDK).
sudo apt install -y default-jdk

#Actualizar las rutas de Java para R.
sudo R CMD javareconf

Ahora se puede instalar paquetes de R que requieren Java. Por ejemplo rJava

#Instalar en la sesión de R los paquetes dependientes de Java. Ej. "rJava"
install.packages("rJava")

Librerías de GDAL, GEOS y PROJ

Al igual que con Java, algunos paquetes de R, por ejemplo sf, sp, rgdal o rgeos, dependen de librerías externas para funcionar correctamente. Los binarios pre-compilados para Windows ya tienen incluidas estas dependencias, pero si quieres compilar a partir de los ficheros fuente, entonces necesitas instalarlos e incluir las rutas como variables. Para Mac y Linux se requieren instalar las librerías por separado, porque casi siempre se compila desde los ficheros fuente. A continuación voy a detallar el proceso para instalar en Linux Ubuntu:

sudo apt update
sudo apt dist-upgrade
sudo apt install libgdal-dev libproj-dev libgeos-dev

Ahora se puede instalar paquetes de R que requieren de estas librerías espaciales. Por ejemplo raster

#Instalar en la sesión de R los paquetes dependientes de geos, gdal y proj: "raster"
install.packages("raster")

Rtools

Rtools no es una dependencia como tal, pero es importante para compilar los paquetes que no tienen archivos binarios pre-compilados. La instalación de Rtools solo se requiere en Windows, ya que los usuarios de Linux o Mac tienen compiladores propios que ya están perfectamente integrados con el sistema.

Para instalar Rtools se requiere descargar el instalador desde la página web de https://r-project.org, e instalar como un programa cualquiera de Windows. Una vez instalado, se recomienda que desde R se haga una localización del paquete usando devtools::find_rtools(). Si el resultado es TRUE, entonces las librerías fueron correctamente instaladas y están dispoibles para usar.

Integración con otro software

R espacial también puede ser complementado con librerías y software externo, Así, se ppodría aprovechar desde R las bondades de software especializado y potenciar sus utilidades. No voy a referirme a cómo usar Lenguaje R en otros programas, sino a usar las funcionalidades de esos otros programas dentro de R.

Python, PyEnv y Conda

Python no provee librerías para ejecutar directamente en una sesión de R, sin embargo se pueden usar librerías y ambientes de Python usando el paquete reticulate. Al respecto de Python, se recomienda usar ambientes ya sea mediante PyEnv o Conda. Cualquier ambiente de Python puede ser cargado a una sesión de R usando las siguientes instrucciones:

library(reticulate)
use_virtualenv("myenv")

También existe la posibilidad de abrir temporalmente una sesión de Python desde R. Es una forma sutil de combinar el flujo de trabajo de ambas consolas. Para esto se requiere usar la función repl_python() del paquete reticulate

NOTA: En una entrada posterior estaré desarrollando un poco la integración de R y Python.

Software GIS de escritorio

Software de escritorio como estos tienen APIs desarrolladas en C o C++ que proveen algoritmos muy útiles para usar en R. Su integración y uso en una sesión de R requiere de paquetes específicos. Estas son las APIs que más he utilizado desde R.

Paquetes R sugeridos

No podré entrar en detalle sobre todos los paquetes de R para asuntos espaciales, pero hay algunos que son imprescindibles para este mundillo de R Espacial. Instalarlos en R es una cuestión sumamente fácil usando la función install.packages("nombre_paquete")

  1. rgdal La librería principal de muchos usuarios R Espacial. Esta contiene métodos para leer y escribir datos espaciales en muchísimos formatos y tipos de ficheros. Y sobre ésta se ejecutan las funciones de otros paquetes como raster o sf.

  2. sp y sf son dos librerías para importar y manipular entidades en estructura de vector. sp fue una de las primeras implementaciones de clases y métodos espaciales en R y por lo tanto hay muchos paquetes que dependen de este. Aunque el nuevo estándar de representación espacial son los Simples Features aún no podemos prescindir de sp. En cambio sf viene a ser ese paquete que recoge los estándares modernos y los implementa como clases y métodos espaciales para representar y manipular los objetos vectoriales.

  3. raster y terra. Estos paquetes en cambio son los necesarios para creación y manipulación de datos en estructura de ráster. El paquete raster ha sido ampliamente utilizado para hacer muchas operaciones, pero en los últimos tiempos se está impulsando el uso de una alternativa nueva, que promete ser más rápida y eficiente en cálculos y que ha pasado a llamarse terra.

  4. stars Si lo tuyo son los estudios espacio-temporales, este paquete no debe faltar entre tus librerías instaladas. El paquete ofrece métodos y clases para crear y manipular cubos espacio-temporales de datos. Lo cual es una gran ventaja para estudiar la evolución de una variable en el tiempo.

  5. gstat, spatstat, spgwr. Junto a otras son librerías que te permiten entrenar modelos estadísticos y geoestadísticos con tus datos espaciales. gstat contiene la mayoría de métodos conocidos para modelos estadísticos y predicción con datos espaciales. Por su parte spatstat está orientada al estudio de los patrones de puntos. Y spgwr, provee métodos para hacer la regresión ponderada geográficamente. Estos paquetes no son los únicos que podrías necesitar para estadística espacial, por lo que la lista propuesta aún está incompleta.

  6. Mapas en R Esto será un poco difícil decidir, existen tantas opciones para hacer mapas en R, pero al menos todos los paquetes de R espacial tienen métodos para la función graphics::plot(). Sin embargo algunos también proveen funciones para ggplot2 y otros para lattice. Pero otros en cambio, son librerías especializadas para hacer mapas a partir de clases espaciales en R: tmap, cartogram, mapview, leaflet, mapdeck o mapedit.

La lista de paquetes no termina ahí: En CRAN se puede encontrar una sección donde se agrupan los paquetes por tópicos o tareas. Se conocen como taskviews y te permiten explorar todos los paquetes que pueden tener un uso dentro de ese tópico. Si quieres explorar más a fondo la lista para R espacial, te recomiento seguir este link: Taskview Spatial.

Di Algo

Comentarios

Nada aún.

Posts Recientes

categories

Sobre

This theme was developed for Hugo static site generator.