Home range estimate 0, units is "area (square microns)", in error?

11 views
Skip to first unread message

Michael Roast

unread,
Jun 2, 2026, 6:00:12 AM (4 days ago) Jun 2
to ctmm R user group
I have a many individual animal tracks over different months of the year and I have estimated their home ranges on an individual by month basis. All individuals are more or less range resident but have slight seasonal or individual differences in home range size and location. 

There are too many to individually check variograms, and I have automated this, filtering individuals with months of little or poor data, and low estimated DOF. 

The weighted AKDE output appears meaningful in almost all cases except 39/1462 home ranges where the estimated area and confidence intervals are all 0 and the units is given as "area (square microns)". I *think* this is coming from processing the dataset collectively as a list, and needing to specify a collective extent and a lower grid resolution for computer processing reasons, when some individuals seem to have small homerange sizes that are less than the grid resolution? 

# Input data and generate variograms
plovers <- as.telemetry(df_move, timezone="Atlantic/Cape_verde")
SVF <- lapply(plovers, FUN = function(x) variogram(x))

# Next steps are in loops producing lists of objects along the ctmm workflow e.g.: 
GUESS <- list()
for(i in 1:length(plovers)){
  GUESS[[i]] <- ctmm.guess(plovers[[i]], variogram = SVF[[i]], interactive = FALSE)  
}


# Key lines in next loops
FITS[[i]] <- ctmm.select(plovers[[i]], GUESS[[i]], trace = 3, cores = -1)
wAKDEs[[i]] <- akde(plovers[[i]],FITS[[i]],weights=TRUE, grid=list(extent=EXT, dr=500, align.to.origin=TRUE))

# wAKDE estimates
SUMMARIES <- lapply(wAKDEs, FUN = function(x) summary(x))

# Element number 85 shows issue.
> SUMMARIES[[85]]
$DOF area bandwidth 461.9586 463.9999 $CI low est high area (square microns) 0 0 0 attr(,"class") [1] "area"


When I run animal track #85 separately and then generate the wAKDE independently with default grid, there is no problem. With low resolution the problem seems to be repeatable. With hi resolution (not default), the area estimate changes. 


vg <- variogram(plovers[[85]])
guess <- ctmm.guess(plovers[[85]], variogram = vg, interactive = FALSE)
fit <- ctmm.select(plovers[[85]], guess, trace = 3, cores = -1)
defAKDE <- akde(plovers[[85]], fit, weights=TRUE)
lowAKDE <- akde(plovers[[85]], fit, weights=TRUE, grid=list(extent=EXT, dr=500, align.to.origin=TRUE))
hiAKDE <- akde(plovers[[85]], fit, weights=TRUE, grid=list(extent=EXT, dr=50, align.to.origin=TRUE))


> summary(defAKDE) $DOF area bandwidth 461.9586 463.9999 $CI low est high area (hectares) 1.208742 1.327008 1.450715 attr(,"class") [1] "area" > summary(lowAKDE) $DOF area bandwidth 461.9586 463.9999 $CI low est high area (square microns) 0 0 0 attr(,"class") [1] "area" > summary(hiAKDE) $DOF area bandwidth 461.9586 463.9999 $CI low est high area (hectares) 1.805207 1.981833 2.166585 attr(,"class") [1] "area"

Ultimately, I am trying to compare homerange sizes of different individuals in different months, and generate a mean home range of all individuals in different months, so I need the homeranges to be comparable and computed collectively, but the grid size is a major limitation when computing the homeranges collectively. When using the mean(AKDE), are these individuals (like track #85) not contributing because they have estimate size 0? Can the home range sizes still be calculated at a variable resolution when calculated in  the akde() function collectively? I feel like I must be missing something that I can't compare many home ranges of different sizes because of computing and resolution issues? 

Thanks for any help you can offer on this and any suggestions to solve.
Reply all
Reply to author
Forward
0 new messages