需要 Spatial Analyst 许可。
描述
计算每个像元沿流动路径到它们所流入河流上像元的下坡距离的水平或垂直分量。如果是多个流动路径,则需要计算最小或最大流动距离,以及流动距离的加权平均数。
如果提供可选流向栅格,则下坡方向将限于由输入流向栅格定义的方向。
插图
使用方法
要限制测量流动距离的下坡方向,请提供一个可选的输入流向栅格,可以使用流向工具获得该栅格。生成可选输入流向栅格时,可以从 D8、D-Infinity (DINF) 和多流向 (MFD) 流动模型中选择。可以使用输入流向类型来指定创建流向栅格时所使用的方法。
如果提供了可选输入流向栅格,则建议使用您将提供给“流动距离”工具的同一输入表面栅格,通过流向工具来创建该栅格。
如果此输入表面栅格没有凹陷点,则距离测量将测量到由输入流栅格表示的流像元的距离。
如果此输入表面栅格具有凹陷点,则在到达流之前,一些流动路径可能因流入凹陷点而在距离尚短时终止。在此情况下,这些像元的流动距离测量只能计算到其流入的凹陷点像元。
在没有提供可选流向栅格的情况下运行该工具时,会根据每个像元到其所流入的河流上像元的所有可能下坡水流路径,评估流动距离。
如果使用可选 D8 流向栅格来运行该工具,则从每个像元到流上的某个像元可能只有一条下坡流动路径,并将沿此单一流动路径测量流动距离。
如果从每个像元到其沿流动路径流经的流上的像元存在多个流动路径,请使用统计类型来计算最小或最大流动距离,或流动距离的加权平均数。
如果从每个像元到流上的某个像元只存在单一流动路径,则所有统计类型都将产生相同的结果。
建议使用作为工具输入提供的同一输入表面栅格来创建输入流栅格。可以分别使用流向、流量和条件函数工具根据输入表面栅格创建流栅格。如果您要使用来自其他数据源的流,为获得最佳结果,应首先将其融入输入表面栅格,然后再针对结果运行流动距离工具。
该工具支持并行处理。如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。
使用并行处理时,将写入临时数据以管理正在处理的数据区段。默认的临时文件夹位于您的本地 C 驱动器上。您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。如果您具有计算机管理权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster])。
默认情况下,此工具将使用可用内核数的 50%。如果输入数据大小小于 5,000 * 5,000 个像元,则会使用更少的内核。您可以控制该工具用于并行处理因子环境的内核数。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
FlowDistance(in_stream_raster, in_surface_raster, {in_flow_direction_raster}, {distance_type}, {flow_direction_type}, {statistics_type})
参数 | 说明 | 数据类型 |
in_stream_raster | 表示线性流网络的输入流栅格。 | Raster Layer |
in_surface_raster | 输入栅格表示连续的表面。 | Raster Layer |
in_flow_direction_raster (可选) | 根据每个像元来显示流向的输入栅格。 如果提供流向栅格,则下坡方向将限于由输入流向定义的方向。 可以使用流向 工具创建流向栅格。 可使用 D8、多流向 (MFD) 或 D-Infinity 方法创建流向栅格。可以使用 flow_direction_type 参数来指定创建流向栅格时所使用的方法。 | Raster Layer |
distance_type (可选) | 确定是否计算流动距离的垂直或水平分量。
| String |
flow_direction_type (可选) | 输入流向栅格可以为 D8、多流向 (MFD) 或 D-Infinity (DINF) 类型。
| String |
statistics_type (可选) | 确定用于计算多个流动路径上的流动距离的统计类型。如果从每个像元到流上的某个像元只存在单一流动路径,则所有统计类型都将产生相同的结果。
| String |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出流动距离栅格。 | Raster |
代码示例
本示例将创建一个流动距离栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFlowDistance = FlowDistance("streams", "elevation", "", "VERTICAL")
outFlowDistance.save("C:/sapyexamples/output/outflowdist01")
本示例将创建一个流动距离栅格。
# Name: FlowDistance_Example.py
# Description: Creates a raster of horizontal flow distance from each cell to a cell
# on the stream into which it drains.
# 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
inStreamRaster = "streams"
inSurfaceRaster = "elevation"
inFlowDirectionRaster = "flowdir"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FlowDistance
outFlowDistance = FlowDistance(inStreamRaster, inSurfaceRaster, inFlowDirectionRaster, "HORIZONTAL")
# Save the output
outFlowDistance.save("C:/sapyexamples/output/outflowdist02")
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst