在R中计算栅格砖中的全局统计数据忽略像素值0

时间:2016-04-28 14:35:08

标签: r raster

我正在尝试以40个栅格砖的堆栈计算全局统计数据(SD),而不必将0替换为NA。有没有比下面更快的方法呢?我可以创建一个循环,以便分别为每个砖计算globalSD。但它仍然无法解决在我的计算中忽略0的问题。

rc <- function(x) { ifelse(x >0, cellStats(fSDstack, stat="sd"), ifelse(x <= 0,x,NA)) }

test <- calc(fSDstack,fun=rc)

由于 的TiB

1 个答案:

答案 0 :(得分:1)

这个怎么样?

library(raster)
b <- brick(system.file("external/rlogo.grd", package="raster"))

# here using 255 instead of 0, as that goes better with the example data 
rc <- function(x) { sd(x[x != 255], na.rm=TRUE) }
test <- calc(b,fun=rc)