Я пытаюсь сделать некоторые условные логи c на своем растровом кирпиче. В приведенном ниже коде myFun1
правильно генерирует raster.out1
. Но myFun2
генерирует ошибку при попытке произвести raster.out2
. Сообщение об ошибке:
Ошибка, в которой (тест): аргумент 'which' не является логическим
Кроме использования переменной со значением 5, эти две функции выглядят одинаково. Я что-то упускаю явно.
library(raster)
raster.in <- raster(nrows=100, ncols=100)
raster.in[] <- runif(ncell(raster.in), min = -10, max = 10)
const1 <- 5
myFun1 <- function(x, ...) {
ifelse(x <= 5, 5, x )
}
raster.out1 <- calc(raster.in, fun = myFun1)
myFun2 <- function(x, tbase, ...) {
ifelse(x <= tbase, tbase, raster.in)
}
raster.out2 <- calc(raster.in, fun = myFun2(x = raster.in, tbase = const1))