In this document I’ll generate, using the package SIMRiv, simulated animal movement tracks to test the detection of Individual Site Fidelity by the test developed for the MS “Detecting recurrent sources of variability in animal tracking studies”, by Virginia Morera-Pujol et al. (2020)
First, simulate a correlated RW. We’ve tried to simulate a Lévy Walk but since ideally we’re not using commuting points in our real-data analysis, CRW looks more similar to a real dataset
CRW15 <- species(state.CRW(0.25) + 7)
simCRW <- simulate(CRW15, coords = matrix(rep(0, 2), ncol = 2), time = 10000)
plot(simCRW[, 1:2], type = "l", xlim = c(min(simCRW[, 1]), max(simCRW[, 1])), ylim = c(min(simCRW[,
2]), max(simCRW[, 2])), main = "Simulation of a correlated random walk with 10,000 steps")
spSimCRW <- SpatialPoints(coords = simCRW[, 1:2])
Now we generate a convex hull of that correlated RW
example_MCP <- mcp(spSimCRW, percent = 100)
plot(example_MCP, main = "100% Minimum convex polygon of the simulated CRW")
plot(spSimCRW, add = T, pch = 20, cex = 0.5, col = "gray")
We convert this convex hull into a resistance surface from SiMRiv to limit distribution of newly simulated tracks
res_surface <- resistanceFromShape(example_MCP, res = 1, margin = c(500, 500))
plot(res_surface, main = "Resistance surface generated from the previous MCP")
We now simulate tracks within the resistance shape
simCRW_res <- simulate(list(CRW15, CRW15, CRW15, CRW15), coords = matrix(rep(0, 8),
ncol = 2), time = 10000, resist = res_surface)
spSimCRW_res <- SpatialPointsDataFrame(coords = cbind(c(simCRW_res[, 1], simCRW_res[,
4], simCRW_res[, 7], simCRW_res[, 10]), c(simCRW_res[, 2], simCRW_res[, 5], simCRW_res[,
8], simCRW_res[, 11])), data = data.frame(ID = c(rep(1, 10000), rep(2, 10000),
rep(3, 10000), rep(4, 10000))))
plot(res_surface, main = "Simulated tracks within the MCP \nthrough the resistance surface")
plot(spSimCRW_res, pch = 20, cex = 0.5, add = T, col = spSimCRW_res$ID)
This is the basic workflow to generate simulated datasets displaying individual site fidelity. Different levels of fidelity can be simulated by changing the resistance values outside the MCP. The higher the resistance, the more intense the “fidelity”. We are going to use it to generate different types of data to test aspects of the indEffectTest function developed for the manuscript.