Dear ctmm group,
Reading through past discussions in this group has helped me immensely to learn and understand various concepts. Here am writing to seek guidance and clarification regarding model fitting and variogram interpretation for GPS tracking data from translocated elephants.
Background & Observations:Since most individuals exhibit non-residential/dispersal phases, should I fit simpler models like IID or BM separately for those segments, or is it statistically valid to proceed with the best-fit continuous-time movement model (OUF anisotropic) to estimate speed and diffusion across all phases?
My data consists of irregular sampling intervals of 30 and 60 minutes, which I have accounted for in the variograms using the dt function. Given that the velocity autocorrelation timescale may be shorter than or close to these sampling intervals that can limit direct speed estimation based on frameworks (Scale-insensitive estimation of speed and distance traveled from animal tracking data | Movement Ecology | Springer Nature Link) is it methodologically sound to rely on diffusion rates as an alternative measure during the dispersal phase? (Following approaches discussed in recent literature on diffusion rates from coarse tracking data (Are your data too coarse for speed estimation? Diffusion rates as an alternative measure of animal movement | bioRxiv))
I would greatly appreciate any feedback on this workflow, as well as pointers to any empirical examples or literature using ctmm to analyze dispersal phases under similar sampling regimes. For your reference, I have attached both the R script used for model fitting and a PDF containing the corresponding variograms.
Thank you for your time and expertise.
Script:
#load the csv
mat_csv <- read.csv("MAT.csv")
mat_csv <- subset(mat_csv,
select=c(Tag,
Time.Stamp,
Latitude,
Longitude))
#Parse the Timestamp
mat_csv$Time.Stamp <- as.POSIXct(mat_csv$Time.Stamp,
format="%d-%m-%Y %H:%M",
tz="Asia/Kolkata") # adjust timezone if needed
#Rename the columns to Match ctmm
colnames(mat_csv) <- c("individual.local.identifier",
"timestamp",
"location.lat",
"location.long")
mat_csv$location.error <- 10 # DOP in meters
#Convert to telemetry, specify projection
mat_tel_utm <- as.telemetry(mat_csv,
timeformat="%Y-%m-%d %H:%M:%S",
projection=CRS("+proj=utm +zone=43 +datum=WGS84"))
# Automated model guess
GUESS_mat <- ctmm.guess(mat_tel_utm, interactive=FALSE)
#Irregular Sampling Schedules
dt.plot(mat_tel_utm)
dt_mat <- c(0.5,1) %#% "hour"
SVF_mat_irregular <- variogram(mat_tel_utm,dt=dt_mat)
variogram.fit(SVF_mat_irregular)
GUESS_mat_irregular <- ctmm.guess(mat_tel_utm, variogram = SVF_mat_irregular, interactive = TRUE)
FITZ_mat <- ctmm.select(mat_tel_utm,
GUESS_mat,
verbose = TRUE,
cores = 7)
summary(FITZ_mat)
# Extract and view the full parameter summary for matturu's best model
summary(FITZ_mat[[1]])
Hi Chris,
Thank you very much for taking the time to clarify this and for explaining the parameter mechanics behind (range=FALSE),that makes total sense.
I will go ahead and implement these suggestions for the isolated dispersal phases across all individuals in my dataset. I'll continue processing the rest of the tracking data and will reach out again if any questions arise down the road.
Thanks again for your time and guidance.
Best regards,
Chethan