像元统计 (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 进行处理时,“像元统计”工具将创建多波段输出。
  • 在 ArcPy 中,如果所有输入均为具有相同数量变量的多维栅格,则该工具将对具有相同维度值的所有切片执行运算,并且输出将为多维栅格。 输入中的变量必须具有相同维度或常见维度。

    如果所有输入均是具有一个变量但名称不同的多维栅格,请将 matchMultidimensionalVariable 地理处理环境设置为 False 以执行该运算。

    在 ArcPy 中,如果其中一个或多个输入为多维栅格,而其他输入为常量,则该工具将使用常量值,对所有变量的所有切片执行运算,并且输出将为多维栅格。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格数据或常量值

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

数字可以作为输入,但是必须先在环境中设置像元大小和范围。

如果选中了以多波段方式处理参数,则所有多波段输入都必须具有相同数量的波段。

Raster Layer; Constant
叠加统计
(可选)

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

默认统计类型为平均值。

  • 平均值将计算输入的平均值。 这是默认设置。
  • 众数将确定输入的众数(出现次数最多的值)。
  • 最大值将确定输入的最大值。
  • 中值将计算输入的中值。
  • 最小值将确定输入的最小值。
  • 少数将确定输入的少数(出现次数最少的值)。
  • 百分比数将计算输入的百分比数。 默认情况下将计算 90% 百分比数。 您可以使用百分数值参数来指定其他值(从 0 到 100)。
  • 范围将计算输入的范围(最大值和最小值之差)。
  • 标准差将计算输入的标准偏差。
  • 总和将计算输入的总和(所有值的总和)。
  • 变异度将计算输入的变异度(唯一值的数量)。
String
在计算中忽略 NoData
(可选)

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

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

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

  • 未选中 - 来自多波段栅格输入的每个波段将被单独处理为单波段栅格。 这是默认设置。
  • 选中 - 每个多波段栅格输入都将作为多波段栅格进行处理。 将使用其他输入的相应波段数对一个输入的每个波段执行操作。
Boolean
百分比值
(可选)

要计算的百分比数。 默认值为 90,指示 90%。

取值范围为 0 到 100。 0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。 值 50 所生成的结果基本等同于“中值”统计数据的结果。

仅当叠加统计参数设置为百分比数时,此选项才适用。

Double
百分位数插值类型
(可选)

指定当指定的百分比值介于两个输入像元值之间时要使用的插值方法。

  • 自动检测如果输入栅格的像素类型为整型,则将使用最近方法。 如果输入栅格的像素类型为浮点型,则将使用线性方法。 这是默认设置。
  • 最邻近将使用最接近所需的百分位数的可用值。 在这种情况下,输出像素类型与输入栅格的像素类型相同。
  • 线性将使用接近所需百分位数的两个值的加权平均值。 在这种情况下,输出像素类型为浮点型。
String

返回值

标注说明数据类型
输出栅格

输出栅格。

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

Raster

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

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

数字可以作为输入,但是必须先在环境中设置像元大小和范围。

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

Raster Layer; Constant
statistics_type
(可选)

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

  • MEAN将计算输入的平均值。 这是默认设置。
  • MAJORITY将确定输入的众数(出现次数最多的值)。
  • MAXIMUM将确定输入的最大值。
  • MEDIAN将计算输入的中值。
  • MINIMUM将确定输入的最小值。
  • MINORITY将确定输入的少数(出现次数最少的值)。
  • PERCENTILE将计算输入的百分比数。 默认情况下将计算 90% 百分比数。 您可以使用 percentile_value 参数来指定其他值(从 0 到 100)。
  • RANGE将计算输入的范围(最大值和最小值之差)。
  • STD将计算输入的标准偏差。
  • SUM将计算输入的总和(所有值的总和)。
  • VARIETY将计算输入的变异度(唯一值的数量)。

默认统计类型为 MEAN

String
ignore_nodata
(可选)

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

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

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

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

要计算的百分比数。 默认值为 90,指示 90%。

取值范围为 0 到 100。 0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。 值 50 所生成的结果基本等同于“中值”统计数据的结果。

此选项仅在将 statistics_type 参数设置为 PERCENTILE 后受支持。

Double
percentile_interpolation_type
(可选)

指定当指定的百分比值介于两个输入像元值之间时要使用的插值方法。

  • AUTO_DETECT如果输入栅格的像素类型为整型,则将使用 NEAREST 方法。 如果输入栅格的像素类型为浮点型,则将使用 LINEAR 方法。 这是默认设置。
  • NEAREST将使用最接近所需的百分位数的可用值。 在这种情况下,输出像素类型与输入栅格的像素类型相同。
  • LINEAR将使用接近所需百分位数的两个值的加权平均值。 在这种情况下,输出像素类型为浮点型。
String

返回值

名称说明数据类型
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

相关主题