Пожалуйста, всегда включайте минимальный воспроизводимый пример, такой как:
library(raster)
s <- stack(system.file("external/rlogo.grd", package="raster"))
cutoff <- maxValue(s) * .95
cutoff
#[1] 242.25 242.25 242.25
Теперь вы можете сделать
s[s < cutoff] = NA
s
#class : RasterBrick
#dimensions : 77, 101, 7777, 3 (nrow, ncol, ncell, nlayers)
#resolution : 1, 1 (x, y)
#extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
#crs : +proj=merc +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#source : memory
#names : red, green, blue
#min values : 243, 243, 243
#max values : 255, 255, 255
Но есть ошибка, когда RasterStack велик (и должен записать в файл) --- и это то, что вы наткнулись. Мы можем подражать этой ситуации с rasterOptions(todisk=TRUE)
rasterOptions(todisk=TRUE)
s[s < cutoff] = NA
#Error in value[j, ] : incorrect number of dimensions
Я попытаюсь это исправить. Вот обходной путь
s <- stack(system.file("external/rlogo.grd", package="raster"))
cutoff <- maxValue(s) * .95
x <- sapply(1:nlayers(s), function(i) reclassify(s[[i]], cbind(-Inf, cutoff[i], NA)))
x <- stack(x)