需要 Spatial Analyst 许可。
描述
将为输入表面栅格创建表格和高程图以及相应的存储容量。该工具将计算一系列高程增量处基础区域的表面面积和总体积。
使用方法
该工具将以一系列高程增量创建表面积和总体积表。该表包含每个区域的所有高程增量的记录。
输出表包含以下方案:
- 这些字段为 ELEVATION、AREA 和 VOLUME。
- 面积和体积字段包含每个高程增量的存储容量计算。
- 高程和体积字段采用 z 值单位计算。面积字段采用输入表面栅格的 x,y 值单位计算。
- 如果未指定区域,则将使用分析范围作为单个区域为所有记录添加值为 1 的 ZONE_CODE 字段。
- 如果指定了区域,则将基于区域字段参数值(在 Python 中为 zone_field)添加字段。对于整型区域字段,将在输出表中添加同名字段。对于字符串区域字段,将在输出表中添加同名字段,并额外添加一个 ZONE_CODE 字段。
可以选择创建两个图表来绘制高程面积和高程体积曲线。图表将连同输出表一起添加到内容窗格中。图表名称使用的命名约定为 <out_chart> 高程面积曲线和 <out_chart> 高程体积曲线,其中 <out_chart> 将替换为在输出图表名称参数(在 Python 中为 out_chart)中指定的名称。创建具有多个区域的图表时,图表中的每条线表示一个区域。使用图例可以交互的方式打开或关闭图表中的线。有关在 ArcGIS Pro 中使用图表的详细信息,请参阅图表快速浏览。图表只能在 ArcGIS Pro 中创建;不能通过独立脚本进行创建。
使用分析类型参数(在 Python 中为 analysis_type)可选择表面积和/或体积计算。这将确定表和图表的方案。例如,如果选择面积选项 (在 Python 中为 AREA),则将仅在输出表中创建一个面积字段,并忽略体积字段。同样,仅为面积高程曲线创建一个图表。
如果未指定区域,则将使用分析范围作为单个区域来计算存储容量。指定一个可选输入栅格或要素区域数据参数值(在 Python 中为 in_zone_data),用于表示需要计算存储容量的区域。例如,区域可以是水库或蓄滞洪区。该工具支持跨多个区域的计算,并且将根据区域字段在每个区域独立计算存储容量。
用于计算存储容量的高程增量基于最小高程(在 Python 中为 min_elevation)、最大高程(在Python中位 max_elevation)、增量类型(在 Python 中为 increment_type)以及增量(在 Python 中为 increment)参数值。
最小高程和最大高程参数值的默认值确定如下:
- 该工具将输入表面栅格中的最小和最大区域值用作默认值。这些值可能会因区域而异,具体取决于这些区域中输入表面栅格的最小值和最大值。
- 如果指定了最小高程或最大高程参数值,则该工具会将同一值用于所有区域的最小和最大增量。在这种情况下,如果一部分高程增量小于区域最小值,则面积和体积将计算为零。如果这些高程增量大于区域最大值,则不会计算这些增量的面积和体积,并且将显示为空或零,具体取决于表格式。
指定 Z 值单位(在 Python 中为 z_unit)参数值可指示输入表面栅格的垂直单位。如果输入表面栅格指定了垂直坐标系,则这些单位将用作默认 z 值单位。如果未指定 z 值单位并且输入表面栅格没有垂直坐标系,则默认 z 值单位为米。如果 x,y 单位与 z 值单位不同,则在计算体积时,将转换 x,y 单位以与 z 值单位匹配。
默认情况下,此工具会利用多核处理器。可供使用的最大核数为四。
要使用较少的核,请使用 parallelProcessingFactor 环境设置。
语法
StorageCapacity(in_surface_raster, out_table, in_zone_data, {zone_field}, {analysis_type}, {min_elevation}, {max_elevation}, {increment_type}, {increment}, {z_unit}, {out_chart})
参数 | 说明 | 数据类型 |
in_surface_raster | 输入栅格表示连续的表面。 | Raster Layer |
out_table | 此输出表包含每个区域中每个高程增量的表面积和总体积。 | Table |
in_zone_data | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
zone_field (可选) | 包含定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
analysis_type (可选) | 指定分析类型。
| String |
min_elevation (可选) | 评估存储容量基于的最小高程。 默认情况下,该工具将每个区域中的最小表面栅格值用作该区域的最小高程。如果提供了一个值,将使用该值作为所有区域的最小高程。 | Double |
max_elevation (可选) | 评估存储容量基于的最大高程。 默认情况下,该工具将每个区域中的最大表面栅格值用作该区域的最大高程。如果提供了一个值,将使用该值作为所有区域的最大高程。 | Double |
increment_type (可选) | 指定计算最小和最大高程之间的高程增量时要使用的增量类型。
| String |
increment (可选) | 一个增量值,可以是增量数或增量之间的高程差。该值根据增量类型参数值进行确定。 | Double |
z_unit (可选) | 垂直 z 值的线性单位。
| String |
out_chart (可选) | 用于显示的输出图表的名称。 | Chart |
代码示例
使用 StorageCapacity 函数可在区域要素的每个区域的输入表面栅格中创建 10 个高程增量的表面积和总体积表。
import arcpy
from arcpy.sa import *
arcpy.env.workspace = "C:/sapyexamples/data"
arcpy.sa.StorageCapacity("in_surface.tif", "out_table", "in_zones", "zone_id")
使用 StorageCapacity 函数可在区域要素的每个区域的输入表面栅格中创建 10 个高程增量的表面积和总体积表。
# Name: StorageCapacity_Standalone.py
# Description:
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy.sa import *
# Set the analysis environments
arcpy.CheckOutExtension("Spatial")
arcpy.env.workspace = "C:/arcpyExamples/data"
# Set local variables
in_surface_raster = "in_surface.tif"
out_table = "fgdb.gdb\out_table"
in_zones = "fgdb.gdb\in_zones"
zone_field = "zone_id"
# Execute StorageCapacity tool
arcpy.sa.StorageCapacity(in_surface_raster, out_table, in_zones, zone_field)
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst