gpt4 book ai didi

python - 用莫顿代码找到最近的邻居

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:27 25 4
gpt4 key购买 nike

我已经实现了一个decode/encode方法来将二维点转换成它们各自的morton代码

我正在寻找的是找到最近的邻居(在 min_distance 下)因此,例如这样的事情:

points=[(200,300),(500,150),(100,50)]
mortonCodes = {}
for p in points:
mortonCodes[encode(p)] = p

nearest = findNearestNeighbor(mortonCodes, (201,305))
print(nearest) # ---> should return (200,300)

这可能吗?

最佳答案

您可以使用 min_distance 执行以下操作,例如 120:使用您的查询点qp=(201,305)并通过减去/添加距离来创建最小点和最大点:min=(81, 185)max=(321,425) .现在,您为这两点创建莫顿代码。

在 (210,305) 的 120 范围内的所有点都将具有莫顿代码 mcWithin120mortonCode(min) <= mcWithin120 <= mortonCode(max) .如果你有一个按莫顿代码排序的点列表,这应该会大大缩小搜索范围。

请注意,该范围将包含误报!并非所有 morton 代码在 min 和 max 之间的点都在给定的距离 120 内,因此您必须检查范围内的所有点是否“实际上”在正确的距离内。

如果您对空间搜索感兴趣,请查看 PH-Tree它是一种空间索引,类似于四叉树,使用莫顿顺序来优化树结构和搜索。

关于python - 用莫顿代码找到最近的邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com