getRecursions3D {recurse} | R Documentation |
Calculates recursion information from the 3D trajectory
Description
A sphere of radius R is drawn around each point in the trajectory. The number of revisits is calculated as the number of segments of the trajectory passing through that sphere.
Usage
getRecursions3D(
x,
radius,
threshold = 0,
timeunits = c("hours", "secs", "mins", "days"),
verbose = TRUE
)
## S3 method for class 'data.frame'
getRecursions3D(
x,
radius,
threshold = 0,
timeunits = c("hours", "secs", "mins", "days"),
verbose = TRUE
)
Arguments
x |
A data frame with the trajectory data in five columns (the x-coordinate, the y-coordinate, the z-coordinate, the datetime, and the animal id). |
radius |
numeric radius to use in units of the (x,y,z) location data to detect recursions. |
threshold |
a time difference (in units |
timeunits |
character string specifying units to calculate time differences in for the time spans inside the radius and since the
visit in |
verbose |
|
Details
For each point in the trajectory, a sphere of radius R is drawn around that point. Then the number of segments of the trajectory passing through that sphere is counted. This is the number of revisits, so each point will have at least one revisit (the initial visit). For each revisit, the time spent inside the sphere is calculated, as well as the time since the last visit (NA for the first visit). In order to calculate the time values, the crossing time of the radius is calculated by assuming linear movement at a constant speed between the points inside and outside the sphere.
Projection. Consider the projection used. Since segments are counted passing through spheres
drawn around points, an equal area projection would ensure similar size comparisons (e.g., spTransform
).
Either single or multiple individuals are supported, but be aware that this function will be slow with
large amounts of data (e.g. millions of points), so consider pre-specifying the locations
(getRecursionsAtLocations
) or use clustering. Multiple individuals are handled via the id
column of the
data.frame.
Value
A list with several components, revisits
and residenceTime
are vectors of the same length as the x
dataframe. revisits
is the number of revisits for each
location, where 1 means that there were
no revisits, only the initial visit. residenceTime
is the total time spent withing the radius. radius
is the specified radius used for all the calculations. timeunits
is the specified time units used to specify
timespans.
When verbose = TRUE
, additional information
is also returned, dists
and revisitStats
. Next, dists
gives the distance matrix between
all locations. Finally, revisitStats
gives further statistics on each visit. These are calculated
per location (i.e., no aggregation of nearby points is performed), and give the index and location
of the point of the track at the center of the radius, the radius entrance and exit time of the track for that
visit, how much time was spent inside the radius, and how long since the last visit (NA
for the first visit).
Methods (by class)
-
getRecursions3D(data.frame)
: Get recursions for a data.frame object consisting of columns x, y, z, datetime, and id
Author(s)
Chloe Bracis <cbracis@uw.edu>
See Also
Examples
data(martin)
revisits = getRecursions(martin, radius = 1)
plot(revisits, martin, legendPos = c(10, -15))
drawCircle(10, -10, 1)