我正在处理一个项目,其中我有一组已知的测量值(x,y,z,a)和输入(z,a)。我需要能够插值(x,y,z),这样我就可以从给定的z中得到一个可能的(x,y)坐标列表。
我在看双三次插值,但我只能找到关于规则网格的例子,我的(x,y)对肯定不是规则的。
基本上我正在寻找一些关于算法/模型的指导来实现这一目标。我正在考虑一个三角形不规则网络,它很有吸引力,因为它分解成平面,很容易从给定的z确定(x,y),但我想要更多的技巧。
我知道这听起来像家庭作业,它不是。
效率不是问题。
谢谢!
我实际上最终使用Delauney三角剖分法将字段分解为带有标识符的三维X,Y,Z曲面。然后给定一组(Identity,Z)对,我从每个表面形成一条场线,并从这些线计算由线之间最短的边形成的多边形。这就得到了x,y坐标的面积
看一下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. space . ckdtree。
参见SO questions/tagged/kdtree。