派生流作为线 (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 方法会增加流的级别。 Shreve 方法根据大小为流分配级别。 所有没有支流的连接线的量级(分级)将被指定为一。 量级是指可相加的河流下坡坡度。 当两条连接线相交时,其量级相加并分配给下坡连接线。 使用 Hack 方法时,流级别将相对于其排放到的流的级别增加 1。 主要河道的量级为 1,所有向其排放的河流量级为 2,依此类推。

  • 当选中简化要素参数(Python 中的 simplify)时,将通过使用道格拉斯-普克算法移除折点来简化输出流要素线,该算法的容差为 sqrt(0.5) * 像元大小。 该算法通过识别和移除相对冗余的折点来保留关键点。

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

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

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

  • 参考:

    • Douglas, David H., and Thomas K. Peucker. 1973. "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature." The Canadian Cartographer, 10(2): 112–122.

    • 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
输出折线要素

将包含已识别流的输出要素类。

Feature Class
输入栅格数据或要素洼地数据
(可选)

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

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

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

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

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

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

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

Raster Layer
累积阈值
(可选)

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

Areal Unit
流标识方法
(可选)

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

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

指定是否将输出流线平滑处理为更简单的形状。

  • 选中 - 流要素线将使用道格拉斯-普克算法进行简化,容差为 sqrt(0.5) * 像元大小。 这是默认设置。
  • 未选中 - 不平滑处理流要素线。
Boolean

DeriveStreamAsLine(in_surface_raster, out_stream_features, {in_depressions_data}, {in_weight_raster}, {accumulation_threshold}, {stream_designation_method}, {simplify})
名称说明数据类型
in_surface_raster

输入表面栅格。

Raster Layer
out_stream_features

将包含已识别流的输出要素类。

Feature Class
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,依此类推。
  • ALL输出属性表将显示基于所有方法的每个流段的名称。
String
simplify
(可选)

指定是否将输出流线平滑处理为更简单的形状。

  • NO_SIMPLIFY不平滑处理流要素线。
  • SIMPLIFY流要素线将使用道格拉斯-普克算法进行简化,容差为 sqrt(0.5) * 像元大小。 这是默认设置。
Boolean

代码示例

DeriveStreamAsLine 示例 1(Python 窗口)

此示例说明了如何使用 DeriveStreamAsLine 从输入表面栅格生成流线要素,而无需预先填充汇。

from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapy/examples/data" 
DeriveStreamAsLine("surface.tif", "C:/sapyexamples/output/streams.shp", "", "", "", "")
DeriveStreamAsLine 示例 2(独立脚本)

在此示例中,从输入表面生成了流线要素,而无需预先填充汇或实际洼地。 流起始位置的累积流量是通过面积大于或等于 2 公顷的区域收集的。

# Name: DeriveStreamAsLine_standalone.py
# Description: Generates stream lines from an input surface raster without prior sink filling. 
#              The streams start from locations where the accumulated flow is collected from an area 
#              larger or equal to 2 Hectares considering depressions (polygons).
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set the analysis environments
env.workspace = "C:/sapyexamples/data"

# Set the local variables
in_surface_raster = "surface.tif"
in_depressions_data = "depressions.shp"
in_weight_raster = ""
out_streams = "C:/sapyexamples/output/streams.shp"
area_threshold = "2 Hectares"
stream_designation_method = "CONSTANT"

# Execute
DeriveStreamAsLine(in_surface_raster, out_streams, in_depressions_data, 
                   in_weight_raster, area_threshold, stream_designation_method)

相关主题