首页 > 解决方案 > adehabitatHR locoh.k 孤儿洞

问题描述

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

rgeos_PolyCreateComment:孤立孔,在索引 12 处找不到包含孔的多边形。

我已经使用 LoCoH.k 完成了许多成功的单次运行,只有少数由于孤立洞而没有运行。

LoCoH.k.area即使先验产生一个孤立洞,是否可以继续循环遍历向量中指定的 k 值?

谢谢,珍妮

标签: radehabitathr

解决方案


您不能将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

推荐阅读