非规则网格的双立方插值?

时间:2011-05-04 19:00:09

标签: grid interpolation bicubic non-uniform-distribution

我正在开展一个项目,我有一组已知的测量值(x,y,z,a)和一个输入(z,a)。我需要能够插入(x,y,z),以便我可以从给定的z中获得可能的(x,y)坐标列表。

我正在研究双三次插值,但我只能找到与常规网格有关的例子,我的(x,y)对肯定不常规。

基本上我正在寻找有关算法/模型的一些指导来实现这一目标。我正在考虑一个三角形的不规则网络,这很有吸引力,因为它分解成易于确定给定Z的(x,y)的平面。但我想要更精细一点。

我知道这听起来像是家庭作业,不是。

效率不是问题。

谢谢!

2 个答案:

答案 0 :(得分:3)

我实际上最终使用Delauney Triangulation将字段分解为具有标识符的三维X,Y,Z曲面。然后给定一组(Identity,Z)对,我从每个表面形成场线,并从这些线计算由线之间的最短边形成的多边形。这给了我一个潜在的x,y坐标区域。

答案 1 :(得分:1)

看看Kd-tree。 这些首先在2d或3d或10d中取一组散点, 然后回答诸如“找到最接近P的3个点”之类的查询。

您的查询z a是否成对? 例如,给定地图上的一堆彩色图钉,x y size color的表格, 可以将所有[x y]放入kd树中,然后在给定x0 y0附近询问针脚。
或者,可以将所有[size color[放入树中,然后询问具有相似大小和颜色的针脚。 (请注意,大多数kd-tree实现使用欧几里德度量, 所以sqrt((size - size2)^ 2 +(color - color2)^ 2)应该有意义。)

在Python中,我强烈推荐scipy.spatial.cKDTree

另请参阅SO questions/tagged/kdtree