[R-sig-Geo] Speed filter vmask() in argosfilter package
Tim Clark
mudiver1200 at yahoo.com
Wed Oct 28 22:44:00 CET 2009
Dear List,
I am trying to filter animal tracking data based on speed using the vmask() function in argosfilter. However, when I check the filtered data against speed that I compute in the adehabitat package it shows that the filter is not working correctly. The vmask() function requires coordinates in long/lat while adehabitat requires it in UTM. I would greatly appreciate it if someone could check my work and let me know what I am doing wrong. I have included an example below using data from adehabitat.
Thanks,
Tim
library(argosfilter)
library(adehabitat)
#Data
data(puechabon)
locs <- puechabon$locs #Dataframe with location and date for individual animal over time
#Adehabitat package
#Variables
xy <- locs[,c("X","Y")] #Locations in UTM
id<- as.character(locs$Name)
da <- as.character(locs$Date)
da <- as.POSIXct(strptime(as.character(locs$Date),"%y%m%d"))
#Create ltraj
tr1 <- as.ltraj(xy,date = da, id = id)
#Calculate speed
sp1<-lapply(ltr,function (l){l$dist/l$dt}) #Compute speed in m/sec
#Unlist
sp2<-round(unlist(sp1,recursive = TRUE),2)
#Argosfilter package
#Transform coordinates to long/lat
library(rgdal)
SP.utm<-data.frame(locs[,c("X")],locs[,c("Y")])
SP.utm<-SpatialPoints(SP.utm,proj4string=CRS("+proj=utm +zone=31 +ellps=WGS84"))
SP.ll<-spTransform(SP.utm, CRS("+proj=longlat +ellps=WGS84"))
SP.ll<-data.frame(SP.ll)
names(SP.ll)<-c("lon","lat")
lon<- SP.ll$lon
lat<- SP.ll$lat
#filter by speed
mfilter<-vmask(lat,lon,dtime=da,vmax=1)
filtered<- locs[mfilter!=c("removed"),]
#Adehabitat package
#Create ltraj
xy <- filtered[,c("X","Y")]
id<- as.character(filtered$Name)
da <- as.character(filtered$Date)
da <- as.POSIXct(strptime(as.character(filtered$Date),"%y%m%d"))
tr1 <- as.ltraj(xy,date = da, id = id)
#Calculate speed
sp3<-lapply(ltr,function (l){l$dist/l$dt}) #Compute speed in m/sec
#Unlist
sp4<-round(unlist(sp1,recursive = TRUE),2)
#Check data
quantile(sp2, probs = seq(.5, 1, 0.1), na.rm = TRUE)
quantile(sp4, probs = seq(.5, 1, 0.1), na.rm = TRUE)
Tim Clark
Department of Zoology
University of Hawaii
More information about the R-sig-Geo
mailing list