This function uses a Move or MoveStack object to calculate the utilization distribution (UD) of the given track. It uses the dynamic Brownian Bridge Movement Model (dBBMM) to do so, having the advantage over the other Brownian Bridge Movement Model that changes in behavior are accounted for. It does so by using the behavioral change point analysis in a sliding window. For details see 'References'.
brownian.bridge.dyn(object, raster=1, dimSize=10, location.error,
margin=11, window.size=31, ext=.3, bbox=NA,...)
'DBBMM
' object, if move
or dBMvariance
object is provided
'DBBMMStack
' object, if moveStack
or dBMvarianceStack
object is provided
'DBBMMBurstStack
' object, if moveBurst
object is provided
a move
, moveStack
, moveBurst
, dBMvariance
, dBMvarianceStack
object. This object must be in a projection different to longitude/latitude, use spTransform
to transform your coordinates.
a RasterLayer
object or a numeric value. If a RasterLayer
is provided the brownian.bridge.dyn
starts to calculate the UD based on that raster. If a numeric value is provided it is interpreted as the resolution of the square raster cells (in map units); the according raster will be calculated internally.
numeric. dimSize is only used if raster
is not set. dimSize
is interpreted as the number of cells along the largest dimension of the track. The according raster will be calculated internally.
single numeric value or vector of the length of coordinates that describes the error of the location (sender/receiver) system in map units. Or a character string with the name of the column containing the location error can be provided.
The margin used for the behavioral change point analysis. This number has to be odd.
The size of the moving window along the track. Larger windows provide more stable/accurate estimates of the brownian motion variance but are less well able to capture more frequent changes in behavior. This number has to be odd.
Describes the amount of extension of the bounding box around the animal track. It can be numeric (same extension into all four directions), vector of two (first x, then y directional extension) or vector of four (xmin, xmax, ymin, ymax extension). Default is .3 (extends the bounding box by 30%). Only considered in combination with a numeric raster argument or the dimSize argument.
vector with 4 numbers defining a bounding box for the raster. Only considered in combination with a numeric raster argument or the dimSize argument.
Additional arguments:
time.step
It correspond to the size of the time intervals taken for every integration step (in minutes) and thus specifies the temporal resolution of the numerical integration. If left NULL
15 steps are taken in the shortest time interval. See 'Details'. Optional.
verbose
logical. default is TRUE; if FALSE printing messages about the computational size is suppressed. Optional.
burstType
character vector with the name(s) of burstId(s) for which the UD should be calculated. This attribute can only be used if a moveBurst
is provided in the object
argument. Optional.
Bart Kranstauber, Marco Smolla & Anne Scharf
There are four ways to launch the brownian.bridge.dyn function
:
1. Use a raster:
A RasterLayer object is set for the raster argument which is then used to calculate the UD.
(needed arguments: object, raster(=RasterLayer
), location.error, margin, window.size; optional arguments: time.step, verbose, burstType)
2. Set the cell size
To set the cell size, set a numeric value for the raster argument without providing dimSize. The numeric raster argument is used as the cell sizes of the raster.
(needed arguments: object, raster(=numeric
), location.error, margin, window.size; optional arguments: ext, bbox, time.step, verbose, burstType)
3. Set the number of cells (col/row)
To set the number of cells along the largest dimension a numeric dimSize argument can be set.
(needed arguments: object, dimSize, location.error, margin, window.size; optional arguments: ext, bbox, time.step, verbose, burstType)
4. Using default raster
When there are no values set, the default raster value is used to calculate and create a RasterLayer object, which is returned to the same function. Note: depending on the size of the area of interest, the default cell size value can result in a large number of cells which may take a very long time to calculate!
The function prints an estimate of the size of the computational task ahead. This can give an indication of how long the computation is going to take. It should scale roughly linearly with the duration of the computations although changes in the setup mean the computational complexity still is calculated base on the extent but this is not informative any more on the computation time. It is only useful as a rough indication of calculation duration.
time.step
. The default value is the shortest time interval divided by 15. This means, if there is a location recorded e.g. every 30 mins, the function divides each segment into 2 mins chunks upon which it does the calculation. If for some reason there is one time interval of 15 secs in the track, each segment of the track will be divided into 1secs chunks, increasing the calculation time immensely. Before calculating the DBBMM, use e.g. min(timeLag(x=myMoveObject, units="mins"))
to check which is the duration of the shortest time interval of the track. If the track contains time intervals much shorter than the scheduled on the tag, set the time.step
e.g. to the scheduled time interval at which the tag was set, divided by 15.
Kranstauber, B., Kays, R., LaPoint, S. D., Wikelski, M. and Safi, K. (2012), A dynamic Brownian bridge movement model to estimate utilization distributions for heterogeneous animal movement. Journal of Animal Ecology. doi: 10.1111/j.1365-2656.2012.01955.x
brownian.motion.variance.dyn, getMotionVariance, getVolumeUD, contour, outerProbability, raster, raster2contour, dynBGB, dynBGBvariance
## create a move object
data(leroy)
## change projection method to aeqd and center the coordinate system to the track
data2 <- spTransform(leroy[30:90,], CRSobj="+proj=aeqd +ellps=WGS84", center=TRUE)
## create a DBBMM object
dbbmm <- brownian.bridge.dyn(object=data2, location.error=12, dimSize=125, ext=1.2,
time.step=2, margin=15)
plot(dbbmm)
# \dontshow{
data(fishers)
leroy <- leroy[1:50]
ricky<-move(system.file("extdata","ricky.csv.gz", package="move"))[1:50]
leroy <- spTransform(leroy,
crs(ricky))
stack <- moveStack(list(leroy,ricky))
t <- brownian.bridge.dyn(spTransform(stack, center=TRUE), location.error=23.5, dimSize=1125,
time.step=6, ext=1.2)
# }
Run the code above in your browser using DataLab