焦点统计 (Spatial Analyst)

许可等级:BasicStandardAdvanced

摘要

为每个输入像元位置计算其周围指定邻域内的值的统计数据。

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

插图

Focal Statistics illustration
OutRas = FocalStatistics(InRas1, NbrRectangle(3,3,MAP), "SUM", "")

用法

语法

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

要执行焦点统计计算的栅格。

Raster Layer
neighborhood
(可选)

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

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

以下为邻域的形式:

  • NbrAnnulus({innerRadius}, {outerRadius}, {units})
  • NbrCircle({radius}, {units}
  • NbrRectangle({width}, {height}, {units})
  • NbrWedge({radius}, {startAngle}, {endAngle}, {units})
  • NbrIrregular(inKernelFile)
  • NbrWeight(inKernelFile)

默认邻域为宽和高为 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

代码实例

焦点统计 (FocalStatistics) 示例 1(Python 窗口)

本例计算输入栅格中每个像元周围的环形邻域内出现频率最低的值。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFocalStat = FocalStatistics("elevation", NbrAnnulus(5, 10, "CELL"), 
                               "MINORITY", "NODATA")
outFocalStat.save("C:/sapyexamples/output/focalstat01")
焦点统计 (FocalStatistics) 示例 2(独立脚本)

本例确定输入栅格中每个像元周围的 10×10 邻域内出现频率最低的值。

# Name: FocalStatistics_Ex_02.py
# Description: Calculates a statistic on a raster over a specified
#    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 = "elevation"
neighborhood = NbrRectangle(10, 10, "CELL")

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

# Execute FocalStatistics
outFocalStatistics = FocalStatistics(inRaster, neighborhood, "MINORITY",
                                     "")

# Save the output 
outFocalStatistics.save("C:/sapyexamples/output/focalstatout")

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 Spatial Analyst
ArcGIS for Desktop Standard: 需要 Spatial Analyst
ArcGIS for Desktop Advanced: 需要 Spatial Analyst
5/10/2014