我正在开展一个项目,我有一组已知的测量值(x,y,z,a)和一个输入(z,a)。我需要能够插入(x,y,z),以便我可以从给定的z中获得可能的(x,y)坐标列表。
我正在研究双三次插值,但我只能找到与常规网格有关的例子,我的(x,y)对肯定不常规。
基本上我正在寻找有关算法/模型的一些指导来实现这一目标。我正在考虑一个三角形的不规则网络,这很有吸引力,因为它分解成易于确定给定Z的(x,y)的平面。但我想要更精细一点。
我知道这听起来像是家庭作业,不是。
效率不是问题。
谢谢!
答案 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。