需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
插图
使用方法
使用此工具时输入栅格的顺序不重要。
对于最大值、最小值、均值、中位数、众数、少数及总和统计数据类型,如果将单个栅格数据用作输入,则输出像元值将与输入像元值相同。对于范围和标准偏差,输出像元值将全部为 0。对于 Variety,它将是 1。
如果未选中以多波段方式处理参数(在 Python 中,process_as_multiband 设置为 SINGLE_BAND),则来自多波段栅格输入的每个波段都将分别作为单波段栅格进行处理,且输出将是单波段栅格。
当作为 SINGLE_BAND 进行处理时,像元统计工具将创建单波段输出。 如果选中以多波段方式处理参数(在 Python 中,process_as_multiband 设定为 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 (可选) | 指定要计算的统计数据类型。
默认统计类型为平均值。 | String |
ignore_nodata (可选) | 指定在进行统计计算时是否将忽略 NoData 值。
| Boolean |
process_as_multiband (可选) | 指定如何处理输入多波段栅格波段。
| Boolean |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出栅格。 对于各个像元,可通过将指定统计数据类型应用到该位置处的输入栅格来确定该值。 | Raster |
代码示例
在本示例中,将针对多个输入 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")
本示例将针对多个输入多波段栅格计算每个波段每个像元的范围,并创建一个多波段输出栅格。
# 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