# Install the crawl package from CRAN by running the command # install.packages("crawl") # This script is tested with version 1.4-1 library(argosTrack) library(crawl) argosClasses <- c("3", "2", "1", "0", "A", "B","Z") argosMult <- rbind(log(c(1, 1.5, 4, 14, 5.21, 20.78,200)), log(c(1, 1.5, 4, 14, 11.08, 31.03,200))) data(subadult_ringed_seal) data(adult_ringed_seal) ArgosMultFactors <- data.frame(Argos_loc_class=argosClasses, errX=log(c(1, 1.83, 4.71, 14.22, 5.21, 20.78, 20.78)), errY=log(c(1, 1.57, 3.88, 14.17, 11.08, 31.03, 31.03)) ) seal <- subadult_ringed_seal[,c("id","date","lc","lon","lat")] #seal <- adult_ringed_seal[,c("id","date","lc","lon","lat")] seal$date=with(seal, as.POSIXct(as.character(date), "%Y-%m-%d %H:%M:%S", tz="GMT")) seal <- seal[,-1] names(seal) <- c('Time','Argos_loc_class','longitude','latitude') seal <- subset(seal, !duplicated(seal$Time)) sealNew <- merge(seal, ArgosMultFactors, by=c("Argos_loc_class"), all.x=TRUE) sealNew <- sealNew[order(sealNew$Time), ] sealNew$Time <- as.POSIXct(sealNew$Time) sealNew$Time <- as.numeric(sealNew$Time)-min(as.numeric(sealNew$Time))+1 initial.val <- list(a1.x=c(sealNew$longitude[1], 0), a1.y=c(sealNew$latitude[1], 0), P1.x=diag(c(1,1)), P1.y=diag(c(1,1))) estTimeCrawl <- system.time(fit <- crwMLE(mov.model=~1, err.model=list(x=~errX, y=~errY), drift.model=FALSE, data=sealNew, coord=c("longitude", "latitude"), polar.coord=TRUE, Time.name="Time", initial.state=initial.val, fixPar=c(NA, 1, NA, 1, NA, NA), control=list(maxit=2000,trace=1, REPORT=10), initialSANN=list(maxit=300, trace=1, REPORT=1))) crawlfit <- crwPredict(fit) plot(crawlfit$mu.x,crawlfit$mu.y)