汇总范围内的栅格 (栅格分析)

描述

计算位于另一数据集区域内的栅格值的统计信息。

插图

“汇总范围内的栅格”工具图示

使用方法

  • 区域定义为输入中具有相同值的所有区域。各区域无需相连。栅格和要素都可用于区域输入。

  • 此栅格分析门户工具将在您登录到 ArcGIS Enterprise “了解 ArcGIS Enterprise 门户中的分析”链接 时可用,其中门户包含一个 ArcGIS Image Server “什么是 ArcGIS Image Server”链接,此链接专为 Raster Analysis “配置和部署栅格分析”链接 配置。调用该工具后,ArcGIS Pro 将充当客户端,处理将在与 ArcGIS Enterprise 联合的服务器中进行。门户工具接受来自门户的图层作为输入,并在门户中创建输出。

    输入栅格图层支持来自门户的图层、图像服务的 URI 或 URL 或创建影像服务器图层工具的输出。输入要素图层可以是来自门户、URI 或要素服务 URL 的图层。此工具不支持本地栅格数据或图层。虽然可以使用本地要素数据和图层作为此门户工具的输入,但是最佳做法是使用门户的图层作为输入。

  • 如果输入区域图层(在 Python 中为 inputZoneLayer)是栅格,则其必须具有整型数据类型。

    如果区域输入为一个要素,则可使用值栅格中的像元大小和像元对齐从内部将其转换为栅格。

  • 如果输入区域图层(Python 中的 inputZoneLayer)与要汇总的输入栅格图层(Python 中的 inputRasterLayertoSummarize)的像元大小不同,则输出像元大小将为输入的最大值,且输入值栅格将在内部用作捕捉栅格。如果像元大小相同,但像元不对齐,则值栅格将在内部用作捕捉栅格。在执行区域操作之前,上述任一情况都会触发内部重采样。

    如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具执行期间不会对其进行内部重采样。

  • 如果来自输入区域图层的特定区域未与输入值栅格的任何像元中心重叠,则该区域将变为 NoData。在这种情况下,请确定保留区域输入细节的适当栅格分辨率,然后使用此分辨率作为环境中的像元大小。指定像元大小越小,生成的输出栅格越大。较高的分辨率输出并不一定像看起来那样高质量,因为要汇总的输入栅格图层的输入中不存在其他详细信息。

  • 如果输入区域图层具有重叠面,则无法为每一个单独的面执行区域分析。因为要素输入已转换为栅格,所以每个位置只能拥有一个值。

    另一种方法就是要为每个面区域反复进行区域操作并核对结果。

  • 如果输入区域图层为点要素,则其可能具有输入值栅格的任何特定像元内所含的多个点。对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OIDFID)来确定。

  • 指定输入区域图层时,默认区域字段将为第一个可用的整型或文本字段。如果不存在其他有效字段,则 ObjectID 字段(如 OIDFID)将成为默认字段。

  • 要汇总的输入栅格图层可以为整型,也可以为浮点数据类型。但是,当它是浮点数据类型时,将无法计算众数、中值、少数和变异性。对于众数和少数统计数据,当存在平局时,区域的输出将基于平局值的最低值。

语法

arcpy.ra.SummarizeRasterWithin(inputZoneLayer, zoneField, inputRasterLayertoSummarize, outputName, {statisticType}, {ignoreMissingValues}, {processAsMultidimensional}, {percentileValue}, {percentileInterpolationType})
参数说明数据类型
inputZoneLayer

定义区域的输入。

栅格和要素数据都可用于区域输入。

Raster Layer; Feature Layer
zoneField

定义各个区域的字段。

该字段可以是区域数据集的整型字段或字符串型字段。

String
inputRasterLayertoSummarize

含有要汇总统计数据的值的栅格。

Raster Layer
outputName

输出栅格服务的名称。

如果图像服务图层已存在,则系统将提示您提供其他名称。

String
statisticType
(可选)

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

如果要汇总的栅格为整型数据类型,则可用的选项包括平均值众数最大值中值最小值少数百分比数范围标准差总和以及变异度

