Проблемы с расчетом домашнего диапазона с помощью куд - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь вычислить размер домашнего диапазона для имитируемой траектории, используя функцию "kernalud" adehabitatHR в R.

У меня есть траектория координат пикселей x и y из сетки, которая 4000 на 4000пикселей в размере.Таким образом, барьер для траектории - это границы этой сетки.Код, который я использовал для создания сетки и границы (этот фрагмент кода был опубликован в нескольких других ответах на вопросы), приведен ниже:

bound<-structure(list(x=c(1,1,4000,4000,1),y=c(4000,1,1,4000,4000)),           .Names = c("x", "y"))
lines(bound,lwd=3)
## We convert bound to SpatialLines:
Slo1 <- Line(bound)
Sli1 <- Lines(list(Slo1), ID="1")
barrier <- SpatialLines(list(Sli1))

xres <- seq(1,4000,by=1) # where resolution is the pixel size you   desire 
yres <- seq(1,4000,by=1)
xyres <- expand.grid(x=xres,y=yres)
x=xyres$x
y=xyres$y
coordinates(xyres) <- ~x + y
gridded(xyres) <- TRUE
class(xyres)

xy<-data
xy<-SpatialPoints(xy)

kud <- kernelUD(xy, h="href", grid=xyres, boundary=barrier)
plot(kud)
homerange <- getverticeshr(kud)

Мои данные не проецируются, поскольку координаты x и y простокоординаты пикселей, хотя я не думаю, что это проблема.Ошибка, полученная с последними тремя строками:

Error in 3 * h : non-numeric argument to binary operator

и при попытке получить домашний диапазон:

Error in getverticeshr.estUD(kud) : 
  The grid is too small to allow the estimation of home-range.
You should rerun kernelUD with a larger extent parameter

Есть идеи относительно того, почему эта функция генерирует эти ошибки?

...