adehabitatHR locoh.k孤洞

时间:2018-08-29 06:27:54

标签: r adehabitathr

我正在尝试使用AdehabitatHR LoCoH.k.area优化k参数,当拓扑无法生成多边形时,它将停止运行。消息是:

  

rgeos_PolyCreateComment:孤立的孔,找不到包含多边形的孔   用于索引为12的孔。

我已经使用LoCoH.k成功完成了多次单次运行,但只有少数由于孤孔而无法运行。

即使前一个产生了一个孤洞,也可以保持LoCoH.k.area在向量中指定的k个值之间循环吗?

谢谢珍妮

1 个答案:

答案 0 :(得分:0)

您不能在LoCoH.k.area中包装tryCatch函数。例如。具有krange = 5:9参数的函数抛出:

  

rgeos :: createPolygonsComment(oobj)中的错误:   rgeos_PolyCreateComment:孤立的孔,找不到包含多边形的孔   用于索引6的孔

请参见下面的代码:

library(adehabitatHR)
data(puechabonsp)
locs <- puechabonsp$relocs

## The call below throws an error
## LoCoH.k.area(locs[, 1], krange = 5:9)

pdf()
y <- sapply(5:9, function(x) tryCatch(
  expr = cbind(LoCoH.k.area(locs[, 1], krange = x), k = x), 
  error = function(e){}, 
  finally = NULL))

dev.off()
do.call(rbind, y)

输出:

     Brock    Calou     Chou     Jean k
1 25.21552 38.61693 83.37389 80.97771 8
2 27.37161 39.10789 86.45349 83.44156 9