像元统计 (Spatial Analyst)

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

描述

根据多个栅格数据计算每个像元的统计数据。

可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。

了解有关像元统计工作原理的详细信息

插图

像元统计图示
OutRas = CellStatistics([InRas1, InRas2, InRas3], "SUM", "NODATA", "SINGLE_BAND")

使用方法

  • 使用此工具时输入栅格的顺序不重要。

  • 对于最大值、最小值、均值、中位数、众数、少数及总和统计数据类型,如果将单个栅格数据用作输入,则输出像元值将与输入像元值相同。对于范围和标准偏差,输出像元值将全部为 0。对于 Variety,它将是 1。

  • 如果未选中以多波段方式处理参数(在 Python 中,process_as_multiband 设置为 SINGLE_BAND),则来自多波段栅格输入的每个波段都将分别作为单波段栅格进行处理,且输出将是单波段栅格。

    作为 SINGLE_BAND 进行处理时的单波段输出
    当作为 SINGLE_BAND 进行处理时,像元统计工具将创建单波段输出。
  • 如果选中以多波段方式处理参数(在 Python 中,process_as_multiband 设定为 MULTI_BAND),每个多波段栅格输入都将被作为多波段栅格进行处理,而输出将是多波段栅格。如果输入是多波段栅格和常量的组合,则输出栅格也将是多波段。每个多波段输入中的波段数必须相同。

    该工具将使用另一个输入的相应波段对一个输入的每个波段执行操作。如果输入之一是多波段栅格,而另一个输入是常量,则该工具将使用多波段输入中每个波段的常量值执行操作。

    作为 MULTI_BAND 进行处理时的多波段输出。
    当作为 MULTI_BAND 进行处理时,像元统计工具将创建多波段输出。
  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

语法

CellStatistics(in_rasters_or_constants, {statistics_type}, {ignore_nodata}, {process_as_multiband})
参数说明数据类型
in_rasters_or_constants
[in_raster_or_constant,...]

输入栅格列表,将为其中的输入栅格计算“分析”窗口中各个像元的统计数据。

可使用一个数字作为输入;但是,像元大小和范围必须先在环境中进行设置。

如果将 processing_as_multiband 参数设置为 MULTI_BAND,则所有多波段输入应具有相等数量的波段。

Raster Layer; Constant
statistics_type
(可选)

指定要计算的统计数据类型。

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

默认统计类型为平均值。

String
ignore_nodata
(可选)

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

  • DATA在处理像元位置处,如果任意输入栅格具有 NoData,将忽略该 NoData 值。仅考虑具有有效数据的像元来计算统计数据。这是默认设置。
  • NODATA如果任意输入栅格的处理像元位置为 NoData,该像元的输出将为 NoData。
Boolean
process_as_multiband
(可选)

指定如何处理输入多波段栅格波段。

  • SINGLE_BAND来自多波段栅格输入的每个波段将被单独处理为单波段栅格。这是默认设置。
  • MULTI_BAND每个多波段栅格输入都将作为多波段栅格进行处理。将使用其他输入的相应波段数对一个输入的每个波段执行操作。
Boolean

返回值

名称说明数据类型
out_raster

输出栅格。

对于各个像元,可通过将指定统计数据类型应用到该位置处的输入栅格来确定该值。

Raster

代码示例

CellStatistics 示例 1(Python 窗口)

在本示例中,将针对多个输入 Grid 栅格中的每个像元计算标准差,并将结果输出为 IMG 栅格。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCellStats = CellStatistics(["degs", "negs", "cost"], "STD", "DATA")
outCellStats.save("C:/sapyexamples/output/outcellstats.img")
CellStatistics 示例 2(独立脚本)

本示例将针对多个输入多波段栅格计算每个波段每个像元的范围,并创建一个多波段输出栅格。

# Name: CellStatistics_Ex_standalone.py
# Description: Calculates a per-cell statistic from multiple multiband rasters
#               and process as multiband.
# Requirements: Spatial Analyst Extension

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

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

# Set the analysis environments
arcpy.env.workspace = "C:/sapyexamples/data"

# Set the local variables
inRaster01 = "degs_MB"
inRaster02 = "negs_MB"
inRaster03 = "cost_MB"

# Execute CellStatistics
outCellStatistics = CellStatistics([inRaster01, inRaster02, inRaster03], "RANGE", "NODATA", "MULTI_BAND")

# Save the output 
outCellStatistics.save("C:/sapyexamples/output/cellstats_MB.tif")

许可信息

  • Basic: 需要 Spatial Analyst 或 Image Analyst
  • Standard: 需要 Spatial Analyst 或 Image Analyst
  • Advanced: 需要 Spatial Analyst 或 Image Analyst

相关主题