# 划定IT

## 概述

## 简介

在InVEST中，许多淡水模型需要流域多边形来汇总提供给受益者的生态系统服务。然而，我们发现使用现有工具建立流域是困难的，并且通常需要特定的专业知识和/或专有工具集。为了满足这一需求，我们开发了自己的分水岭划定算法，该算法在 PyGeoprocessing GIS 包中发布，并封装到 InVEST 内部的 UI 中。所有DEM路径都由PyGeoprocessing处理，这解析了水文汇流和高原，并使用D8来规划流向的路径

另请参阅本用户指南的**DEM使用** 部分，了解有关准备用于 InVEST 的 DEM 以及使用它创建流域和流域的更多信息。

## 模型

### 填充坑

首先，模型填充 DEM 中的任何坑（水文汇流）。此步骤有助于确保所有像素从栅格的定义区域流出

### 计算流向

该模型将 D8 路径算法应用于填充的 DEM，以计算水从每个像素流出的方向。

### 检测倾点

倾泻点是水流流向地图定义区域的点，水流为从栅格边缘流出或流入无数据像素。 如果您选择了检测倾点选项，则模型将在栅格边缘流出或流入无数据像素的每个像素中心放置一个倾点。或者，您也可以通过*流域出口*输入提供自己的倾点图层。

### 捕捉最近的水流

如果出口要素不直接位于溪流上，则会生成一个非常小的分水岭，这通常是不正确的。划定IT可以将点出口要素捕捉到最近的溪流，以形成更强大的流域。为此，该工具将构建河流地图，然后将分水岭出口点重新定位到作为模型输入*捕捉距离*内的最近河流。

#### 计算累计流量

该模型使用 D8 算法计算流向栅格的流量累积。这表示从上坡区域流到像素上的相对水量。

#### 阈值流量累积 (TFA)

该模型通过按 TFA 值对流量累积栅格进行阈值化来识别河流。流量累积大于或等于TFA值的区域被视为河流。

### 划定流域

该模型使用 D8 算法根据流向栅格和流域出口几何（如果提供）或检测到的倾泻点（如果选择了检测倾泻点）生成流域的面矢量。

## 数据需求

- workspace (模型数据目录, 必填): The folder where all the model's output files will be written. If this folder does not exist, it will be created. If data already exists in the folder, it will be overwritten.

- file suffix (文本, 可选的): Suffix that will be appended to all output file names. Useful to differentiate between model runs.

- digital elevation model (栅格, 单位: m, 必填): Map of elevation above sea level.

  水文汇流和平坦高原区域将通过PyGeoprocessing处理自动求解。

- 检测倾倒点 (真/假): 根据DEM检测倾倒点（流域出口），并使用这些倾倒点而不是用户提供的出口特征矢量。

  每个像素的中心都有一个倾点，该倾点从栅格边缘流出或流入无数据像素。流向是对DEM使用 D8 算法计算得来。

- 流域出口 (向量, point/multipoint/linestring/multilinestring/polygon/multipolygon, 有条件地要求): 流域出口的地图，据此划定流域。如果没有勾选检测倾倒点，则需要。

  这些几何可以表示为河流进水点、人口中心、道路、自治市边界或其他感兴趣的要素，并且可以是任何几何类型，包括点、线或面。与此矢量关联的任何字段都将复制到输出流域矢量。

- 跳过无效的几何图形 (真/假): 跳过在出口特征中发现的任何无效几何图形的划线。否则，一个无效的几何图形将导致模型崩溃。

  如果跳过任何几何图形，日志文件将包含警告消息。描绘它只能从有效的几何中描绘分水岭，因此用户有责任确保所有几何都有效。可以使用 ArcGIS 工具"检查几何"或 QGIS 工具"修复几何"解决这些问题。

- 捕捉点指向最近的河流 (真/假): Whether to snap point geometries to the nearest stream pixel. If `True`, `args['flow\_threshold']` and `args['snap\_distance']` must also be defined. If a point is equally near to more than one stream pixel, it will be snapped to the stream pixel with the highest flow accumulation value. This has no effect if Detect Pour Points is selected.

  只有``点``几何图形或具有单个组件点的``多点``几何图形将被重新定位。所有其他几何类型将保持不变。如果选择了**检测倾点**，则此输入将不起作用。

- threshold flow accumulation (数量, 单位: 像元数量, 有条件地要求): The number of upslope pixels that must flow into a pixel before it is classified as a stream. Required if Snap Points is selected.

  此阈值越小，产生的支流越多，值越大，支流越少。

- 捕捉距离 (数量, 单位: 像元数量, 有条件地要求): 重新定位流域出口点的最大距离，以便将其锁定在一个流上。如果选择卡住点，则需要。

  请注意，这是以像素为单位距离，而不是米，因此请根据您的像素大小进行缩放。

## 解释结果

所有输出都可以在前面给出的 工作区 目录中找到。它们包括：

> - watersheds.gpkg 一个 GeoPackage 矢量，用于定义捕捉出口点上游的区域，其中上游区域由 PyGeoprocessing 中的 D8 算法实现划分。

> - snapped_outlets.gpkg ，一个矢量，其根据“阈值流量累积”和“像素距捕捉出口点”的值捕捉的出口点（仅限点几何）的位置。任何非点几何也将复制到此矢量，但不会更改

> - preprocessed_geometries.gpkg 其仅包含模型可以验证的几何图形是否为有效的矢量。此矢量中显示的几何将是传递给流域描绘的几何。

> - streams.tif 用于捕捉出口点的栅格流图层，由DEM和阈值流量累积值生成。

> - filled_dem.tif DEM数据,且水文汇流点已经被填充。

> - flow_direction.tif 根据填充的DEM创建D8流向栅格。

> - flow_accumulation.tif 根据``flow_direction.tif``创建的 D8 流量累积栅格。

## 参考

PyGeoprocessing https://github.com/natcap/pygeoprocessing