Ошибка в kernelUD: требуется не менее 5 перемещений, чтобы соответствовать домашнему диапазону, но иметь более 5 перемещений на группу.

Я проводил оценки домашнего ареала плотности ядра для групп псовых в районе по популяции и на стаю в различных временных масштабах. Однако, когда я пытаюсь запустить kernelUD для подмножества для каждого года, я получаю Error in kernelUD(P17.sp[, "Pack"], h = "href", grid = 500, same4all = TRUE) : At least 5 relocations are required to fit an home range. Ранее я исключил все группы, у которых было менее 5 перемещений, и когда я дважды проверил свой фрейм данных, наименьшее количество перемещений составило 201. Я смог запустить это в глобальном наборе данных (за несколько лет) для каждого пакета, и у меня не было проблем. Любая помощь или понимание будет принята с благодарностью.

Код, который я использовал, приведен ниже. Мой исходный фрейм данных имеет Pack в качестве фактора (и является единственным вектором фактора в фрейме данных) и числовыми координатами в широте/долготе.

library(dplyr)
library(raster)
library(sp)
library(adehabitatHR)
library(lubridate)
library(data.table)

# Make spatial
Final.sp <- copy(Final)
coordinates(Final.sp) <- c("Longitude", "Latitude")
proj4string(Final.sp) <- CRS( "+init=epsg:4326")

#Subset by year
P17.sp <- Final.sp[Final.sp@data$Year == 2017, ]

# Make sure every pack has at least 5 relocations
P17 <- as.data.frame(P17.sp)
P17 %>% group_by(Pack) %>% summarise(n()) %>% view()

# What the output from above looks like
    Year       Pack         n()
#1  2017    Gryffindor      201
#2  2017    Slytherin       222
#3  2017    Hufflepuff      234
#4  2017    Ravenclaw       281
#5  2017    Deatheaters     306
#6  2017    Muggles         577
#7  2017    Dementors       582
#8  2017    Hobbits         787
#9  2017    Elves           861
#10 2017    Orcs            914

# Create KDEs
P17.kde <- kernelUD(P17.sp[,"Pack"], h="href", grid=500, same4all = TRUE)

Error in kernelUD(WP17.sp[, "Pack"], h = "href", grid = 200, same4all = TRUE) : 
  At least 5 relocations are required to fit an home range```

person Charlie_J    schedule 05.02.2021    source источник


Ответы (1)


Получил работу. Похоже, что он переносил пакеты без данных за год подмножества, и они не отображались в моей таблице dplyr, предназначенной для проверки правильности данных. ftable смог показать мне уровни и соответствующее количество очков для каждого пакета. Теперь работает следующий код:

# Subset by year
P17.sp <- Final.sp[Final.sp@data$Year == 2017, ]

# Refactor pack or else it will include packs from other years with no data for subset year
P17.sp@data$Pack <- factor(P17.sp@data$Pack)

# Double check all packs have at least 5 relocations
as.data.frame(ftable(P17.sp@data$Pack))

# Create KDEs
P17.kde <- kernelUD(P17.sp[,"Pack"], h="href", grid=500, same4all = TRUE)

Надеюсь, это поможет всем, кто сталкивается с этой проблемой.

person Charlie_J    schedule 05.02.2021