填洼 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

通过填充表面栅格中的汇来移除数据中的小缺陷。

了解有关填洼工作原理的详细信息

插图

“填洼”工具图示

使用情况

  • 凹陷点是指未定义流域方向的像元;其周围的像元均高于它。 倾泻点是相对于凹陷点的汇流区域高程最低的边界像元。 如果凹陷点中充满了水,则水将从该点倾泻出去。

  • z 限制指定凹陷点深度和倾泻点间的最大允许差值并确定要填充的凹陷点和保持不变的凹陷点。 z 限制并非一个凹陷点要填充的最大深度。

    例如,假设一个凹陷点区域中倾泻点的高程为 210 英尺,凹陷点的最深点为 204 英尺(相差 6 英尺)。 如果将 z 限制设置为 8,则会填充该特殊凹陷点。 但是,如果将 z 限制设置为 4,则不会填充该凹陷点,因为该凹陷点的深度超过该限制值,将其视为有效凹陷点。

  • 小于 z 限制且低于其最低相邻像元的所有凹陷点都将填充到其倾泻点的高度。

  • 运行填洼工具非常占用内存、CPU 和磁盘空间。 最多时可能要求磁盘空间为输入栅格的四倍。

  • 包含的带有 z 限制的凹陷点数量将决定处理时间的长度。 凹陷点越多,处理时间就越长。

  • 工具可用于在使用填洼工具前查找凹陷点数量,并帮助识别凹陷点深度。 了解凹陷点深度将有助于确定适用的 z 限制。

  • 此外,还可以使用填洼来移除峰值。 峰值像元高于所有相邻像元值。 要移除峰,必须转换输入的表面栅格值。 此操作可通过工具来执行。 将表面栅格数据的最高值指定为运算的第一个输入变量,将表面栅格数据指定为第二个输入变量。 执行填洼。 转换结果后获得的表面为包含原始表面栅格值且移除了峰值后的表面。 z 限制也可应用于此过程。 如果未对 z 限制作出任何指定,则将移除所有峰值。 如果指定了 z 限制,并且某峰与其最高相邻像元之间的 z 值差大于此 z 限制,则不会移除该峰。

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

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

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

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

参数

标注说明数据类型
输入表面栅格

输入栅格表示连续表面。

Raster Layer
Z 限制
(可选)

要填充的凹陷点与其倾泻点之间的最大高程差。

如果凹陷点与其倾泻点之间的 z 值差大于 z 限制,则不会填充此凹陷点。

Z 限制值必须大于零。

除非已指定该参数的值,否则将填充所有凹陷点(不考虑深度)。

Double

返回值

标注说明数据类型
输出表面栅格

已填充凹陷点的输出表面栅格。

如果表面栅格数据为整型,则输出已填充栅格数据也为整型。 如果输入为浮点型,则输出栅格也为浮点型。

Raster

Fill(in_surface_raster, {z_limit})
名称说明数据类型
in_surface_raster

输入栅格表示连续表面。

Raster Layer
z_limit
(可选)

要填充的凹陷点与其倾泻点之间的最大高程差。

如果凹陷点与其倾泻点之间的 z 值差大于 z 限制,则不会填充此凹陷点。

Z 限制值必须大于零。

除非已指定该参数的值,否则将填充所有凹陷点(不考虑深度)。

Double

返回值

名称说明数据类型
out_surface_raster

已填充凹陷点的输出表面栅格。

如果表面栅格数据为整型,则输出已填充栅格数据也为整型。 如果输入为浮点型,则输出栅格也为浮点型。

Raster

代码示例

填洼(Fill)示例 1(Python 窗口)

本示例将填充输入的高程表面格网栅格的凹陷点。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFill = Fill("elevation")
outFill.save("C:/sapyexamples/output/outfill01")
填洼(Fill)示例 2(独立脚本)

本示例将在应用 z 限制的情况下填充输入的高程表面格网栅格的凹陷点。

# Name: Fill_Ex_02.py
# Description: Fills sinks in a surface 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
inSurfaceRaster = "elevation"
zLimit = 3.28

# Execute FlowDirection
outFill = Fill(inSurfaceRaster, zLimit)

# Save the output 
outFill.save("C:/sapyexamples/output/outfill02")

许可信息

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

相关主题