块统计——R&ArcGIS



1. 块统计

将栅格分成不重叠的小区域,在小区域中对栅格进行计算。

ArcGIS块统计工具官方解释:

将输入分割放入非重叠块中,然后计算每个块中值的统计数据。在输出中,将值分配给每个块中的所有像元。

图解:

3*3,取该块中最大值。

该图中,ArcGIS工具用法为:

OutRas = BlockStatistics(InRas1, NbrRectangle(3,3,MAP), “MAXIMUM”, “”)

2. 块统计的用途

块统计工具可用于替代重采样工具将栅格从精细分辨率重采样到粗糙分辨率。但是,其不使用最邻近、双线性或三次卷积等重采样方法,而是为粗糙分辨率的栅格像元分配原精细分辨率下各像元的最大值、最小值或平均值。要完成此操作,应选用适当的统计数据,例如平均值或最大值。

3. 类似工具——聚合

“制图综合”工具集中的聚合工具在以下方面与块统计类似:它允许根据空间窗口内各像元的总和值、平均值、中值、最小值或最大值(由所需输出分辨率确定)实现聚合。但这两种方法也存在两个主要区别:

  • 聚合工具生成的输出栅格会被重采样到所需分辨率。
  • 聚合工具中不存在指定邻域这一概念。邻域与输出块完全相同,始终为矩形,且包含相同的像元位置。在聚合工具中,块的大小由达到期望分辨率所需的像元数来确定。

4. R脚本

rm(list = ls())
setwd("B:/BlockStaHomeWrok/")
library(sp)
library(raster)
library(rgdal)
rasterdata = raster("SJZ.tif")#读取raster文件
RasterdataCrs = crs(rasterdata)#原始数据坐标系
ExtentRaster=extent(rasterdata)
data = as.matrix(rasterdata)
#提取地类8------------------------------
for (i in 1:nrow(rasterdata)) {
  for (j in 1:ncol(rasterdata)) {
    if (data[i, j] == 80) {
      data[i, j] = 100
    }
    else
      data[i, j] = 0
  }
}
#聚合分块-该脚本的灵魂~--------------------------------------------
AggData=aggregate(raster(data), fact=c(33,33),FUN=mean)
#输出--------------------------------------------------
writeRaster(AggData,"AggRaster", format = "GTiff",overwrite = TRUE)
plot(AggData)

5. ArcGIS块统计的使用


文章作者: 李世昱
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 李世昱 !
评论
  目录