块统计 (Spatial Analyst)

摘要

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

了解有关“块统计”工作原理的详细信息

插图

Block Statistics with Maximum option illustration
OutRas = BlockStatistics(InRas1, NbrRectangle(3,3,MAP), "MAXIMUM", "")

用法

语法

BlockStatistics (in_raster, {neighborhood}, {statistics_type}, {ignore_nodata})
参数说明数据类型
in_raster

执行“块统计”计算所用的栅格。

Raster Layer
neighborhood
(可选)

邻域类表示用于计算统计数据的各像元周围区域的形状。

可用的不同类型的邻域包括 NbrAnnulusNbrCircleNbrRectangleNbrWedgeNbrIrregularNbrWeight

以下为邻域的形式:

  • NbrAnnulus({innerRadius}, {outerRadius}, {CELL | MAP})
  • NbrCircle({radius}, {CELL | MAP}
  • NbrRectangle({width}, {height}, {CELL | MAP})
  • NbrWedge({radius}, {start_angle}, {end_angle}, {CELL | MAP})
  • NbrIrregular(kernel_file)
  • NbrWeight(kernel_file)

{CELL | MAP} 参数可将距离单位定义为“像元”单位或“地图”单位。

默认邻域为宽和高为 3 个像元的正方形 NbrRectangle

Neighborhood
statistics_type
(可选)

要计算的统计数据类型。

  • MEAN 计算邻域内像元的平均值。
  • MAJORITY 计算邻域内像元的众数(出现次数最多的值)。
  • MAXIMUM 计算邻域内像元的最大值。
  • MEDIAN 计算邻域内像元的中值。
  • MINIMUM 计算邻域内像元的最小值。
  • MINORITY 计算邻域内像元的少数(出现次数最少的值)。
  • RANGE 计算邻域内像元的范围(最大值和最小值之差)。
  • STD 计算邻域内像元的标准差。
  • SUM 计算邻域内像元的总和(所有值的总和)。
  • VARIETY 计算邻域内像元的变异度(唯一值的数量)。

默认统计类型为平均值。

String
ignore_nodata
(可选)

指示在进行统计计算时是否忽略 NoData 值。

  • DATA 可指定如果在块邻域内存在 NoData 值,则 NoData 值将被忽略。将仅使用邻域内具有数据值的像元来确定输出值。这是默认设置。
  • NODATA 可指定如果邻域内任意像元的值都是 NoData,则相应块中各像元的输出均会获得 NoData。使用此选项时,存在 NoData 值表明确定邻域的统计值所需要的信息不足。
Boolean

返回值

名称说明数据类型
out_raster

输出块统计栅格。

Raster

代码示例

块统计 (BlockStatistics) 示例 1(Python 窗口)

本示例计算输入 GRID 栅格中每个非重叠环形(圆环形状)邻域内的最小像元值。

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
nbr = NbrAnnulus(1, 3, "MAP")
outBlockStat = BlockStatistics("block", nbr, "MINIMUM", "")
outBlockStat.save("C:/sapyexamples/output/blockstat")
块统计 (BlockStatistics) 示例 2(独立脚本)

本示例计算输入 GRID 栅格中每个非重叠环形(圆环形状)邻域内的最小像元值。

# Name: BlockStatistics_Ex_02.py
# Description: Calculates statistics for a nonoverlapping 
#              neighborhood.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "block"
nbr = NbrAnnulus(1, 3, "MAP")

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute BlockStatistics
outBlockStat = BlockStatistics(inRaster, nbr, "MINIMUM", "NODATA")

# Save the output 
outBlockStat.save("C:/sapyexamples/output/blockstat")

环境

相关主题

许可信息

ArcView: 需要 Spatial Analyst
ArcEditor: 需要 Spatial Analyst
ArcInfo: 需要 Spatial Analyst

7/10/2012