在两个x、y、z点之间线性插值高程



我正在尝试获取到x、y、z点之间的高程值。使用scipy.interpolate.interp2d,如下所示:

x = np.array((140.865, 140.863))
y = np.array((59.8817, 59.8814))
z = np.array((121, 127))
f = scipy.interpolate.interp2d(x,y,z, kind="linear")
z_new = f(140.864,59.58816)

我得到以下错误:

TypeError: m >= (kx+1)(ky+1) must hold

我还没有找到这种类型错误的明确文档。也许我对interp2d使用的数据点太少了?

根据此处的文档:

插值所需的最小数据点数量轴为(k+1(**2,其中k=1表示线性,k=3表示立方,k=5表示五次插值。

由于您使用linear,(1+1(**2=4,不幸的是,您只提供了两个数据点。

最新更新