微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在两个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使用的数据点太少了?

解决方法

根据文档here

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

并且由于您使用linear,所以(1 + 1)** 2 = 4,很遗憾,您仅提供了两个数据点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。