0

我正在使用 adehabitatHR 来估计企鹅的家园范围。自然,它们不能在陆地上游泳,我一直在尝试在海岸线周围添加边界,以防止 KUD 增加超出可行范围的区域。

我试图为其创建边界的区域是澳大利亚菲利普港湾的北端。我目前的(非常粗略的)边界点依次是:

-37.9967038 145.0346375

-37.8607599 144.9783325

-37.8341917 144.9131012

-37.8580493 144.8375702

-37.9988682 144.6487427

虽然它被接受为障碍,并且可以绘制在地图上,但当我尝试将其作为 KUD 中的边界实现时,我不断收到错误消息:

'3*h 中的错误:二进制运算符的非数字参数'

有谁知道这意味着什么以及我该如何解决?

谢谢!

4

1 回答 1

0

确保您在输入作为 KUD 的边界之前遵循所有这些步骤。

bnd <- structure(list(x = c(-37.9967038, -37.8607599, -37.8341917, 
                            -37.8580493, -37.9988682),
                      y = c(145.0346375, 144.9783325, 144.9131012,
                            144.8375702, 144.6487427)),
                 .Names = c("x", "y"))

bnd <- do.call("cbind", bnd)
Slo <- Line(bnd)
Sli <- Lines(list(Slo), ID = "Frontiers")
barrier <- SpatialLines(list(Sli))

因此,对象barrier是您的边界,因此您需要在 kud 函数中指定它:

kernelUD("your spatial data", h = "your bandwidth", grid = "your grid",
          boundary = barrier)

一切顺利,

于 2018-03-06T04:44:07.597 回答