r - 条件下栅格的像元数
问题描述
我有一个二进制光栅文件,我想计算值为 1 的像素数。我如何用 R 做到这一点?
解决方案
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 的数量,并考虑NA
s,我更喜欢
global(r==1, sum, na.rm=TRUE)
超过
global(r, function(x) sum(x==1, na.rm=TRUE))
因为前者也适用于非常大的栅格,因为“sum”是一个可以分块计算的已知函数。
推荐阅读
- docker - 如何将 Docker 容器暴露给 Web
- hyperledger-fabric - Retrieving data from blockchain with random id's
- sql - SQL:检查约束以强制使用任意长度的正则表达式?
- git - 每次在 pythonanywhere 中克隆或拉取存储库时,我是否必须登录 github 帐户?
- c# - 在 Linux 上使用 .net 核心创建的 Zip 文件缺少读取权限
- sql - 根据范围将总和拆分为类别
- groovy - 如何在 Groovy 中将目录从一个位置复制到另一个位置
- syntax - 奇怪的语法错误'错误:预期是`,`或`:`之一,发现`else`'
- jasperserver - Jasper Reports Server - 生成报告时行下的随机空白
- javascript - Javascript计算分配给对象属性的唯一值总数