首页 > 解决方案 > 条件下栅格的像元数

问题描述

我有一个二进制光栅文件,我想计算值为 1 的像素数。我如何用 R 做到这一点?

标签: rrasterr-raster

解决方案


Ben Bolker 的解决方案,但随后使用terra(替换为raster

set.seed(101)
library(terra)
r <- rast(matrix(sample(0:1,size=10000,replace=TRUE),100))
global(r, sum)
#       sum
#lyr.1 4984

要计算1非二进制栅格中 s 的数量,并考虑NAs,我更喜欢

global(r==1, sum, na.rm=TRUE)

超过

global(r, function(x) sum(x==1, na.rm=TRUE))

因为前者也适用于非常大的栅格,因为“sum”是一个可以分块计算的已知函数。


推荐阅读