GIS开发 | 空间分析 | 软硬件技术

空间插值方法详解:从IDW到克里金

空间插值是将离散点数据转换为连续表面的重要技术,在气象、环境、地质等领域应用广泛。本文系统介绍三种常用插值方法。

一、反距离权重法(IDW)

IDW基于"距离越近影响越大"的假设,计算公式简单直观。

from scipy.interpolate import Rbf
import numpy as np

def idw_interpolation(x, y, z, x_grid, y_grid, power=2):
    from scipy.spatial.distance import cdist
    points = np.column_stack([x, y])
    grid_points = np.column_stack([x_grid.ravel(), y_grid.ravel()])
    dist = cdist(grid_points, points)
    weights = 1.0 / (dist ** power + 1e-10)
    z_grid = np.sum(weights * z, axis=1) / np.sum(weights, axis=1)
    return z_grid.reshape(x_grid.shape)

二、克里金插值(Kriging)

克里金插值是地统计学中最优无偏估计方法,考虑了空间自相关性。

from pykrige.ok import OrdinaryKriging

OK = OrdinaryKriging(x, y, z, variogram_model="gaussian")
z_grid, ss = OK.execute("grid", x_grid, y_grid)

三、方法对比

  • IDW:简单快速,但不考虑空间结构
  • 克里金:统计最优,但计算量大,需拟合变异函数
  • 样条函数:平滑效果好,适合渐变表面

选择插值方法时需要综合考虑数据特征、精度要求和计算效率。