样条函数 (空间分析)
用法
-
使用样条函数法类型的 REGULARIZED 选项所生成的表面通常比使用 TENSION 选项创建的表面更平滑。
通过使用 REGULARIZED 选项,用于权重参数的较高值可生成更加平滑的表面。为该参数输入的值必须大于或等于零。所使用的典型值为 0、0.001、0.01、0.1 和 0.5。权重是文献资料中称为 tau (t) 的参数的平方。
通过使用 TENSION 选项,为权重参数输入的较高值会产生略微粗糙的表面,但表面与控制点紧密贴合。输入的值必须大于或等于零。典型值为 0、1、5 和 10。权重是文献资料中称为 phi (Φ) 的参数的平方。
-
点数的值越大,输出栅格的表面越平滑。
-
某些输入数据集可能包含多个具有相同 x,y 坐标的点。如果共有位置处点的值相同,则将其视为重复项,但并不影响输出。如果值不同,则将这些点视为重合点。
各种插值工具可在不同条件下以不同方式处理此数据。例如,在某些情况下,使用遇到的第一个重合点进行计算;而在其他情况下,则使用遇到的最后一个点进行计算。这可能导致输出栅格中某些位置的值与预期值不同。解决办法就是在准备数据时移除这些重合点。“空间统计”工具箱中的收集事件工具用于识别数据中所有的重合点。
语法
参数 | 说明 | 数据类型 |
in_point_features |
包含要插值到表面栅格中的 z 值的输入点要素。 | Feature Layer |
z_field |
存放每个点的高度值或量级值的字段。 如果输入点要素包含 z 值,则该字段可以是数值型字段或者 Shape 字段。 | Field |
cell_size (可选) |
要创建的输出栅格的像元大小。 如果明确设置该值,则它将是环境中的值,否则,它是输入空间参考中输入点要素范围的宽度或高度除以 250 之后得到的较小值。 | Analysis Cell Size |
spline_type (可选) |
要使用的样条函数法类型。
| String |
weight (可选) |
影响表面插值特征的参数。 使用 REGULARIZED 选项时,它定义曲率最小化表达式中表面的三阶导数的权重。如果使用 TENSION 选项,它将定义张力的权重。 默认权重为 0.1。 | Double |
number_points (可选) |
用于局部近似的每个区域的点数。 默认值为 12。 | Long |
返回值
名称 | 说明 | 数据类型 |
out_raster |
输出插值后的表面栅格。 | Raster |
代码实例
该示例输入一个点 shapefile,然后通过对表面插值,输出得到 TIFF 栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outSpline = Spline("ozone_pts.shp", "ozone", 2000, "REGULARIZED", 0.1)
outSpline.save("C:/sapyexamples/output/splineout.tif")
该示例输入一个点 shapefile,然后通过对表面插值,输出得到 Grid 栅格。
# Name: Spline_Ex_02.py
# Description: Interpolate a series of point features onto a
# rectangular raster using a minimum curvature spline technique.
# 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
inPntFeat = "ozone_pts.shp"
zField = "ozone"
cellSize = 2000.0
splineType = "REGULARIZED"
weight = 0.1
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Spline
outSpline = Spline(inPntFeat, zField, cellSize, splineType, weight)
# Save the output
outSpline.save("C:/sapyexamples/output/splineout02")