Riqueza de especies y otros procesos espaciales en R
Actualizado en enero de 2020. Había un error que sobreestimaba la riqueza en celdas vacías, y se añade un ejemplo con datos reales.
Para calcular y visualizar de manera resumida la riqueza de especies en una determinada región, hay que calcular el número de registros o de polígonos que resumen la distribución de una especie con respecto a los elementos de otra capa espacial (superpuesta sobre la misma). Esta es una tarea bastante común que se puede hacer con diferentes programas de SIG. He estado trabajando en cuestiones espaciales usando R y el paquete sf, y quería compartir esta forma de cuantificar y graficar mapas de riqueza de especies.
El código en este ejemplo es 100% reproducible, siempre y cuando tengamos instalados los paquetes necesarios. Para este ejemplo escogí trabajar con Costa Rica. Primero vamos a probar este método generando puntos al azar, y lo haremos iterativamente gracias al paquete purrr. Aquí vamos a calcular riqueza de especies usando una cuadrícula y dos diferentes formas de representar la distribución de una especie: con datos puntuales y con polígonos derivados de una envoltura que agrupa a los puntos.
Estos son los pasos principales:
Preparación
filtrar un subconjunto de datos a partir de un mapamundi para trabajar dentro de un solo país
generar un número aleatorio de puntos aleatorios dentro del país de estudio para n especies diferentes
generar envolturas que agrupan a los puntos, y ‘suavizar’ sus esquinas
Análisis espaciales
generar una cuadrícula que cubra nuestra área de estudio
hacer una intersección y unión espacial entre las distribuciones de las especies con cada celda de la cuadrícula. ojo con las celdas en las que no hay registros puntuales o sobreposición de polígonos
Mapas
visualizar la riqueza de especies con colores nítidos, fregones, y adecuados gracias a ggplot,scico y sf
Así van quedando los mapas con los distintos elementos:
División política:
Puntos generados al azar para n especies
Envolturas
Cuadrícula
Riqueza de especies calculada a partir de datos puntuales
Riqueza de especies calculada a partir de polígonos
Ojo: La función rerun del paquete purrr está muy buena y es un reemplazo útil para no tener que escribir loops.
Al dibujar los mapas, usamos un ‘bounding box’ y la función st_touches para que el mapa quede acotado a nuestra área de estudio y para dibujar los países aledaños, sin necesidad de especificar todo ésto a mano.
Ejemplo con datos reales
Para repetir el ejercicio con datos reales, usamos registros puntuales con coordenadas X y Y que entran en el script como un objeto multipuntos del paquete sf. Los datos son para murciélagos, descargados con el paquete rgbif. A partir de una tabla de tres columnas (especie, longitud, y latitud), agrupamos y resumimos los datos por especie y después generamos un objeto sf con su projección correspondiente (WGS84). El resto de los pasos es igual.
El procedimiento sería el mismo para datos en formato .shp, que se pueden importar fácilmente a sf.