brownian.bridge慢速计算和区域错误.grid[1,1]:维数不正确



我正试图在加拿大北部的一个迁徙时期为驯鹿计算一些BBMM.contors。我仍然处于使用这个函数的探索阶段,并且已经完成了一些教程,这些教程效果很好,但现在我正在尝试我的样本数据,brownian.bridge函数似乎需要花费很长时间。我知道这是一个可能需要很长时间才能计算的函数,但我曾尝试将我的数据细分为包含越来越少的位置,只是为了在承诺运行包含数千个位置的数据集之前看看最终产品是否是我想要的。目前,我在子集中只有34个位置,我已经等了一夜,等待它在没有完成的情况下运行。当我使用1000个位置的Panther位置数据时,运行不到一分钟,所以我认为我的代码或数据有问题。如能为您提供帮助,我们将不胜感激。

#Load data
data<-(X2017loc)
#Used to sort data in code below for all caribou
data$DT <- as.POSIXct(data$TimeStamp, format='%Y-%m-%d %H:%M:%S')
#Sort Data
data <- data[order(data$SAMPLED_ANIMAL_ID, data$DT),]
#TIME DIFF NECESSARY IN BBMM CODE
###Joel is not sure about this part...Timelag is maybe time until GPS  upload???.
timediff <- diff(data$DT)
data <- data[-1,] 
data$timelag <-as.numeric(abs(timediff))
#set Timelag
data <- data[-1,] #Remove first record with wrong timelag
data$SAMPLED_ANIMAL_ID <- factor(data$SAMPLED_ANIMAL_ID)
data<-data[!is.na(data$timelag), ]
data$LONGITUDE<-as.numeric(data$LONGITUDE)
data$LATITUDE<-as.numeric(data$LATITUDE)
BBMM = brownian.bridge(x=data$LONGITUDE, y=data$LATITUDE, time.lag=data$timelag, location.error=6, cell.size=30)
bbmm.summary(BBMM)

附加信息:时间滞后以秒为单位,并且项圈有6米位置错误

我不确定cell.size指的是什么,以及我应该如何确定这个数字。

SAMPLED_ANIMAL_ID   LONGITUDE   LATITUDE    TimeStamp   timelag 
218 -143.3138219    68.2468358  2017-05-01 02:00    18000 
218 -143.1637592    68.2687447  2017-05-01 07:00    18000 
218 -143.0699697    68.3082906  2017-05-01 12:00    18000 
218 -142.8352869    68.3182258  2017-05-01 17:00    18000 
218 -142.7707111    68.2892111  2017-05-01 22:00    18000 
218 -142.5362769    68.3394269  2017-05-02 03:00    18000 
218 -142.4734997    68.3459528  2017-05-02 08:00    18000 
218 -142.3682272    68.3801822  2017-05-02 13:00    18000 
218 -142.2198042    68.4023253  2017-05-02 18:00    18000 
218 -142.0235464    68.3968672  2017-05-02 23:00    18000

我建议使用cell.size=100而不是area.grid,因为对于area.grid,您必须为所有动物定义一个唯一的矩形网格(这可能会增加计算时间)。

好的,我已经回答了我最初的问题,因为我缺少以下代码来将latlong重新编程到UTM。

data <- SpatialPoints(data[ , c("LONGITUDE","LATITUDE")], proj4string=CRS("+proj=longlat +ellps=WGS84"))
data <- spTransform(data, CRS("+proj=utm +west+zone=7 +ellps=WGS84"))

最新更新