2

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

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

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

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

效率不是问题。

谢谢!

4

2 回答 2

3

I actually ended up using Delauney Triangulation to break down the fields into 3 dimensional X,Y,Z surfaces with an Identifier. Then given a set of (Identity,Z) pairs I form a field line from each surface, and from these lines compute the polygon formed from the shortest edges between lines. This gives me an area of potential x,y coordinates.

于 2011-05-13T20:02:28.317 回答
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

于 2011-05-06T11:00:44.090 回答