反距离权重法 (Spatial Analyst)

需要 Spatial Analyst 许可。

需要 3D Analyst 许可。

描述

使用反距离加权法 (IDW) 将点插值成栅格表面。

了解有关反距离权重法工作原理的详细信息

使用方法

  • 使用反距离权重法 (IDW) 获得的像元输出值限定在插值时用到的值范围之内。因为反距离权重法是加权平均距离,所以该平均值不可能大于最大输入或小于最小输入。因此,如果尚未对这些极值采样,便无法创建山脊或山谷 (Watson and Philip 1985)。

  • 如果采样对于正在尝试模拟的本地变量来说足够密集,则基于反距离权重法会获得最佳结果。如果输入点的采样很稀疏或不均匀,则结果可能会不足以表示出所需的表面 (Watson and Philip 1985)。

  • 输入点对内插值的影响是各向同性的。由于输入点对内插值的影响与距离相关,因此反距离权重法不属于保留山脊范畴 (Philip and Watson 1982)。

  • 输出像元大小可以通过数值进行定义,也可以从现有栅格数据集获取。如果没有将像元大小明确指定为参数值,则将从像元大小环境获取相应值(前提是已指定环境)。如果未指定参数像元大小和环境像元大小,但已设置捕捉栅格环境,则将使用捕捉栅格的像元大小。如果未指定任何内容,则像元大小会通过使用范围的宽度或高度中的较小值除以 250 来计算,其中范围位于在环境中指定的输出坐标系内。

  • 如果使用数值指定像元大小,则工具会直接将其用于输出栅格。

    如果使用栅格数据集指定像元大小,则该参数将显示栅格数据集的路径而不是像元大小的值。如果数据集的空间参考与输出空间参考相同,则栅格数据集的像元大小将直接用于分析。如果数据集的空间参考与输出空间参考不同,则将基于所选的像元大小投影方法进行投影。

  • 某些输入数据集可能包含多个具有相同 x,y 坐标的点。如果共有位置处的点的值相同,则将其视为重复项,但并不影响输出。如果值不同,则将这些点视为重合点。

    各种插值工具可在不同条件下以不同方式处理此数据。例如,在某些情况下,使用遇到的第一个重合点进行计算;而在其他情况下,则使用遇到的最后一个点进行计算。这可能导致输出栅格中某些位置的值与预期值不同。解决办法就是在准备数据时移除这些重合点。“空间统计”工具箱中的收集事件工具用于识别数据中所有的重合点。

  • 障碍选项用于指定已知会中断表面连续性的线状要素的位置。这些要素不具有 z 值。典型的障碍示例如悬崖、断层和堤坝。对于将采样插值为输出 z 值所用的输入采样点集,障碍会将其选择范围限制在处于障碍同一侧的当前待处理像元。障碍造成的间隔由在每对点之间进行的视线分析确定。这表示对于要从彼此影响区域中排除的两点来说,拓扑间隔不是必需的。恰好位于障碍线上的输入采样点将包括在为障碍两侧选定的采样集中。

  • 障碍要素作为折线要素输入。反距离权重法仅使用 x,y 坐标表示线状要素;因此没有必要为障碍的左右两侧提供 z 值。提供的任何 z 值都将被忽略。

  • 使用障碍将显著增加处理时间。

  • 此工具最多可处理约 4,500 万个输入点。如果输入要素类包含 4,500 万个以上的点,工具可能无法创建结果。您可通过以多个部分对研究区域进行插值来避免这一限制,先确保在边缘中存在一些重叠数据,然后通过镶嵌结果来创建单个的大型栅格数据集。此外,可以使用 terrain 数据集来存储和显示点和由数十亿个测量点组成的表面。

    如果拥有 Geostatistical Analyst 扩展模块,您就可以通过模块中提供的反距离权重法工具版本来处理更大型的数据集。

  • 输入要素数据必须至少包含一个有效字段。

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

  • 参考文献:

    Philip, G. M., and D. F. Watson. "A Precise Method for Determining Contoured Surfaces." Australian Petroleum Exploration Association Journal 22: 205–212. 1982.

    Watson, D. F., and G. M. Philip. "A Refinement of Inverse Distance Weighted Interpolation." Geoprocessing 2:315–327. 1985.

