rasterize.ltraj | R Documentation |
The function rasterize.ltraj
allows to rasterize a trajectory.
rasterize.ltraj(ltr, map)
ltr |
An object of class |
map |
An object inheriting the class |
A list of objects of class SpatialPointsDataFrame
, with one
component per burst in the object of class ltraj
. Each object
contains the coordinates of the pixels of the maps traversed by the
trajectory. The number of the step that traverse each pixel is
indicated.
Clement Calenge clement.calenge@ofb.gouv.fr
as.ltraj
for additional information about objects of
class ltraj
data(puechabonsp)
data(puechcirc)
## Show the trajectories on the map
plot(puechcirc, spixdf = puechabonsp$map)
## rasterize the trajectories
ii <- rasterize.ltraj(puechcirc, puechabonsp$map)
## show, e.g. the first rasterized trajectory
tr1 <- ii[[1]]
head(tr1)
plot(tr1)
## so, for example, to see the pixels traversed by the third step of the
## trajectory
points(tr1[tr1[[1]]==3,], col="red")
## So, if we want to calculate the mean elevation for each step:
mel <- over(tr1, puechabonsp$map)
mo <- tapply(mel[[1]], tr1[[1]], mean)
plot(mo, ty="l")
## It is clear that elevation decreases at the middle of the monitoring
## and increases again at the end (the animal sleeps on the plateau
## and goes down in the vineyards during the night).
## Now define an infolocs component in puechcirc corresponding to the
## mean elevation:
val <- lapply(1:length(ii), function(i) {
## get the rasterized trajectory
tr <- ii[[i]]
## get the pixels of the map
mel <- over(tr, puechabonsp$map)
## calculate the mean elevation
mo <- tapply(mel[[1]], tr[[1]], mean)
## prepare the output
elev <- rep(NA, nrow(puechcirc[[i]]))
## place the average values at the right place
## names(mo) contains the step number (i.e. relocation
## number +1)
elev[as.numeric(names(mo))+1] <- mo
## Checks that the row.names are the same for
## the result and the ltraj component
df <- data.frame(elevation = elev)
row.names(df) <- row.names(puechcirc[[i]])
return(df)
})
## define the infolocs component
infolocs(puechcirc) <- val
## and draw the trajectory
plotltr(puechcirc, "elevation")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.