Objetivo

Simular y analizar el efecto del número de animales, ámbito hogareño y tamaño de grilla de muestreo, sobre la detección: simulación “Random Walker”… mejor conocido como Johny Walker o el Juanito Caminador…!


Introducción

Una pregunta frecuente durante el diseño del muestreo es determinar la distancia óptima entre cámaras-trampa. No hay una respuesta sencilla. Frecuentemente la decisión se toma basado en el conocimiento que se tiene acerca de las distancias de desplazamiento o del ámbito hogareño de la especie de interés. Si el animal se mueve grandes distancias, entonces las cámaras se colocan separadas varios kilómetros unas de otras. Si la distancia de desplazamiento es pequeña, entonces la distancia entre cámaras será de unos cientos de metros. La finalidad última es tratar de detectar al mayor número posible de individuos que habitan en el área de estudio. Aunque en este libro se centra en el empleo de cámaras-trampa, en realidad este es un problema o pregunta asociada a cualquier otro método de muestreo como por ejemplo redes, trampas tipo sherman u otras, transectos, estaciones olfativas, entre algunos.

En consecuencia la detección de los individuos de la especie de interés dependerá de varios factores:

  • Inherentes al animal mismo como por ejemplo: distancia de desplazamiento promedio al día, tamaño promedio del ámbito hogareño, selección y preferencias de hábitat, patrones diurnos de actividad, abundancia poblacional, entre los principales.
  • Inherentes al hábitat: visibilidad, caminos, recursos como agua y alimento, época del año, entre algunos.
  • Inherentes al muestreo: modelo de cámaras, número de cámaras, distancia entre las mismas, tiempo (días) de muestreo, entre los principales.

Simulación

Para ejemplificar cómo la variación en los movimientos de los animales, aquí llamado HM de las siglás en inglés de ámbito hogareño (homerange) y de la abundancia de individuos (N), pueden afectar su detección dependiendo además de la distancia entre las cámaras-trampa, se empleará una simulación llamada “Random Walker” o caminata aleatoria.

Para este ejemplo hipotético se consideran los siguientes parámetros:

  • dos tamaños de ámbito hogareño (podrían ser por ejemplo hectáreas o kilómetros cuadrados): HR = 100 y HR = 1000 unidades de superficie,
  • dos abundancias: N = 1 y N = 10,
  • dos tamaños de retículas o grillas con 100 cámaras-trampa con diferente distancia de separación entre las mismas (podrían ser metros por ejemplo): grid1 = 100 y grid2 = 500 .

Para ejecutar las simulaciones primero se crea una función para simular movimientos (Random walk) a la que se le ha llamado aquí “Johnny_Walker”, como:

Johnny_Walker <- function(x, y, HR) {
  points(x,y,pch=16,col="black",cex=1.2)
  for (i in 1:HR) {
    xi <- sample(c(1,0,-1),1) 
    yi <- sample(c(1,0,-1),1) 
    points(c(x, x+xi), c(y, y+yi), pch=16, cex=0.3, col= "blue") 
    x <- x + xi
    y <- y + yi
    if (x>100 | x<0 | y>100 | y<0) break  
  } 
}

En las siguientes simulaciones se presenta el centro de actividad del animal en un punto negro y los movimientos dentro del ámbito hogareño en color azul claro. Por su parte, las unidades de muestreo dentro de la retícula se presentan en un punto color rojo.


Ejemplo 1

Se leen los datos de una retícula de muestreo pequeña de 100 cámaras-trampas separadas cada 100 unidades espaciales:

grid1 <- read.csv("grid1.csv", header= T)
grid2 <- read.csv("grid2.csv", header= T)

A continuación se presentan una sola simulación de los casos que resultan cada uno de la combinación del HR, N y grid.


Caso 1A: Abundancia muy baja (N= 1), ámbito hogareño pequeño (HR= 100) y una reticula de muestreo pequeña.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid1,pch=3,col="red",cex=0.1) 
for (j in 1:1) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 100
  Johnny_Walker(x,y,HR) }


Caso 1B: Abundancia alta (N= 10), ámbito hogareño pequeño (HR= 100) y una reticula de muestreo pequeña.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid1,pch=3,col="red",cex=0.1) 
for (j in 1:10) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 100
  Johnny_Walker(x,y,HR) }


Caso 1C: Abundancia alta (N = 1), ámbito hogareño grande (HR = 1000) y una reticula de muestreo pequeña.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid1,pch=3, col="red",cex=0.1)
for (j in 1:1) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 1000
  Johnny_Walker(x,y,HR) }


Caso 1D: Abundancia alta (N= 10), ámbito hogareño grande (HR= 1000) y una reticula de muestreo pequeña.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid1,pch=3, col="red",cex=0.1)
for (j in 1:10) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 1000
  Johnny_Walker(x,y,HR) }


Ejemplo 2

En este caso la retícula de muestreo es grande de 100 cámaras-trampas separadas cada 500 unidades espaciales (podrían ser metros):


Caso 2A: Abundancia muy baja (N= 1), ámbito hogareño pequeño (HR= 100) y una reticula de muestreo grande.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid2,pch=3, col="red",cex=0.1)
for (j in 1:1) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 100
  Johnny_Walker(x,y,HR) }


Caso 2B: Abundancia alta (N= 10), ámbito hogareño pequeño (HR= 100) y una reticula de muestreo grande.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid2,pch=3,col="red",cex=0.1) 
for (j in 1:10) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 100
  Johnny_Walker(x,y,HR) }


Caso 2C: Abundancia alta (N = 1), ámbito hogareño grande (HR = 1000) y una reticula de muestreo grande.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid2,pch=3, col="red",cex=0.1)
for (j in 1:1) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 1000
  Johnny_Walker(x,y,HR) }


Caso 2D: Abundancia alta (N= 10), ámbito hogareño grande (HR= 1000) y una reticula de muestreo grande.

par(mfrow= c(1,1), mar= c(3,5,3,5))
plot(0:100,0:100,type="n",xlab="UTM",ylab="UTM") 
points(grid2,pch=3, col="red",cex=0.1)
for (j in 1:10) {
  x <- runif(1,1,99); y <- runif(1,1,99); HR <- 1000
  Johnny_Walker(x,y,HR) }


Simulación general

Para tener un patrón general, se simula cada caso un total de 100 veces considerando lo siguiente:

# Ejemplo 1 Caso 1A:
par(mfrow= c(10,10), mar= c(.1,.1,.1,.1))
for (k in 1:100) {
plot(0:100,0:100,type="n",xlab="",ylab="",cex.axis=0.1) 
points(grid1,pch=3,col="red",cex=0.1) 
for (j in 1:1) {
  x <- runif(1,1,99)
  y <- runif(1,1,99)
  HR <- 100
  Johnny_Walker(x,y,HR)
} }

# Ejemplo 2 Caso 2B:
par(mfrow= c(10,10), mar= c(.1,.1,.1,.1))
for (k in 1:100) {
plot(0:100,0:100,type="n",xlab="",ylab="",cex.axis=0.1) 
points(grid2,pch=3,col="red",cex=0.1) 
for (j in 1:10) {
  x <- runif(1,1,99)
  y <- runif(1,1,99)
  HR <- 100
  Johnny_Walker(x,y,HR)
} } 


Gráfico resultante a partir de las simulaciones (n=100) de cada caso:


Conclusiones

Con base en las simulaciones se puede concluir lo siguiente:


** Este documento fue generado en RMarkdown**