我正在尝试使用R中adehabitatHR的“ kernalud”函数来计算模拟轨迹的起始范围大小。
我有一个大小为4000 x 4000像素的网格的x和y像素坐标轨迹。因此,轨迹的障碍是该网格的边界。我用来创建网格和边界的代码(此代码已发布在其他几个问题的答复中)如下:
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
关于此函数为什么会产生这些错误的任何想法?