语法

Idw(in_point_features, z_field, {cell_size}, {power}, {search_radius}, {in_barrier_polyline_features})
参数说明数据类型
in_point_features

包含要插值到表面栅格中的 z 值的输入点要素。

Feature Layer
z_field

存放每个点的高度值或量级值的字段。

如果输入点要素包含 z 值,则该字段可以是数值型字段或者 Shape 字段。

Field
cell_size
(可选)

将创建的输出栅格的像元大小。

此参数可以通过数值进行定义,也可以从现有栅格数据集获取。如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。有关详细信息,请参阅用法部分。

Analysis Cell Size
power
(可选)

距离的指数。

用于控制内插值周围点的显著性。幂值越高,远数据点的影响会越小。它可以是任意大于 0 的实数,但使用从 0.5 到 3 的值可以获得最合理的结果。默认值为 2。

Double
search_radius
(可选)

Radius 类可定义要用来对输出栅格中各像元值进行插值的输入点。

半径类分为两种类型:RadiusVariableRadiusFixed。使用“可变”搜索半径来查找用于插值的指定数量的输入采样点。“固定”类型使用指定的固定距离,将利用此距离范围内的所有输入点进行插值。“可变”类型是默认值。

  • RadiusVariable ({numberofPoints}, {maxDistance})
    • {numberofPoints} - 指定要用于执行插值的最邻近输入采样点数量的整数值。默认值为 12 个点。
    • {maxDistance} - 使用地图单位指定距离,以此限制对最邻近输入采样点的搜索。默认值是范围的对角线长度。
  • RadiusFixed ({distance}, {minNumberofPoints})
    • {distance} - 指定用作半径的距离,在该半径范围内的输入采样点将用于执行插值。

      半径值使用地图单位来表示。默认半径是输出栅格像元大小的五倍。

    • {minNumberofPoints} - 定义用于插值的最小点数的整数。默认值为 0。

      如果在指定距离内没有找到所需点数,则将增加搜索距离,直至找到指定的最小点数。

      搜索半径需要增加时就会增加,直到 {minNumberofPoints} 在该半径范围内,或者半径的范围越过输出栅格的下部(南)和/或上部(北)范围为止。NoData 会分配给不满足以上条件的所有位置。

Radius
in_barrier_polyline_features
(可选)

要在搜索输入采样点时用作中断或限制的折线要素。

Feature Layer

返回值

名称说明数据类型
out_raster

输出插值后的表面栅格。

其总为浮点栅格。

Raster

代码示例

IDW 示例 1(Python 窗口)

该示例输入一个点 shapefile,然后通过对表面插值,输出得到 TIFF 栅格。

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outIDW = Idw("ozone_pts.shp", "ozone", 2000, 2, RadiusVariable(10, 150000))
outIDW.save("C:/sapyexamples/output/idwout.tif")
IDW 示例 2(独立脚本)

该示例输入一个点 shapefile,然后通过对表面插值,输出得到 Grid 栅格。

# Name: IDW_Ex_02.py
# Description: Interpolate a series of point features onto a rectangular 
#   raster using Inverse Distance Weighting (IDW).
# 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
inPointFeatures = "ca_ozone_pts.shp"
zField = "ozone"
cellSize = 2000.0
power = 2
searchRadius = RadiusVariable(10, 150000)

# Execute IDW
outIDW = Idw(inPointFeatures, zField, cellSize, power, searchRadius)

# Save the output 
outIDW.save("C:/sapyexamples/output/idwout02")

许可信息

  • Basic: 需要 Spatial Analyst 或 3D Analyst
  • Standard: 需要 Spatial Analyst 或 3D Analyst
  • Advanced: 需要 Spatial Analyst 或 3D Analyst

相关主题