adehabitatHR locoh.k сиротские дыры - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь оптимизировать параметр k, используя AdehabitatHR LoCoH.k.area, и он останавливается, когда топология такова, что он не может создать многоугольник. Сообщение:

rgeos_PolyCreateComment: потерянная дыра, не может найти содержащий многоугольник для отверстия по индексу 12.

Я сделал несколько успешных одиночных запусков, используя LoCoH.k, и только несколько из них не работали из-за бесхозных дыр.

Можно ли продолжать LoCoH.k.area зацикливаться на значениях k, указанных в векторе, даже если предыдущий создает сиротское отверстие?

Спасибо, Джанин

1 Ответ

0 голосов
/ 05 сентября 2018

Вы не можете обернуть LoCoH.k.area функцию в tryCatch. Например. функция с krange = 5:9 аргументом throws:

Ошибка в 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
...