Data structures 用于欧几里得三维数据查询的良好数据结构?
存储点云数据的好方法是什么,以使其适合于执行这两个查询之一的应用程序Data structures 用于欧几里得三维数据查询的良好数据结构?,data-structures,3d,Data Structures,3d,存储点云数据的好方法是什么,以使其适合于执行这两个查询之一的应用程序 距离(x,y,z)最近的(即最低欧氏距离)数据点 获取球体内的所有点,半径R围绕一个点(x,y,z) 该结构将只填充一次,但会读取多次。低内存占用会很好,因为我可能要处理大于700万点的数据集,但速度应该是首要考虑的问题。一个图书馆会很好,但如果在该领域的专业知识有限的情况下它是可行的,我不介意自己实现它 提前谢谢 A您得到的是O(log(n))最近邻,通常范围查询会很快 这里引用了很多库。我一个也没用过 你也可以看看。我在其
你也可以看看。我在其他方面也使用过CGAL,它速度相当快,非常全面,但是文档会让你喝酒 数据结构中的决策很大一部分将取决于数据的空间组织。例如,高度聚集的数据在kd树中往往比均匀分布的数据具有不同的性能特征 对于这两个查询都非常好 在许多情况下也是一个很好的选择,并且可能更容易实现
有许多库使用各种算法来实现这一点。搜索将发现许多有用的库。例如,我过去在这方面运气很好。wiki页面上有指向实现的链接,但我没有尝试过任何一个。kD树非常容易实现,特别是如果您没有添加和删除点(似乎您没有),ANN似乎很感兴趣,我也会看一看。谢谢@Xzhsh:顺便说一句,STANN是另一个好的。我认为他们甚至有一个ANN包装器,所以你可以用一个代码库尝试多种算法。。。