2

可以说,我np.array在 Python 中有 3 个浮点值latitudeslongitudesvalues. 我想为不在latitudeandlongitude数组中的坐标插入一些值。我可以使用scipy.interpolate.griddata它,它工作得很好。

然而,我最近开始怀疑它是否interpolate像我预期的那样工作:因为它不知道欧几里德网格和经纬度网格的球形性质之间的区别,它可能会计算出错误的插值,至少对于linear. (因为两极处两个坐标之间的距离可能与赤道处两个坐标之间的距离大不相同。)

我确实查看了可以 在 scipy 站点上找到的文档,但没有找到有关处理非等距转换的信息。

坐标的球面性质和等距性质之间的差异对于 是一个问题scipy.interpolate.griddata,还是无关紧要?

4

2 回答 2

3

griddata假设欧几里得距离测量,所以你有通常的球到平面地图投影问题。

Scipy 0.11.0 具有用于在球体上插值数据的工具:http: //docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RectSphereBivariateSpline.html

这适用于直线纬度/经度网格。

于 2012-10-19T09:39:25.310 回答
1

您需要的是Slerp(球面线性插值),这是一种使用quaternion在球体上进行线性插值的方法。numpy有一个四元数 dtype作为附加组件实现,它可以让您有效地在 python 中实现 slerp。这里也是一个实现 slerp 的库。

于 2012-10-19T08:37:01.847 回答