如果要汇总的栅格的数据类型为浮点型,则选项包括平均值最大值中值最小值百分位数范围标准差总和

  • MEAN计算待汇总栅格图层中与输出像元同属一个区域的所有像元的平均值。这是默认设置。
  • MAJORITY计算待汇总栅格图层中与输出像元同属一个区域的所有像元中最常出现的值。
  • MAXIMUM计算待汇总栅格图层中与输出像元同属一个区域的所有像元的最大值。
  • MEDIAN计算待汇总栅格图层中与输出像元同属一个区域的所有像元的中值。
  • MINIMUM计算待汇总栅格图层中与输出像元同属一个区域的所有像元的最小值。
  • MINORITY计算待汇总栅格图层中与输出像元同属一个区域的所有像元中出现次数最少的值。
  • PERCENTILE将计算值栅格中与输出像元同属一个区域的所有像元的百分比值。默认情况下将计算 90% 百分比数。您可以使用百分比值参数来指定其他值(从 0 到 100)。
  • RANGE计算待汇总栅格图层中与输出像元同属一个区域的所有像元的最大值与最小值之差。
  • STD计算待汇总栅格图层中与输出像元同属一个区域的所有像元的标准差。
  • SUM计算待汇总栅格图层中与输出像元同属一个区域的所有像元的总值。
  • VARIETY计算待汇总栅格图层中与输出像元同属一个区域的所有像元的唯一值的数量。
String
ignoreMissingValues
(可选)

指定待汇总栅格图层中的缺失值是否会在其落入区域的结果中被忽略。

  • DATA在任意特定区域内,仅使用在正在汇总的栅格图层中拥有值的像元来确定该区域的输出值。统计计算将忽略缺失的像元或 NoData 像元。这是默认设置。
  • NODATA在任何特定区域中,如果正在汇总的栅格图层中的任何像元没有值,它们不会被忽略,并且其存在表明没有足够的信息来对该区域中的所有像元执行统计计算。因此,整个区域将在输出栅格上接收 NoData 值。
Boolean
processAsMultidimensional
(可选)

用于指定多维输入栅格的处理方式。

  • CURRENT_SLICE将计算输入多维数据集的当前剖切片中的统计数据。这是默认设置。
  • ALL_SLICES将计算输入多维数据集的所有维度的统计数据。
Boolean
percentileValue
(可选)

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

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

此选项仅在将 statisticType 参数设置为 PERCENTILE 后可用。

Double
percentileInterpolationType
(可选)

指定输入栅格中要计算的值数为偶数时使用的百分位数插值方法。

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

派生输出

名称说明数据类型
outputRaster

输出栅格。

栅格图层

代码示例

SummarizeRasterWithin 示例 1(Python 窗口)

本示例可针对各区域确定要汇总的栅格图层中的像元平均值。

import arcpy
arcpy.SummarizeRasterWithin_ra('https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer',
                               'Landuse', 'https://MyPortal.esri.com/server/rest/services/Hosted/elevation/ImageServer',
                               'outRaster', 'MEAN', 'DATA')
SummarizeRasterWithin 示例 2(独立脚本)

本示例可针对各区域确定要汇总的栅格图层中的平均值。

#-------------------------------------------------------------------------------
# Name: SummarizeRasterWithin_Ex_02.py
# Description: Calculates the maximum sea-surface temperature at different ecological zones.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inputZoneLayer = 'https://MyPortal.esri.com/server/rest/services/Hosted/zones/ImageServer'
zoneField = 'temperature'
inputRasterLayertoSummarize = 'https://MyPortal.esri.com/server/rest/services/Hosted/seaSurfaceTemperature/ImageServer'
outputName = 'outSSTRaster'
statisticType = 'MAXIMUM' 
ignoreMissingValues = ''
processAsMultidimensional = 'ALL_SLICES'

# Execute Multidimensional Summarize Raster Within operation
arcpy.SummarizeRasterWithin_ra(inputZoneLayer, zoneField, inputRasterLayertoSummarize,
                               outputName, statisticType, ignoreMissingValues)

许可信息

  • Basic: 需要 ArcGIS Image Server
  • Standard: 需要 ArcGIS Image Server
  • Advanced: 需要 ArcGIS Image Server

相关主题