cumMove {openCR} | R Documentation |
Probability Distribution After Movement
Description
Compute the compounding effect of a random walk defined by a discrete kernel. The number of steps and the edge algorithm are specified by the user. The function was used to generate Fig. 3 of Efford (2022). The final distribution may be summed for points lying within an arbitrary polygon. This is a simple way to compute the expected proportion remaining within a particular region (i.e. not “emigrating").
Usage
cumMove(X, mask, kernel, edgemethod = c("truncate", "wrap", "none"), nstep = 1,
mqarray = NULL, settlecov = NULL)
proportionInPolygon(mask, poly, cov = "pm")
Arguments
X |
initial location(s) (see Details) |
mask |
habitat mask |
kernel |
kernel object |
edgemethod |
character |
nstep |
non-negative integer |
mqarray |
integer array of lookup indices |
settlecov |
character name of covariate of |
poly |
a polygon (see Details) |
cov |
character name of covariate of |
Details
The input X
may be -
a vector of length 2 for the coordinates of a single point
a mask with covariate 'pm' representing the initial distribution
a SpatialPolygons object from sp. Animals are assumed initially to be distributed uniformly across mask points that lie within the polygon.
The default edgemethod truncates the kernel at the edge and re-normalizes the cell probabilities so that all destinations lie within the boundary of the mask.
settlecov
may name a covariate of mask
that has settlement weights in range 0–1.
For proportionInPolygon
, the input mask may be the output from cumMove
. The polygon poly
may be specified as for pointsInPolygon
(e.g., SpatialPolygons object or 2-column matrix of coordinates) or as a list with components x and y. A list of polygon specifications is also accepted.
mqarray
is computed automatically if not provided. Precomputing the array can save time but is undocumented.
Value
For cumMove - a mask object with initial probability distribution in covariate 'pm0' and final distribution in covariate 'pm'.
For proportionInPolygon - vector of the summed weights (probabilities) for cells centred in the polygon(s) as a proportion of all non-missing weights.
References
Efford, M. G. (2022) . Efficient discretization of movement kernels for spatiotemporal capture–recapture. Journal of Agricultural, Biological and Environmental Statistics. In press. https://doi.org/10.1007/s13253-022-00503-4
See Also
Examples
sp <- 10
msk <- make.mask(nx = 51, ny = 51, type = 'rect', spacing = sp,
buffer = 0)
k <- make.kernel('BVN', 20, spacing = sp, move.a = 50, clip = TRUE,
sparse = TRUE)
# initial distribution a central point
X <- apply(msk, 2, mean)
par(mfrow = c(1,4), mar = c(1,1,2,1))
for (step in 0:2) {
X <- cumMove(X, msk, k, nstep = min(step,1))
plot(X, cov = 'pm', dots = FALSE, legend = FALSE, breaks =
seq(0,0.006,0.0001))
mtext(side = 3, line = 0, paste('Step', step), cex = 0.9)
contour(
x = unique(X$x),
y = unique(X$y),
z = matrix(covariates(X)$pm, nrow = length(unique(X$x))),
levels = c(0.0002),
drawlabels = FALSE,
add = TRUE)
}
## Not run:
# initial distribution across a polygon
X0 <- matrix(c(200,200,300,300,200,200,300,300,200,200), ncol = 2)
X <- X0
par(mfrow = c(1,4), mar = c(1,1,2,1))
for (step in 0:3) {
X <- cumMove(X, msk, k, nstep = min(step,1))
plot(X, cov = 'pm', dots = FALSE, legend = FALSE, breaks =
seq(0,0.006,0.0001))
mtext(side = 3, line = 0, paste('Step', step), cex = 0.9)
contour(
x = unique(X$x),
y = unique(X$y),
z = matrix(covariates(X)$pm, nrow = length(unique(X$x))),
levels = c(0.0002),
drawlabels = FALSE,
add = TRUE)
}
polygon(X0)
proportionInPolygon(X, X0)
## End(Not run)