Generally useful for model development purposes.

wrap(X, bounds, withHeading)

# S4 method for matrix,Extent,missing
wrap(X, bounds)

# S4 method for SpatialPoints,ANY,missing
wrap(X, bounds)

# S4 method for matrix,Raster,missing
wrap(X, bounds)

# S4 method for matrix,Raster,missing
wrap(X, bounds)

# S4 method for matrix,matrix,missing
wrap(X, bounds)

# S4 method for SpatialPointsDataFrame,Extent,logical
wrap(X, bounds, withHeading)

# S4 method for SpatialPointsDataFrame,Raster,logical
wrap(X, bounds, withHeading)

# S4 method for SpatialPointsDataFrame,matrix,logical
wrap(X, bounds, withHeading)

Arguments

X

A SpatialPoints* object, or matrix of coordinates.

bounds

Either a Raster*, Extent, or bbox object defining bounds to wrap around.

withHeading

logical. If TRUE, the previous points must be wrapped also so that the subsequent heading calculation will work. Default FALSE. See details.

Value

Object of the same class as X, but with coordinates updated to reflect the wrapping.

Details

If withHeading used, then X must be a SpatialPointsDataFrame that contains two columns, x1 and y1, with the immediately previous agent locations.

Author

Eliot McIntire

Examples

library(raster)
library(quickPlot)

xrange <- yrange <- c(-50, 50)
hab <- raster(extent(c(xrange, yrange)))
hab[] <- 0

# initialize agents
N <- 10

# previous points
x1 <- rep(0, N)
y1 <- rep(0, N)
# initial points
starts <- cbind(x = stats::runif(N, xrange[1], xrange[2]),
                y = stats::runif(N, yrange[1], yrange[2]))

# create the agent object
agent <- SpatialPointsDataFrame(coords = starts, data = data.frame(x1, y1))


ln <- rlnorm(N, 1, 0.02) # log normal step length
sd <- 30 # could be specified globally in params

if (interactive()) {
  clearPlot()
  Plot(hab, zero.color = "white", axes = "L")
}
for (i in 1:10) {
  agent <- crw(agent = agent, extent = extent(hab), stepLength = ln,
               stddev = sd, lonlat = FALSE, torus = TRUE)
  if (interactive()) Plot(agent, addTo = "hab", axes = TRUE)
}