从另一个栅格堆栈创建栅格堆栈,但不包括原始图层(使用tidyverse管道)

时间:2020-08-28 17:42:06

标签: r dplyr tidyverse pipeline r-raster

我想使用管道计算多个栅格图层(堆栈对象)的平均值和标准偏差。

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)

0 个答案:

没有答案