繁体   English   中英

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

[英]Linearly interpolate elevation between two x,y,z points

我正在尝试获取 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,不幸的是您只提供了两个数据点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM