需要 Spatial Analyst 许可。
插图
使用方法
通过流量得到的结果是表示每个像元累积流量的栅格,由流入每个下坡像元的所有像元的累积权重决定。
在计算累积流量时,流量工具支持三种流向建模算法。这些算法为 D8、多流向 (MFD) 和 D-Infinity (DINF) 流量法。
如果未使用流向工具创建输入流向栅格,则定义的流可能呈环形。如果流向包含环,流量将陷入永无止境的无限循环中。
可使用 D8、多流向 (MFD) 或 D-Infinity (DINF) 方法创建输入流向。这三种方法的输入流向栅格的类型会影响流量工具划分与累积每个像元的流量的方法。可以使用输入流向类型来指定创建流向栅格时所使用的方法。
具有未定义流向的像元将仅接收流;它们不会形成任何下游流。
对于输入 D8 流向栅格,如果像元在流向栅格中的值为 1、2、4、8、16、32、64 或 128 以外的值,则认为该像元具有未定义的流向。
对于输入 D-Infinity 流向栅格,如果像元在流向栅格中的值为 -1,则认为该像元具有未定义的流向。
累积流量基于流入输出栅格中每个像元的总像元数或部分像元数。累积中不会考虑当前处理的像元。
高流量的输出像元是集中流动区域,可用于标识河道。
流量为零的输出像元是局部地形高点,可用于识别山脊。
流量工具不遵循压缩环境设置。输出栅格将始终处于未压缩状态。
该工具支持并行处理。如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。使用 Spatial Analyst 进行并行处理帮助主题包括有关此功能及其配置方法的详细信息。
使用并行处理时,将写入临时数据以管理正在处理的数据区段。默认的临时文件夹位于您的本地 C: 驱动器上。您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。如果您具有计算机管理员权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster])。
默认情况下,此工具将使用可用内核数的 50%。如果输入数据大小小于 5,000 * 5,000 个像元,则可能会使用更少的内核。您可以控制该工具用于并行处理因子环境的内核数。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
FlowAccumulation(in_flow_direction_raster, {in_weight_raster}, {data_type}, {flow_direction_type})
参数 | 说明 | 数据类型 |
in_flow_direction_raster | 根据每个像元来显示流向的输入栅格。 可以使用流向 工具创建流向栅格。 可使用 D8、多流向 (MFD) 或 D-Infinity 方法创建流向栅格。可以使用 flow_direction_type 参数来指定创建流向栅格时所使用的方法。 | Raster Layer |
in_weight_raster (可选) | 对每一像元应用权重的可选输入栅格。 如果未指定权重栅格,则将默认的权重值 1 应用于每个像元。对于输出栅格中的每个像元,结果为流入其中的像元数。 | Raster Layer |
data_type (可选) | 输出累积栅格可以是整型、浮点型或双精度型。
| String |
flow_direction_type (可选) | 指定输入流向栅格类型。
| String |
返回值
名称 | 说明 | 数据类型 |
out_accumulation_raster | 显示每个像元累积流量的输出栅格。 | Raster |
代码示例
本示例将创建输入流向格网栅格的每个像元累积流量的栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFlowAccumulation = FlowAccumulation("flowdir")
outFlowAccumulation.save("C:/sapyexamples/output/outflowacc01")
本示例将创建输入流向 IMG 栅格的每个像元累积流量的栅格。
# Name: FlowAccumulation_Ex_02.py
# Description: Creates a raster of accumulated flow to each cell.
# 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
inFlowDirRaster = "flowdir"
inWeightRaster = ""
dataType = "INTEGER"
# Execute FlowDirection
outFlowAccumulation = FlowAccumulation(inFlowDirRaster, inWeightRaster, dataType)
# Save the output
outFlowAccumulation.save("C:/sapyexamples/output/outflowacc02.img")
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst