我想使用管道计算多个栅格图层(堆栈对象)的平均值和标准偏差。
require(dplyr)
require(raster)
require(dismo)
fnames <- list.files(path=paste(system.file(package="dismo"), '/ex', sep=''),
pattern='grd', full.names=TRUE )
predictors <- raster::stack(fnames[1:5])
predictors %>% raster::stack(mean(.), calc(., sd, na.rm = T))
上面的代码有效,但是将原始图层保留在最终的栅格堆栈中。 结果如下:
class : RasterStack
dimensions : 192, 186, 35712, 7 (nrow, ncol, ncell, nlayers)
resolution : 0.5, 0.5 (x, y)
extent : -125, -32, -56, 40 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : bio1, bio12, bio16, bio17, bio5, layer.1, layer.2
min values : -23.00000, 0.00000, 0.00000, 0.00000, 61.00000, 48.80000, 43.48218
max values : 289.000, 7682.000, 2458.000, 1496.000, 422.000, 2436.000, 3067.294
我的问题是,是否有可能排除原始层(前5层)并仅将新层保留在最终输出中,而无需额外的子集或为此编写自定义函数?
谢谢, 艾哈迈德(Ahmed)