Camino a gvSIG 2.3: Extensión de R

Uno de los últimos desarrollos desde gvSIG, es la posibilidad de ejecutar código de R desde gvSIG. Y no estamos hablando de la solución parcial de Renjin como ya comentamos en un post hace tiempo, sino sobre un R que vendrá instalado en nuestra extensión.

¿Qué es R?

R es un lenguaje orientado principalmente para el análisis estadístico, que viene con una comunidad muy grande y activa en la que se realizan todo tipo de proyectos y se desarrollan todo tipo de librerías. Una de las librerías que nos interesa mucho es ‘rgdal‘, en la cual podemos trabajar con capas vectoriales, raster, etc, y que nos otorga la posibilidad de unir dos mundos, el geoespacial y el estadístico.

Para los que no conozcan R y toda las posibilidades que contrae este lenguaje, os animo a hacer una búsqueda rápida por Google y seguro que no os arrepentiréis de conocer este lenguaje .

¿Qué le falta a R para aplicarse a nuestro campo de trabajo?

Una de las carencias de R es la de un entorno enfocado al mundo geoespacial. Por supuesto que tiene salida gráfica, generación de mapas, etc, pero no todas las funciones que pudiera tener un SIG de escritorio como gvSIG donde tenemos la posibilidad de visualizar e interactuar con nuestras capas o de generar nuestras propias herramientas, incluyendo geoprocesos con una componente realizada en R.

¿Qué objetivo tiene esta extensión?

El objetivo de esta extensión es el poder aprovechar el fuerte de R que es el cálculo de datos y procesos, y el fuerte de gvSIG que es la interacción entre capas.

Poniéndonos más técnicos, podemos crear una función escrita en R, con sus datos de entrada y sus resultados, y utilizar gvSIG para pasarle a este función los parámetros que necesita, y el otorgarle un espacio donde cargar las capas de resultado donde seguir trabajando con ellas.

Por poner un ejemplo general, podríamos tener un script de R el cual recibirá de parámetros la ruta de una capa cargada y generada en gvSIG (tal vez resultado de un geoproceso), procesarla en R para sacar ciertos cálculos estadísticos sobre los atributos que contiene o algún tipo de transformación, y volver a cargar en gvSIG la capa o tabla resultado de esa transformación para su directa visualización.

Tal vez los parámetros que necesitase el script de R fuera un par de coordenadas X,Y que podríamos capturar al hacer click sobre un Vista. Las opciones son infinitas.

¿Qué R estará usando?

La extensión que estamos preparando viene con un R instalado en ella, esto permitirá por ejemplo, que con una versión portable de gvSIG tengamos ya todo lo necesario para trabajar directamente con R, sin necesidad de instalaciones externas. Solo con descomprimir el programa, tendremos acceso a todo su potencial. Pero seguimos con el desarrollo de la extensión y sacaremos más post sobre esto y posibles alternativas.

¿Qué limitaciones tiene en este momento?

Ahora mismo estamos recomendando su uso y prueba sobre Windows, ya que es la plataforma donde más sencilla es la instalación de librerías. De todas formas, tanto en las versiones de Windows y Linux hemos incluido una serie de paquetes preinstalados que pueden servir para hacer nuestras primeras pruebas.

¿Cómo probarlo?

Hemos incluido un ejemplo del uso básico de R, en el cual usamos scripting en Python para la ejecución y el pase de parámetros a R, además de para la carga de sus resultados, en este caso, una capa raster.

Este ejemplo está en Windows, pero al no tener que instalar librerías nuevas podría ser replicado también para Linux, tan solo descargando el paquete de la extensión correspondiente.

Primero, tendremos que instalar la extensión de R desde el Administrador de Complementos. Si estamos usando una portable de las últimas versiones de gvSIG, ya debería de venir instalada.

2016-09-29-09_01_02-r1

Seleccionamos el paquete correspondiente a la versión de Windows:

2016-09-29-09_01_45-r2

Y damos a “Comenzar descarga”.

2016-09-29-09_02_17-r3

Tendreomos que presionar siguiente para la instalación del paquete y concluirá así. Es posible que tarde un poco por el tamaño de la extensión:

2016-09-29-09_10_11-r4

Una vez instalado el paquete, tendremos que reiniciar gvSIG.

Con gvSIG abierto de nuevo, lo primero que haremos es crear una Vista nueva con proyección 25830, que al acabar será usada para cargar los datos del script de ejemplo que explicaremos.

Ahora nos iremos a Herramientas – Scripting – Editor de Scripts:

2016-09-19-15_41_45-r_7

En la pestaña de Sistema nos aparecerá el plugin sobre R que hemos instalado:

2016-09-19-15_46_51-r_8

Ejecutaremos el siguiente script para abrir la consola de R de la instalación correspondiente a gvSIG:

2016-09-19-15_47_30-r_9

Ejecutamos con el botón:

2016-09-19-15_47_51-r_10

Se abrirá una consola similar a la siguiente, que corresponde al entorno de R (recordando que es el instalado en gvSIG, totalmente independiente al que podríais tener instalado en vuestro ordenador):

2016-09-19-15_49_18-r_11

En principio, las librerías que vienen pre-instaladas hacen referencia al siguiente comando:

install.packages(c(
 'stpp','rgdal','maptools','splancs','spatstat','mgcv','BB','bbmle','plyr','raster',
 'sqldf','lubridate','rgeos','RPostgreSQL','RODBC','pixmap','sp','spdep','RColorBrewer',
 'foreign','plotrix','geoR','fields','maps', 'gridExtra','tweet2r','ggmap','ROAuth','RSQLite',
 'ggplot2','streamR', 'scales'
 ))
 install.packages('INLA', repos='http://www.math.ntnu.no/inla/R/stable')

Sino solo tienes que instalar los paquetes necesarios que necesitéis de la forma habitual en esta consola, de esta forma ya podrían usarse desde los scripts ejecutados desde gvSIG. Solo hay que escribir:

install.packages("nombreLibreria")

2016-09-19-15_50_07-r_12

Ahora pasamos a la ejecución de un script de R que tengamos. En la carpeta de test tenemos un ejemplo muy básico:

2016-09-19-15_52_34-r_15

Si lo ejecutamos veremos la salida de datos por consola:

2016-09-19-15_52_34-r_16

Este script lo que está realizando es la ejecución de un script en R que tenemos en la carpeta /data/ y que también podemos editar desde gvSIG:

2016-09-29-09_18_49-r5

La salida por consola más al detalle:

2016-09-19-15_52_34-r_17

Si volvemos a nuestra Vista, veremos la capa raster generada en R y cargada en gvSIG:

2016-09-19-15_52_34-r_18

Y hasta aquí el post de hoy. El módulo sigue en desarrollo y cualquier aportación será bien recibida. Esperamos postear próximamente algunos avances que hemos realizado en el uso de la extensión.

Cualquier duda podéis poneros en contacto con nosotros en las Listas de Usuarios o Desarrolladores.

 

This entry was posted in development, gvSIG Desktop, gvSIG development, scripting, spanish and tagged . Bookmark the permalink.

2 Responses to Camino a gvSIG 2.3: Extensión de R

  1. Pingback: ¡gvSIG 2.3 ya está aquí! | gvSIG blog

Leave a comment