miércoles, 30 de noviembre de 2011

Visualizar los registros de GBIF con R de una forma rápida

Hace poco ha llegado a mis manos (vía theBioBucket, de Kay Cichini) un aporte sobre la utilización de R en la gestión de registros de biodiversidad, que me parece sencillamente fantástico. Se trata de la consulta de los registros de biodiversidad de GBIF mediante R

Imaginad, que estamos trabajando con una especie y necesitamos consultar los datos existentes sobre esta especie en la plataforma GBIF (Global Biodiversity Information Facility). Pues, podemos utilizar, por ejemplo...R. Sí, existe un paquete llamado dismo, creado por Robert Hijmans, Steven Phillips, John Leathwick y jane Elith, que realiza diversas tareas relacionadas con los modelos de distribución de especies.


Pues, vamos a ver un ejemplo de alguna de las cosas que podemos hacer. Hace poco, leí mi Trabajo de Fin de Master, que versaba sobre los melojares de Quercus pyrenaica en Sierra Nevada (hablaré de ello en otra entrada) y voy a utilizar esa especie como consulta. 

En primer lugar, hemos de instalar y cargar el paquete dismo. Igualmente vamos a cargar otros paquetes necesarios para visualizar los resultados en mapas. 

Una vez cargado, utilizamos la función gbif() para que nos consulte el portal de GBIF y nos devuelva los resultados de la especie que deseemos. Para ello hemos de especificar el nombre del género (en este caso "Quercus") y el epiteto de la especie ("pyrenaica"). Además le indicamos que nos devuelva los datos geográficos, para lo cual fijamos el parámetro geo en TRUE. 

En este caso nos devuelve un dataframe con 667 resultados de ocurrencia de esta especie. En este objeto, observamos que nos devuelve información interesante como la institución responsable de la cita, el número de identificación de la cita, que tipo de registro es: si es observación o cita, etc. 

Esta sencilla consulta, en una sola línea de código, nos agiliza muchísimo la consulta en la base de datos de GBIF y nos permite llevar a cabo consultas de muchas especies en el caso en el que estemos llevando a cabo trabajos donde necesitamos recopilar información de citas de muchas especies. 

Pero, ademas de esto (que no es poco), podemos con dos o tres líneas mas de código, realizar mapas de los resultados de esta consulta. Para ello necesitamos otros packages. En este caso os dejo dos mapas de la distribución de las citas para Quercus pyrenaica, tanto en la Península Ibérica, como en Sierra Nevada. En este último caso, es para resaltar que también podemos utilizarlo incorporando shapefiles de ESRI. 


Figura 1. Ejemplo de consulta de los registros de Quercus pyrenaica en la Península Ibérica y su representación con R. 



Figura 2. Ejemplo de consulta de los registros de Quercus pyrenaica en Sierra Nevada. En este caso se ha importado un shapefile con los límites del Espacio Natural de Sierra Nevada. 


Pues nada más, solamente el código utilizado: 



######### Consulta y visualización de datos de GBIF 
 
# Cargamos la libreria dismo para la consulta a GBIF
library(dismo) 
 
# Consultamos los datos de gbif de la especie que deseemos
melojo <- gbif("Quercus", "pyrenaica", geo=TRUE)
 
# Cargamos la libreria para plotear en un mapa 
library(maps)
library(maptools)
library(mapdata)
 
# Ploteamos los resultados para la Península Ibérica
m <- map('worldHires', regions=c('Spain', 'Portugal'), exact=T, interior=FALSE, col="grey") 
area.map(m) 
# Aquí añadimos los resultados de nuestra consulta a GBIF en el mapa
points(melojo$lon, melojo$lat, cex=1.5, pch=19, col="blue") 
# Ahora la leyenda
text(-.001,36.3, "Resultados consulta GBIF\nQuercus pyrenaica")
 
 
 
# Ahora lo mismo pero con datos para Sierra Nevada
# Importamos un shape del shapefile del límite del Espacio Natural de Sierra Nevada
sn_lim <- readShapePoly("C:/consulta_datos_R_gbif/EENNPP/InfGeografica/InfVectorial/Shapes/EspacioNaturalSierraNevada.shp"
, proj4string=CRS("+proj=latlong +ellps=WGS84"))
 
# Ploteamos los límites de Sierra Nevada
plot(sn_lim, border="grey", axes=TRUE)
points(melojo$lon, melojo$lat, cex=1.3, pch=19, col="blue") 
text(-3.1, 37.4, "Consulta de datos de Quercus pyrenaica\nen GBIF mediante R", cex=1.5)
text(-3.1, 36.4, "Espacio Natural de Sierra Nevada", cex=1.5)
Created by Pretty R at inside-R.org