Introducción

Un aspecto crucial en los estudios y programas de monitoreo de fauna, es el referente al diseño de muestreo. La selección del tipo de método o técnica (trampas físicas, transectos, redes, cámaras, u otro), la definición del número de unidades de muestreo, la colocación, el tiempo que se dejarán trabajando o bien el número de ocasiones que recorrerán los transectos, y otros aspectos, son temas muy importante. Para este fin, existen muchos libros y recursos en internet que abordan con mucho detalle cada uno de estos aspectos. En el caso de las cámaras-trampa, las decisiones que debemos tomar respecto al diseño de muestreo, no son muy distintas a las que tomarían con algún otro método o técnica para obtener datos de los animales en campo. Antes de iniciar el trabajo es necesario previamente haber definido muy bien el diseño del muestreo. Es conveniente desde antes de saliar a campo pensar y discutir las alternativas del diseño. El objetivo de esta viñeta es presentar una función a la que he nombrado mi_grid escrita en R, para crear diferentes posibles diseños de disposición en campo de las cámaras-trampa.


Para descargar el material y actualizaciones

Para más detalles te sugiero ver el tutorial en formato HTML en el sitio:

https://rpubs.com/SMR8810/Grid_camaras

Además, puedes decargar el proyecto RStudioque contiene todo el material para ejecutar la función de creación de la grid o cuadrícula de cámaras, en:

https://github.com/SMandujanoR/Grid_camaras

Conforme se pruebe esto en más casos, se mejore la función o se creen otras nuevas, iré actualizando estos sitos por lo que te sugiero estar atento a futuros avisos de actualizaciones.


Idea central

El presente script o código está hecho para crear una grid, rejilla o cuadrícula de un arreglo de n1 x n2 cámaras o sitios, a diferentes distancias entre sitios, iniciando en una coordenada UTM específica, sobre un shape del mapa de la región de estudio.

Como resultados, el script guarda una imagen en formato .jpg del arreglo especificado, las coordenadas UTM específicas del las n1 x n2 sitios en formato .csv, y estima el área que abarca la grid y un buffer alrededor de las mismas.


Procedimiento general

PASO 1

Cargar las librerías

library(raster)
library(prettymapr)

PASO 2:

Cargar el shape del área de estudio:

mi_mapa <- shapefile("AZ_shp/Uso_Suelo.shp")

Tipo de objeto

class(mi_mapa)
## [1] "SpatialPolygonsDataFrame"
## attr(,"package")
## [1] "sp"

Detalles del shape

summary(mi_mapa)
## Object of class SpatialPolygonsDataFrame
## Coordinates:
##         min       max
## x -97.23237 -97.12693
## y  18.09883  18.20687
## Is projected: FALSE 
## proj4string :
## [+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0]
## Data attributes:
##   Uso_Suelo        
##  Length:13         
##  Class :character  
##  Mode  :character

Tipos de uso del suelo

mi_mapa$Uso_Suelo
##  [1] "Área sin veg. aparente"            "Asentamientos humanos"            
##  [3] "Caminos"                           "Cercas vivas"                     
##  [5] "Cultivos"                          "Lecho fluvial"                    
##  [7] "Marmolera"                         "Matorral crausicaule"             
##  [9] "Salinas"                           "Selva baja caducifolia"           
## [11] "Selva baja caducifolia abierta"    "Selva baja caducifolia perturbada"
## [13] "Veg. ribereña"

La extensión del área en coordenadas Lat/Long

bbox(mi_mapa)
##         min       max
## x -97.23237 -97.12693
## y  18.09883  18.20687

De ser necesario, cambiar de proyección de Lat/Long a UTMs

mi_mapa <- spTransform(mi_mapa, "+proj=utm +zone=14 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0")

Esto dependerá de la proyección inicial del shape y de la zona donde se encuentre la región de estudio.

ahora ya está en UTMs

bbox(mi_mapa) 
##       min     max
## x  687045  698085
## y 2002125 2013975

Optativo

Se define los colores deseados para cada uno de los polígonos de uso del suelo (mi_mapa$Uso_Suelo):

mi_paleta <- c("grey","black","black","black","yellow","deepskyblue2","black","darkorange2","white","darkolivegreen4","darkolivegreen3","orange")

