Clément, Thank you for your great explanation and working through the example. It makes a lot more sense now.
Aloha, Tim Tim Clark Department of Zoology University of Hawaii --- On Sat, 8/1/09, Clément Calenge <[email protected]> wrote: > From: Clément Calenge <[email protected]> > Subject: Re: [AniMov] Trying to set tolerance limits in sett0/setNA > To: [email protected] > Date: Saturday, August 1, 2009, 1:52 AM > Dear Tim, > > > [snip] > > As I understand it, the tol level determines how close > the date value should be to dt. However, in my example > I have a time of 13:49 which is 4 minutes from 13:45. > This should return NA in my thinking, not be rounded downto > 13:45. Also, the first value returned should have been > the 13:29 data since it is closer to 13:30 than the 13:31:30 > data. I would appreciate your help in explaining "tol" > and how to set limits for my data. Please cc > mudiver1...@yahoo in your reply. Otherwise my browser > won't let me respond to the thread. > > > > Not exactly. Actually, sett0 is not intended to transform > an irregular > trajectory into a regular one, it is provided to "round" > the timing of > relocations of theoretically regular trajectories, so that > the resulting > trajectory is exactly regular. The help page indicates: > > "many functions of 'adehabitat' require exact regular > trajectories. > 'sett0' allows to round the date so that all the successive > relocations > are separated exactly by 'dt'. *****The function > 'sett0' requires that > the imprecision is at most equal to 'tol'****. " > > Therefore, it is required that the imprecision is at most > equal to tol > in the trajectory. Similarly for setNA, the help page > indicates: > > "This function places missing values in ****an > (approximately) regular > trajectory***, when a relocation should have been > collected, but is > actually missing." > > Now, consider your case: > > da<-as.POSIXct(c("2009-07-31 13:29:00", "2009-07-31 > 13:31:30", > "2009-07-31 13:49:00", "2009-07-31 14:00:00","2009-07-31 > 14:15:00", > "2009-07-31 14:45:00")) > > > The trajectory is not regular with a tolerance of 2 minutes > (the first > two relocations are separated by a lag of 2 min 30 instead > of 15) and > does not respect this constraint. The result is therefore: > > > t3<-sett0(t2, refda, dt=15,tol=2, > units = "min") > Error in FUN(1L[[1L]], ...) : > ltraj contains irregular data (time lag > or < tol) > > This indicates that some data management is required before > the use of > this function... for example the following code is ok: > > #Trajectory variables > x<-c(808993.9,809172.2,809271.6,809284.6 > ,809552.3,809364.3) > y<-c(2189323,2189721,2190037,2190296,2190984,2191737) > xy<-data.frame(x,y) > names(xy)<-c("Long.utm","Lat.utm") > id<-as.character(rep("Test",6)) > da<-as.POSIXct(c("2009-07-31 13:29:00", "2009-07-31 > 13:31:30", > "2009-07-31 13:49:00", "2009-07-31 14:00:00","2009-07-31 > 14:15:00", > "2009-07-31 14:45:00")) > > ## remove the first one: > da <- da[-1] > xy<-xy[-1,] > id <- id[-1] > > #Create type II trajectory > t1<- as.ltraj(xy,id=id,date=da)## use sett0 > > ## use setNA with a tolerance of 5 minutes (2 min will > fail: > ## according to this tolerance, the data are irregular > [the > ## second relocation is more than 2 min from when it should > be > ## - 4 min actually]) > refda <- strptime("00:00", "%H:%M") > t2 <- setNA(t1, refda, dt=15, tol = 5, units = "min") > > ## use sett0 with a tolerance of 5 minutes for the same > reason > t3<-sett0(t2, refda, dt=15,tol=4, units = "min") > > > And the result is: > > > t3 > > *********** List of class ltraj *********** > > Type of the traject: Type II (time recorded) > Regular traject. Time lag between two locs: 900 seconds > > Characteristics of the bursts: > id burst nb.reloc NAs > date.begin > date.end > 1 Test Test > 6 1 2009-07-31 13:30:00 2009-07-31 > 14:45:00 > > The trajectory is regular and contains one missing value. > Hope this helps, > > > Clément Calenge > > -- Clément CALENGE > Office national de la chasse et de la faune sauvage > Saint Benoist - 78610 Auffargis > tel. (33) 01.30.46.54.14 > > _______________________________________________ > AniMov mailing list > [email protected] > http://lists.faunalia.it/cgi-bin/mailman/listinfo/animov > > > _______________________________________________ AniMov mailing list [email protected] http://lists.faunalia.it/cgi-bin/mailman/listinfo/animov
