[英]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.