派生连续流 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

生成从输入表面栅格流入每个像元的累积流量栅格,无需预先填充汇或洼地。

了解有关派生连续流工作原理的详细信息

使用情况

  • 输入表面栅格可以是未预先填充汇的数字高程模型 (DEM) 或水力调节 DEM。 该工具对表面栅格中的错误不敏感,这些错误可以作为流动终止处的洼地或汇;无需填充汇或洼地。

  • 沿最小上坡相邻像元的方向优化遍历输入表面栅格,逐个像元导出流向和流量(Metz 等人, 2011 年;Ehlschlaeger,1989 年)。

  • 输出流量累积栅格(Python 中的 out_accumulation_raster)值为主要输出。 此栅格表示每个像元的累积流量,通过流入每个像元的所有像元的累积权重来确定。 累积中不会考虑当前处理的像元。

  • 可以通过指定输出流向栅格(Python 中的 out_flow_direction_raster)值来保存流向栅格输出。 该栅格表示流向。

  • 在派生流量时,可以指定输入累积权重栅格(Python 中的 in_weight_raster)值以将权重应用于每个像元。

  • 当输入表面栅格包含表面栅格中的实际洼地时,必须在输入栅格或要素洼地数据(Python 中的 in_depressions_data)中指定洼地,才能将其视为水可以流入但不能流出(出口)的像元。 洼地信息可以是栅格或要素类。 要素类可以是点、折线或面。

  • 派生连续流工具支持 D8 和多流向 (MFD) 流向建模算法。

    • 当为流向类型(Python 中的 flow_direction_type)指定 D8 选项时,流可以采用单一方向,即沿最陡坡降方向。 最陡下降率的计算方法为:使用 z 值差除以像元中心之间的路径长度(基本像元为 1,对角像元为 2 的平方根)(Jenson 和 Domingue,1988 年)。 输出栅格仅采用 1 到 255 之间的整数值。 下图中指定了每个流向中心的值:

      流向值

      如果像元的 z 值在多个方向上均发生相同变化,则 D8 流向将为未定义。 在此情况下,该像元在输出流向栅格中的值将为可能方向的总和。

    • 当为流向类型指定 MFD 选项时,流将被划分到所有下坡相邻像元。 将基于当地地形条件,通过最大坡度函数估算相邻像元之间的流量分配(作为分数)(Qin 等人, 2007 年)。 为便于解释,输出流向栅格仅采用整数值表示主要流向(朝向根据分区方案接收最大流量的像元)。 但是,输出流量栅格参数值反映了流量分区方案。

  • 如果未选中强制所有边缘像元向外流动参数(Python 中的 force_flow = "NORMAL"),处于表面栅格边缘的像元将流向 z 值下降方向最陡的内部像元。 如果降幅小于或等于零,则像元将流出表面栅格。

  • NoData 像元被视为噪声,根据定义其不具有关联值。 在确定最陡峭的上坡邻域的方向以及确定流向和流量时,该工具将忽略这些像元。

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

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

  • 参考:

    Ehlschlaeger, C. R. 1989. "Using the AT Search Algorithm to Develop Hydrologic Models from Digital Elevation Data." International Geographic Information Systems (IGIS) Symposium 89: 275-281.

    Jenson, S. K., and Domingue, J. O. 1988. "Extracting Topographic Structure from Digital Elevation Data for Geographic Information System Analysis." Photogrammetric Engineering and Remote Sensing 54 (11): 1593–1600.

    Metz, M., Mitasova, H., & Harmon, R. S. 2011. "Efficient extraction of drainage networks from massive, radar-based elevation models with least cost path search." Hydrology and Earth System Sciences 15(2): 667-678.

    Qin, C., Zhu, A. X., Pei, T., Li, B., Zhou, C., & Yang, L. 2007. "An adaptive approach to selecting a flow partition exponent for a multiple flow direction algorithm." International Journal of Geographical Information Science 21(4): 443-458.

参数

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

输入栅格表示连续表面。

Raster Layer
输入栅格数据或要素洼地数据
(可选)

定义真实洼地的可选数据集。

可以通过栅格或要素图层定义洼地。

如果输入为栅格,则洼地像元必须采用有效值(包括零),并且不是洼地的区域必须为 NoData。