Importante: en la función de la leyenda corresponde a mi mapa y colores específicos, pero debes cambiar la nomenclatura y colores de acuerdo a tu mapa. Para esto modifica en mi_grid la función legend().

Si el usuario lo prefiere, puede emplear otras paletas de color, como por ejemplo topo.colors(), etc.

Mapa del sitio de estudio

par(mfrow=c(1,1), mar = c(1,1,1,1))
  
  plot(mi_mapa, col = mi_paleta, fill = T, lty = 0)
  addscalebar(htin = 0.05, padin = c(0.05, 0.05), pos = "bottomright")
  addnortharrow()
  legend(698200, 2005000, c("Perturbate", "Agriculture", "Permanent river", "Scrub", "Saltwork", "Tropical dry forest (TDF)", "Open TDF", "Perturbate TDF"), col = c("gray", "yellow", "deepskyblue2", "darkorange2", "white", "darkolivegreen4", "darkolivegreen3", "orange", "deepskyblue2"), pch = 15, cex = 0.5, pt.cex = 1.5)


PASO 2

Se carga la función:

source("mi_grid.R")
  1. Se especifica el número de renglones (n1), número de columnas (n2). Es decir, el número total de cámaras en el arreglo n1xn2 que uno quiera.

  2. Las coordenadas UTMs (CTx y CTy) del punto de inicio de la grid. OJO: estas UTMs se generarán automáticamente por la función y saldrán como un resultado en formato .csv …!

  3. la distancia (CTdist) que uno quiera entre todas las cámaras.

  4. Se ejecuta la función mi_Grid como:
mi_Grid(n1 = 6, n2 = 5, CTx = 691000, CTy = 2006500, CTdist = 800)

Resultados

La función crea dos archivos de salida: 1) un .jpg con el mapa de la grid de cámaras, y 2) un .csv con las UTMs de cada cámara de acuerdo al número que sale de cada una en el mapa.

Estos dos archivos aparecerán dentro de la carpeta de proyecto RStudio Grid_camaras. Pero si se quieren explorar otros escenarios de arreglo de las cámaras, simplemente se cambian los valores de los parámetros en la función (PASO 3). Por ejemplo, si son 24 cámaras o sitios y en un arreglo de 4 x 6 cada 500 m, iniciando en nuevas coordenadas, entonces se especifica como:

mi_Grid(n1 = 4, n2 = 6, CTx = 688000, CTy = 2004500, CTdist = 500)

Por lo que ahora tendremos:

Importante: si se quiere ir guardando los .jpg y .csv de cada escenario o diseño, se deben cambiar los nombres de ambos (actualemente grid_camaras.jpg y UTMs_grid_camaras.csv).

Comentario final

La función y el script aquí presentados son muy sencillos de ejecutar. Por supuesto, lo mismo lo puedes hacer en algún SIG. Además, otros paquetes como sp tiene funciones análogas para crear grids, como por ejemplo makegrid. Es decir, tienes diferentes rutas para llegar a similares resultados. Lo importante es que verdaderamente medites mucho sobre el diseño más adecuado el cual es totalmente dependiente de los objetivos del estudio/monitoreo, las especies de principal interés, y los recursos logísticos con los que se cuente. Termino diciendo, que ni R ni cualquier otro programa, corrije datos deficientes provenientes de diseños inadecuados.

Libro

Fototrampeo en R: Organización y Análisis de Datos. Vol.I

Para bajar el PDF de libro:

https://www.researchgate.net/publication/348922971_Fototrampeo_en_R_Organizacion_y_Analisis_de_Datos_Volumen_I

Para descargar todo el material de trabajo (scripts R, datos de prueba, y otros archivos), desde:

https://github.com/SMandujanoR/Foto-trampeo-R-Vol_I

Te invito al sitio del grupo:

https://www.facebook.com/groups/fototrampeoR

Te esperamos en nuestros talleres donde de manera totalmente práctica enseñamos cómo organizar y analizar tus datos de cámaras-trampa para diferentes objetivos como: patrones de actividad, riqueza y diversidad, abundancia relativa, ocupación, co-ocurrencia, captura-recaptura, y otros más.

Saludos…!