集水区 (Spatial Analyst)

需要 Spatial Analyst 许可。

描述

确定栅格中一组像元之上的汇流区域。

了解有关分集水区工作原理的详细信息

插图

“集水区”工具图示

使用方法

  • 各个集水区的值将取自输入栅格中源的值或者要素倾泻点数据。如果倾泻点为栅格数据集,则使用像元值。如果倾泻点为点要素数据集,则从指定的字段中获取值。

  • 集水区工具仅支持 D8 类型的输入流向栅格。可使用流向工具(运行默认流向类型 D8(在 Python 中,使用 D8 选项)来创建流向栅格。

  • 如果预先使用捕捉倾泻点工具将倾泻点定位至累积流量大的像元,将得到更加理想的结果。

  • 当指定输入倾泻点位置作为要素数据时,默认字段将为首个可用的有效字段。如果不存在有效字段,则 ObjectID 字段(如 OIDFID)将成为默认字段。

  • 该工具支持并行处理。如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。

    使用并行处理时,将写入临时数据以管理正在处理的数据区段。默认的临时文件夹位于您的本地 C 驱动器上。您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。如果您具有计算机管理权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster])。

    默认情况下,此工具将使用可用内核数的 50%。如果输入数据大小小于 5,000 * 5,000 个像元,则会使用更少的内核。您可以控制该工具用于并行处理因子环境的内核数。

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

语法

Watershed(in_flow_direction_raster, in_pour_point_data, {pour_point_field})
参数说明数据类型
in_flow_direction_raster

根据每个像元来显示流向的输入栅格。

可以在流向工具中,运行使用默认流向类型 D8 创建流向栅格。

Raster Layer
in_pour_point_data

输入倾泻点位置。

对于栅格,输入倾泻点位置表示将确定的汇流区域或集水区之上的像元。所有非 NoData 的像元都将用作源像元。

对于点要素数据集,输入倾泻点位置表示将确定的汇流区域或集水区之上的位置。

Raster Layer; Feature Layer
pour_point_field
(可选)

用于为倾泻点位置赋值的字段。

如果倾泻点数据集为栅格,则使用 Value。

如果倾泻点数据集为要素,则使用数值字段。如果该字段包含浮点型值,它们将被截断为整型。

Field

返回值

名称说明数据类型
out_raster

显示汇流区域的输出栅格。

输出为整型。

Raster

代码示例

Watershed 示例 1(Python 窗口)

本示例针对流向格网栅格中选定的倾泻点位置确定汇流区域。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outWatershed = Watershed("flowdir", "pourpoint")
outWatershed.save("C:/sapyexamples/output/outwtrshd01")
Watershed 示例 2(独立脚本)

本示例针对流向格网栅格中选定的倾泻点位置确定汇流区域,并以 TIFF 栅格的形式输出集水区。

# Name: Watershed_Ex_02.py
# Description: Determines the contributing area above a set of cells in a
#     raster.
# 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
inFlowDirection = "flowdir"
inPourPointData = "pourpoint"
inPourPointField = "VALUE"

# Execute Watershed
outWatershed = Watershed(inFlowDirection, inPourPointData, inPourPointField)

# Save the output 
outWatershed.save("C:/sapyexamples/output/outwtrshd02.tif")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题