#raster #kernel-density
#растр #плотность ядра
Вопрос:
Я хочу создать модель распределения видов (предсказать пригодность среды обитания для вида в Чили на основе записей о встречаемости и слоев окружающей среды (предикторов)). Поэтому мне нужно создать фоновые точки, которые лежат в пределах растра плотности ядра (на основе моих точек появления). Когда я запускаю последнюю часть кода, я получаю ошибку: Ошибка в sample.int(длина(x), размер, замена, вероятность) : NA в векторе вероятности.
presences lt;- which(values(occur.chile) == 1) pres.locs lt;- coordinates(occur.chile)[presences, ] dens lt;- kde2d(pres.locs[,1], pres.locs[,2], n = c(nrow(occur.chile), ncol(occur.chile))) dens.ras lt;- raster(dens) dens.ras2 lt;- resample(dens.ras, predictors) bg lt;- xyFromCell(dens.ras2, sample(which(!is.na(values(subset(predictors, 1)))), 10000, prob=values(dens.ras2)[!is.na(values(subset(predictors, 1)))]))
Комментарии:
1. Не могли бы вы, пожалуйста, привести небольшой воспроизводимый пример (см. Файлы справки R, чтобы воспроизвести это)? Кроме того, можете ли вы разделить последнюю строку на отдельные операторы, чтобы мы могли видеть, где возникает ошибка (она вряд ли читается так)?
2. Я нашел решение: мне нужно было установить значения NA равными 0: dens.ras2[is.na(dens.ras2[])]