我的问题与线程Finding index of nearest point in numpy arrays of x and y coordinates中的问题类似,但它是扩展的:
为了更好的可视化,这里有一个图像 (操纵图像,原始来源:112BKS-Eigenes-werkorinal graph/Data from[…?)。。],抄送BY-SA 3.0,link to page):
一方面有一个数组datafield
。它由一个numpy数组和[value x y]
元素组成。这是带有数字的蓝色细线(它们是value
)。另一方面,在一个numpy数组中有一个数组orangeline
,元素为[x y]
。在
我要做的是计算orangeline
中任何元素的value
。
我用绿色圆圈可视化了orangeline
中的一个具体元素。它的值可以用datafield
中的两个元素插值,用三角形表示。结果我得到了一个介于225和230之间的绿色圆圈。在
第一步:
为orangeline
中的每个元素找到datafield
中最近的元素。
(在这个例子中是粉色三角形。)
第二步:
为“orangeline”中的每个元素找到datafield
中最接近的元素,但与第一步中的元素相比,还有另一个元素{
(在示例中为棕色三角形。)
第三步:对orangeline
中每个元素的value
从这两个已发现的值和到这些元素的距离进行插值。在
第一步可以用
mytree = scipy.spatial.cKDTree(datafield[:, 1:3])
dist1, indexes1 = mytree.query(orangeline)
但是现在我不知道如何为第二步过滤datafield。有解决办法吗?在
在@unutbu评论的帮助下,我找到了这个解决方案,它在
orangeline
不通过字段的情况下也非常有效。在以下是网格的函数:
另一个函数用于从orangeline中查找距离网格最近的点:
^{pr2}$现在代码是:
相关问题 更多 >
编程相关推荐