派生流作为栅格 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

从输入表面栅格生成流栅格,无需预先填充汇或洼地。

使用情况

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

  • 输出流栅格参数值表示具有更高或相等流量累积阈值的像元,该累积阈值通过可选累积阈值(Python 中的 accumulation_threshold)参数指定。 如果未提供累积阈值,则默认情况下,该工具会根据输入表面栅格大小(像元总数的 0.2%)计算面积阈值。 虽然将在内部计算流向和流量以导出流,但它们不是输出。 通过派生连续流,使用相同的方法获取流量和流向栅格。

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

  • 在派生流量时,可以指定输入累积权重栅格(Python 中的 in_weight_raster)值以将权重应用于每个像元,这是一个中间步骤。 如果应用了权重栅格,请为累积阈值(Python 中的 accumulation_threshold)选择适当的流量阈值。

  • 如果使用了用于应用环境设置的输入栅格或要素洼地数据输入累积权重栅格参数或数据,则将根据输入之间的相交面积重新计算默认累积阈值。 但是,您为累积阈值指定值后,它将不再根据输入选择的变化重新计算。 使用输入表面栅格作为批处理参数批量运行工具时,您可能会遇到相同的情况,其中累积阈值是基于第一个输入计算的,并且不会随着其他栅格图层的批量处理而改变。

  • 指定反映研究区域中地形复杂性或与您选择的汇流区域大小相匹配的累积阈值(Python 中的 accumulation_threshold)。 例如,如果阈值等于 20 公顷,则只有上游流量为 20 公顷或更多公顷的像元才可以定义流栅格

  • 使用流指定方法参数为交叉点之间的流部分分配唯一值或为流段分配级别。 默认情况下设置常量选项,并且所有流都被分配相同的值(等于 1)。 选择唯一时,交叉点之间的每个流部分将被分配唯一值。 其他分级方法包括 StrahlerShreveHack(Strahler,1957;Shreve,1966;Hack,1957)。 当级别相同的流交汇时,流的 Strahler 级别将增加。 Shreve 分级根据大小为流分配级别。 所有没有支流的连接线的量级(分级)将被指定为一。 量级是指可相加的河流下坡坡度。 当两条连接线相交时,其量级相加并分配给下坡连接线。 流的 Hack 级别将相对于其排放到的流的级别增加 1。 主要河道的量级为 1,所有向其排放的河流量级为 2,依此类推。

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

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

    This will affect the direction of flow at the edge of the surface raster, as well as the accumulation and ultimately the definition of streams.
  • 当输出栅格格式为 .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.

    • Hack, J. T. 1957. "Studies of Longitudinal Stream Profiles in Virginia and Maryland." Geological Survey Professional Paper 294: 45–95.

    • 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.

    • Shreve, R. 1966. "Statistical Law of Stream Numbers" Journal of Geology.74: 17-35

    • Strahler, A. N. 1957. "Quantitative analysis of watershed geomorphology" Transactions of the American Geophysical Union8 (6): 913-920

参数

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

输入表面栅格。

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

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

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

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

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

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

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

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

Raster Layer
累积阈值
(可选)

用于根据流入该单元的总面积来确定给定单元是否为流的构成部分的阈值。

Areal Unit
流标识方法
(可选)

指定输出中流的唯一值或级别。

  • 常量输出像元值将全部等于 1。 这是默认设置。
  • 唯一值每个流在输出的交叉点之间都具有唯一 ID。
  • Strahler将使用 Strahler 方法,在该方法中流级别仅在相同级别的流相交时增加。 一级连接线与二级连接线相交会保留二级连接线,而不会创建三级连接线。
  • Shreve将使用 Shreve 方法,该方法将按量级分配流级别。 所有没有支流的连接线的量级(分级)将被指定为一。 量级是指可相加的河流下坡坡度。 当两条连接线相交时,其量级相加并分配给下坡连接线。
  • Hack将使用 Hack 方法,其中为每个流段分配的级别大于其排放的流或河流。 例如,主河道的级别为 1,向其排放的所有流段的级别为 2,排放到 2 级流的所有流的级别为 3,依此类推。
String
强制所有边缘像元向外流动
(可选)

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

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

返回值

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

表示流位置的输出栅格。

Raster

DeriveStreamAsRaster(in_surface_raster, {in_depressions_data}, {in_weight_raster}, {accumulation_threshold}, {stream_designation_method}, {force_flow})
名称说明数据类型
in_surface_raster

输入表面栅格。

Raster Layer
in_depressions_data
(可选)

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

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

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

Composite Geodataset
in_weight_raster
(可选)

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

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

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

Raster Layer
accumulation_threshold
(可选)

用于根据流入该单元的总面积来确定给定单元是否为流的构成部分的阈值。

Areal Unit
stream_designation_method
(可选)

指定输出中流的唯一值或级别。

  • CONSTANT输出像元值将全部等于 1。 这是默认设置。
  • UNIQUE每个流在输出的交叉点之间都具有唯一 ID。
  • STRAHLER将使用 Strahler 方法,在该方法中流级别仅在相同级别的流相交时增加。 一级连接线与二级连接线相交会保留二级连接线,而不会创建三级连接线。
  • SHREVE将使用 Shreve 方法,该方法将按量级分配流级别。 所有没有支流的连接线的量级(分级)将被指定为一。 量级是指可相加的河流下坡坡度。 当两条连接线相交时,其量级相加并分配给下坡连接线。
  • HACK将使用 Hack 方法,其中为每个流段分配的级别大于其排放的流或河流。 例如,主河道的级别为 1,向其排放的所有流段的级别为 2,排放到 2 级流的所有流的级别为 3,依此类推。
String
force_flow
(可选)

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

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

返回值

名称说明数据类型
out_stream_raster

表示流位置的输出栅格。

Raster

代码示例

DeriveStreamAsRaster 示例 1(Python 窗口)

此示例创建了一个流栅格,其中所有已识别的流均被分配了一个常数值 1。

from arcpy.sa import *
out_stream_raster = DeriveStreamAsRaster("surface.tif", "", "", "", 
                                        "", "")
out_stream_raster.save("C:/arcpyExamples/outputs/out_stream_raster.tif")
DeriveStreamAsRaster 示例 2(独立脚本)

此示例创建了一个流栅格,其中考虑了实际洼地,并且流的起始位置为面积大于 2 公顷的集水区。

还为输出流栅格交叉点之间的每个段分配了唯一值。

# Name: DeriveStreamAsRaster_standalone.py
# Description: Generates a stream raster considering real depressions where 
#              streams start from locations with catchment areas larger than 2 Hectares.
# 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"
stream_raster = "C:/arcpyExamples/outputs/stream_raster.tif"

# Execute DeriveStreamAsRaster
out_stream_raster = DeriveStreamAsRaster(in_surface_raster, in_depressions_data, 
                                        "", "2 Hectares", "UNIQUE", "")
# Save the output
out_stream_raster.save(stream_raster)

相关主题