存儲點雲數據的好方法是什麼,以便對於執行這兩個查詢之一的應用程序來說它是最佳選擇?歐幾里德三維數據查詢的良好數據結構?
- 最近(即最低歐幾里德距離)的數據點以(X,Y,Z)
- 獲取與周圍的點的半徑R(X,Y,Z)
該結構將只填充一次,但多次閱讀。由於我可能正在處理大於700萬點的數據集,所以內存容量不足會很好,但速度應該是首要關注的問題。一個圖書館會很好,但如果在該領域有限的專業知識是可行的,我不會介意自己實施它。
在此先感謝!
存儲點雲數據的好方法是什麼,以便對於執行這兩個查詢之一的應用程序來說它是最佳選擇?歐幾里德三維數據查詢的良好數據結構?
該結構將只填充一次,但多次閱讀。由於我可能正在處理大於700萬點的數據集,所以內存容量不足會很好,但速度應該是首要關注的問題。一個圖書館會很好,但如果在該領域有限的專業知識是可行的,我不會介意自己實施它。
在此先感謝!
數據結構中決定的一大部分將取決於數據的空間組織。例如,高度集羣的數據在kd樹中往往具有不同於均勻分佈的數據的性能特徵。
KD-Trees對於這兩個查詢都非常有用。
Octree在許多情況下也是很好的選擇,並且可能更容易實施。
有許多圖書館這樣做,使用各種算法。搜索k-nearest neighbor searching將顯示許多有用的庫。例如,過去我曾與ANN運氣相當好。
ANN看起來很感興趣,我也會看看它。謝謝! – Xzhsh 2010-08-05 22:56:07
@Xzhsh:斯坦是另一個很好的,順便說一句。我認爲他們甚至有一個ANN包裝器,所以你可以用一個代碼庫嘗試多種算法...... – 2010-08-05 23:05:52
現在就讀它,謝謝 – Xzhsh 2010-08-05 21:56:27
在wiki頁面上有實現的鏈接,但我還沒有嘗試過。 KD樹很容易實現,特別是如果你不添加和刪除點(看起來你不是) – deinst 2010-08-05 22:02:47