Composite Geodataset
输入累积权重栅格
(可选)

可选的输入栅格数据集,用于定义有助于在每个像元处流量的流量比例。

权重仅适用于流量的累积。

如果未指定累积权重栅格,则将默认的权重值 1 应用于每个像元。

Raster Layer
输出流向栅格
(可选)

使用 D8 或多流向 (MFD) 方法显示每个像元流向的输出栅格。

输出为整型。

Raster Dataset
流向类型
(可选)

指定计算流向时将使用的流向法的类型。

  • D8流向将由 D8 方法确定。 此方法会将流向分配至最陡的下坡相邻点。 这是默认设置。
  • MFD流向将基于 MFD 流量法。 流向将根据自适应分区指数跨下坡邻域进行分区。
String
强制所有边缘像元向外流动
(可选)

指定边缘像元始终向外流还是遵循正常流动规则。

  • 未选中 - 如果边缘像元内部的最大降幅大于零,则将照常确定流向;否则流向将朝向边缘。 应从表面栅格的边缘向内流的像元也将执行此行为。 这是默认设置。
  • 选中 - 表面栅格边缘的所有像元将从表面栅格向外流。
Boolean

返回值

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

表示流量的输出栅格(流入每个像元的上游像元数)。

输出栅格为浮点型。

Raster

DeriveContinuousFlow(in_surface_raster, {in_depressions_data}, {in_weight_raster}, {out_flow_direction_raster}, {flow_direction_type}, {force_flow})
名称说明数据类型
in_surface_raster

输入栅格表示连续表面。

Raster Layer
in_depressions_data
(可选)

定义真实洼地的可选数据集。

可以通过栅格或要素图层定义洼地。

如果输入为栅格,则洼地像元必须采用有效值(包括零),并且不是洼地的区域必须为 NoData。

Composite Geodataset
in_weight_raster
(可选)

可选的输入栅格数据集,用于定义有助于在每个像元处流量的流量比例。

权重仅适用于流量的累积。

如果未指定累积权重栅格,则将默认的权重值 1 应用于每个像元。

Raster Layer
out_flow_direction_raster
(可选)

使用 D8 或多流向 (MFD) 方法显示每个像元流向的输出栅格。

输出为整型。

Raster Dataset
flow_direction_type
(可选)

指定计算流向时将使用的流向法的类型。

  • D8流向将由 D8 方法确定。 此方法会将流向分配至最陡的下坡相邻点。 这是默认设置。
  • MFD流向将基于 MFD 流量法。 流向将根据自适应分区指数跨下坡邻域进行分区。
String
force_flow
(可选)

指定边缘像元始终向外流还是遵循正常流动规则。

  • NORMAL如果边缘像元内部的最大降幅大于零,则将照常确定流向;否则流向将朝向边缘。 应从表面栅格的边缘向内流的像元也将执行此行为。 这是默认设置。
  • FORCE表面栅格边缘的所有像元将从表面栅格向外流。
Boolean

返回值

名称说明数据类型
out_accumulation_raster

表示流量的输出栅格(流入每个像元的上游像元数)。

输出栅格为浮点型。

Raster

代码示例

DeriveContinuousFlow 示例 1(Python 窗口)

本示例从一个输入表面栅格创建了流量栅格。

from arcpy.sa import *
out_derivecontinuousflow_raster = DeriveContinuousFlow("surface.tif", "", "",
                                 "", "", "")
out_derivecontinuousflow_raster.save("C:/arcpyExamples/outputs/out_facc.tif")
DeriveContinuousFlow 示例 2(独立窗口)

在本示例中,在考虑实际洼地的情况下,从一个输入表面栅格创建了流量栅格。

# Name: DeriveContinuousFlow_standalone.py
# Description: Generates a flow accumulation raster considering real depressions
#              specified through a raster dataset.
# 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:/arcpyExamples/data"

# Set the local variables
in_surface_raster = "surface.tif"
in_depressions_data = "depressions.tif"

# Execute DeriveContinuousFlow
out_derivecontinuousflow_raster = DeriveContinuousFlow(in_surface_raster, in_depressions_data,
                                 "", "", "", "")

# Save the output
out_derivecontinuousflow_raster.save("C:/arcpyExamples/outputs/out_facc.tif")

相关主题