Paquete ‘rgl’ para la visualización 3D en lenguaje R

A finales del año pasado publiqué varios posts relacionados con la visualización 3D en Python (1, 2, 3, 4). Sin embargo, con lenguaje R también es posible la renderización 3D en tiempo real es decir, con rotación ilimitada (sin imágenes estáticas al estilo de la función persp), y el proceso no es muy complejo. Esto se logra con la librería rgl. Para instalarla en R hay que hacerlo con privilegios de administrador (en Linux o en Windows superior a XP). Para ello:

>install.packages('rgl', dependencies=TRUE)

Después de instalada, como usuario normal:

>library(rgl)

Con help(surface3d) en el intérprete se tendrá acceso a la documentación de la sintaxis del comando y a los ejemplos de uso. Basado en ellos y como mi interés está orientado especialmente a los rásteres importé al intérprete de R, desde mi espacio de trabajo (‘proyectoR’), el ráster tiznados_corte.tif. Por tanto:

>setwd(‘proyectoR’)
> tiz<-rgdal::readGDAL('tiznados_corte.tif')
tiznados_corte.tif has GDAL driver GTiff 
and has 562 rows and 537 columns

para finalmente:

>z<-tiz$band1 #assign values to vector
>dim(z)<-c(537,562) #convert to matrix format
>x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
>y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
>zlim <- range(y)
>zlen <- zlim[2] - zlim[1] + 1
>     
>colorlut <- terrain.colors(zlen) # height color lookup table
>     
>col <- colorlut[ z-zlim[1]+1 ] # assign colors to heights for each point
>     
>surface3d(x, y, z, color=col, back="lines")

dando como resultado el siguiente:

rgl

La imagen se puede rotar libremente para escoger el ángulo que creamos más conveniente.

Nota: Lo que me faltó por comprobar es si esta imagen DEM corresponde a la imagen verdadera o a su imagen especular.

Esta entrada fue publicada en Lenguaje R, SIG, Software Libre. Guarda el enlace permanente.

3 respuestas a Paquete ‘rgl’ para la visualización 3D en lenguaje R

  1. Pingback: Visualización 3D en lenguaje R | NOSOLOS...

  2. José, cómo estas? Estoy mudandome a Qgis y Grass y resulta que la integracion Grass-R se me da bien y muy sencilla en windows, pero no se como hacer la integracion entre R y Qgis para poder utilizar todo el potencial de la caja sextante en Qgis 2.2 si sabes como te agradeceria, recuerda que estoy en windows no linux

    • No uso sextante porque cuando tengo un requerimiento específico con QGIS-GRASS salto a grass.script con Python y, hasta ahora, no he tenido que averiguar que bondades tiene sextante. Por otra parte, puedes usar la consola de GRASS en QGIS para ejecutar R.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s