需要 Spatial Analyst 许可。
描述
使用 D8、多流向 (MFD) 或 D-Infinity (DINF) 方法创建从每个像元到其下坡相邻点的流向的栅格。
插图
使用方法
流向工具支持三种流向建模算法。分别为 D8、多流向 (MFD) 和 D-Infinity (DINF)。
D8 流向法可对每个像元到其最陡下坡邻域的流向进行建模。
以 D8 流向类型运行的流向工具的输出是值范围介于 1 到 255 之间的整型栅格。从中心出发的各个方向值为:
例如,如果最陡下降方向位于当前处理像元的左侧,则将该处理像元的流向编码将为 16。
如果某像元低于八个相邻像元,则将为该像元指定其相邻像元的最低值,并将流向定义为朝向此像元。如果多个相邻像元都具有最低值,则仍为该像元指定此值,但会使用下面介绍的其中一种方法来定义流向。这可用于过滤被视为噪声的单像元凹陷点。
如果像元的 z 值在多个方向上均发生相同变化,并且该像元是凹陷点的一部分,则该像元的流向将被视为未定义。此时,该像元在输出流向栅格中的值将为这些方向的总和。例如,如果 z 值向右(流向 = 1)和向下(流向 = 4)的变化相同,则该像元的流向为 1 + 4 = 5。可以使用汇工具将具有未定义流向的像元标记为凹陷点。
如果某像元的 z 值在多个方向上均发生相同变化,并且该像元不是凹陷的一部分,则将使用定义最可能方向的查找表来指定流向。请参阅 Greenlee (1987)。
输出 D8 下降率栅格数据将按像元中心之间的路径长度的 z 值变化率计算,并以百分比表示。对于相邻像元,这类似于像元之间的百分比坡度。穿过平坦区域时,距离将变成到高程较低的最近像元的距离。结果是从每个像元出发的最陡下降路径中的高程增量百分比图。
在计算平坦区域的 D8 下降率栅格数据时,为提高性能,将到对角相邻像元的距离 (1.41421 * cell size) 近似计算为 1.5 * cell size。
由 Qin et al. (2007) 描述的多流向 (MFD) 算法可对像元到所有下坡邻域的流向进行划分。水流分区指数根据当地地形条件通过自适应方法创建,可用于确定排放到所有下坡邻域的水流部分。
将 MFD 流向输出添加到地图时,仅显示 D8 流向。由于 MFD 流向可能具有与每个像元相关的多个值(每个值对应于流向每个下坡相邻点的水流的比例),因此不易进行可视化。但是,MFD 流向输出栅格是由流量工具识别的输入,该工具将利用 MFD 流向来划分与累积每个像元到所有下坡邻域的累计流量。
由 Tarboton (1997) 描述的 D-Infinity (DINF) 法将流向确定为在以感兴趣的像元为中心的 3×3 像元窗口中形成的八个三角面上的最陡下坡方向。流向输出是一个表示为单一角度的浮点型栅格,以度为单位:从 0(正东)到 360(下一个正东)逆时针转动。
如果强制所有边缘像元向外流动参数设置(Python 中的 NORMAL)在默认情况下未选中,处于表面栅格边缘的像元将流向 z 值下降方向最陡的内部像元。如果降幅小于或等于零,则像元将流出表面栅格。
该工具支持并行处理。如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。
使用并行处理时,将写入临时数据以管理正在处理的数据区段。默认的临时文件夹位于您的本地 C 驱动器上。您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。如果您具有计算机管理权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\Desktop10.6\Raster])。
默认情况下,此工具将使用可用内核数的 50%。如果输入数据大小小于 5,000 * 5,000 个像元,则会使用更少的内核。您可以控制该工具用于并行处理因子环境的内核数。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
参考文献:
Greenlee, D. D. 1987. "Raster and Vector Processing for Scanned Linework." Photogrammetric Engineering and Remote Sensing 53 (10): 1383 - 1387.
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.
Tarboton, D. G. 1997. "A new method for the determination of flow directions and upslope areas in grid digital elevation models." Water Resources Research 33(2): 309-319.
语法
FlowDirection(in_surface_raster, {force_flow}, {out_drop_raster}, {flow_direction_type})
参数 | 说明 | 数据类型 |
in_surface_raster | 输入栅格表示连续的表面。 | Raster Layer |
force_flow (可选) | 指定边缘像元始终向外流还是遵循正常流动规则。
| Boolean |
out_drop_raster (可选) | 可选输出下降率栅格数据。 下降率栅格用于返回从沿流向的各像元到像元中心间的路径长度的最大高程变化率(以百分比表示)。 输出为浮点型。 | Raster Dataset |
flow_direction_type (可选) | 指定计算流向时使用的流向法的类型。
| String |
返回值
名称 | 说明 | 数据类型 |
out_flow_direction_raster | 此输出栅格使用 D8、多流向 (MFD) 或 D-Infinity (DINF) 方法显示从每个像元到其下坡邻域的流向。 输出为整型。 | Raster |
代码示例
FlowDirection 示例 1(Python 窗口)
本示例将从输入格网高程表面栅格创建 D8 流向栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFlowDirection = FlowDirection("elevation", "NORMAL")
outFlowDirection.save("C:/sapyexamples/output/outflowdir01")
FlowDirection 示例 2(独立脚本)
本示例将从输入格网高程表面栅格创建 D8 流向栅格。
# Name: FlowDirection_Example.py
# Description: Creates a raster of flow direction from each cell to its
# steepest downslope neighbor.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inSurfaceRaster = "elevation"
outDropRaster = "C:/sapyexamples/output/dropraster"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FlowDirection
outFlowDirection = FlowDirection(inSurfaceRaster, "FORCE", outDropRaster)
# Save the output
outFlowDirection.save("C:/sapyexamples/output/outflowdir02")
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst