2011-05-19 179 views
5

所有,純Python實現四叉樹

有關於實施使用Python四叉樹的幾個例子,但我的問題是,沒有人知道在一個單一的.py文件用純Python作爲一類的,我可以很容易地包括在我的項目中?這裏列出了三種最受歡迎​​的軟件包Are any of these quad-tree libraries any good?,但由於運行它們需要的所有依賴關係,所以我沒有使用它們。我真的很喜歡輕巧和使用相對簡單的東西。我想通過傳遞整個地球的界限來調用腳本,並從那裏開始工作。 myMethod((-180,-90,180,90))

感謝, 亞當

+2

那麼你鏈接到的問題中的第二個庫呢?(http://stackoverflow.com/questions/2298517/are-any-of-these-quad-tree-libraries-any-good)?依賴關係是微不足道的。 – NPE 2011-05-19 14:36:56

回答

1

看看Rect。你需要2個文件。你可以將它們合併成一個。

+0

code.google.com上的[Rect](http://pypi.python.org/pypi/Rect)軟件包的維基頁面(實際上整個項目)似乎沒有了。任何人都知道缺失信息的更新鏈接? – Inactivist 2013-06-02 16:01:51

+1

這很不幸。儘管如此,tar.gz仍然可以在PyPi上使用。 – moraes 2013-07-10 11:39:48

3

PyQuadTree是一個非常輕量級的模塊(我是基於別人的代碼構建的)。它是用純Python編寫的,沒有依賴關係,並且不需要任何安裝或編譯。這是一個單獨的.py文件,可以很容易地包含在更大的項目中,這聽起來像是在這裏問的。

它也有文檔並支持Python 2x和3x。

+0

我對Quadtrees沒有經驗,但我必須在軌跡分析項目中實現它。請讓我知道,如果你的模塊可以幫助分析軌跡(由x,y座標序列組成的軌跡數據) – Liza 2017-05-09 03:41:03

+0

如果通過軌跡,你只是指代表運動的線幾何圖形,那麼運行良好。但是lib不關心幾何類型,它只需要一個邊界框(xmin,ymin,xmax,ymax)。因此,您可以將多個不同的軌跡bbox插入樹中,然後您可以查詢樹以快速查看哪些軌跡位於某個區域中。轉到鏈接到博客帖子中的github repo,專門閱讀如何使用它。 – 2017-05-09 07:42:16

+0

非常感謝您的回覆。請看看這裏https://stackoverflow.com/questions/44147628/implementing-quadtree-on-a-data-frame我試圖在數據框上實現這一點,我也不知道如何查詢樹來知道哪些軌跡屬於哪個象限。即使一點幫助也是非常有用的。謝謝。 – Liza 2017-05-24 01:49:20