存储容量 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

将为输入表面栅格创建表格和高程图以及相应的存储容量。 该工具将计算一系列高程增量处基础区域的表面面积和总体积。

使用情况

  • 该工具将以一系列高程增量创建表面积和总体积表。该表包含每个区域的所有高程增量的记录。

    输出表包含以下方案:

    • 这些字段为 ELEVATIONAREAVOLUME
    • 面积和体积字段包含每个高程增量的存储容量计算。
    • 高程和体积字段采用 z 值单位计算。面积字段采用输入表面栅格的 x,y 值单位计算。
    • 如果未指定区域,则将使用分析范围作为单个区域为所有记录添加值为 1 的 ZONE_CODE 字段。
    • 如果指定了区域,则将基于区域字段参数值(在 Python 中为 zone_field)添加字段。对于整型区域字段,将在输出表中添加同名字段。对于字符串区域字段,将在输出表中添加同名字段,并额外添加一个 ZONE_CODE 字段。
  • 可以选择创建两个图表来绘制高程面积和高程体积曲线。图表将连同输出表一起添加到内容窗格中。图表名称使用的命名约定为 <out_chart> 高程面积曲线和 <out_chart> 高程体积曲线,其中 <out_chart> 将替换为在输出图表名称参数(在 Python 中为 out_chart)中指定的名称。创建具有多个区域的图表时,图表中的每条线表示一个区域。使用图例可以交互的方式打开或关闭图表中的线。有关在 ArcGIS AllSource 中使用图表的详细信息,请参阅图表快速浏览。图表只能在 ArcGIS AllSource 中创建;不能通过独立脚本进行创建。

  • 使用分析类型参数(在 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 值单位匹配。

  • 默认情况下,如果有多核处理器可用,此工具将使用多核处理。 最多可以使用 4 个核。

    要使用较少的核,请使用并行处理因子环境设置。

参数

标注说明数据类型
输入表面栅格

输入栅格表示连续表面。

Raster Layer
输出表

此输出表包含每个区域中每个高程增量的表面积和总体积。

Table
输入栅格数据或要素区域数据

定义区域的数据集。

可通过整型栅格或要素图层来定义区域。

Raster Layer; Feature Layer
区域字段
(可选)

包含定义每个区域的值的字段。

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

Field
分析类型
(可选)

指定分析类型。

  • 面积和体积将计算每个高程增量的表面积和总体积。这是默认设置。
  • 面积将计算每个高程增量的表面积。
  • 体积将计算每个高程增量的总体积。
String
最小高程
(可选)

评估存储容量基于的最小高程。

默认情况下,该工具将每个区域中的最小表面栅格值用作该区域的最小高程。如果提供了一个值,将使用该值作为所有区域的最小高程。

Double
最大高程
(可选)

评估存储容量基于的最大高程。

默认情况下,该工具将每个区域中的最大表面栅格值用作该区域的最大高程。如果提供了一个值,将使用该值作为所有区域的最大高程。

Double
增量类型
(可选)

指定计算最小和最大高程之间的高程增量时要使用的增量类型。

  • 增量数将使用最小和最大高程之间的增量数。这是默认设置。
  • 增量值将使用每个增量之间的高程差。
String
递增
(可选)

一个增量值,可以是增量数或增量之间的高程差。该值根据增量类型参数值进行确定。

Double
Z 单位
(可选)

指定将用于垂直 z 值的线性单位。

  • 英寸线性单位将为英寸。
  • 英尺线性单位将为英尺。
  • 线性单位将为码。
  • 英里(美制)线性单位将为英里。
  • 海里线性单位将为海里。
  • 毫米线性单位将为毫米。
  • 厘米线性单位将为厘米。
  • 线性单位将为米。
  • 千米线性单位将为千米。
  • 分米线性单位将为分米。
String
输出图表名称
(可选)

用于显示的输出图表的名称。

该图表将在内容窗格中的独立表下列出。

Chart

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
(可选)

指定分析类型。

  • AREA_VOLUME将计算每个高程增量的表面积和总体积。这是默认设置。
  • AREA将计算每个高程增量的表面积。
  • VOLUME将计算每个高程增量的总体积。
String
min_elevation
(可选)

评估存储容量基于的最小高程。

默认情况下,该工具将每个区域中的最小表面栅格值用作该区域的最小高程。如果提供了一个值,将使用该值作为所有区域的最小高程。

Double
max_elevation
(可选)

评估存储容量基于的最大高程。

默认情况下,该工具将每个区域中的最大表面栅格值用作该区域的最大高程。如果提供了一个值,将使用该值作为所有区域的最大高程。

Double
increment_type
(可选)

指定计算最小和最大高程之间的高程增量时要使用的增量类型。

  • NUMBER_OF_INCREMENTS将使用最小和最大高程之间的增量数。这是默认设置。
  • VALUE_OF_INCREMENT将使用每个增量之间的高程差。
String
increment
(可选)

一个增量值,可以是增量数或增量之间的高程差。该值根据增量类型参数值进行确定。

Double
z_unit
(可选)

指定将用于垂直 z 值的线性单位。

  • INCH线性单位将为英寸。
  • FOOT线性单位将为英尺。
  • YARD线性单位将为码。
  • MILE_US线性单位将为英里。
  • NAUTICAL_MILE线性单位将为海里。
  • MILLIMETER线性单位将为毫米。
  • CENTIMETER线性单位将为厘米。
  • METER线性单位将为米。
  • KILOMETER线性单位将为千米。
  • DECIMETER线性单位将为分米。
String
out_chart
(可选)

用于显示的输出图表的名称。

Chart

代码示例

StorageCapacity 示例 1(Python 窗口)

使用 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 示例 2(独立脚本)

使用 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)

相关主题