2012-10-25 20 views
5

Tôi đang sử dụng thư viện spatialindex từ http://libspatialindex.github.com/lựa chọn các thông số cho R * Tree sử dụng SpatialIndex thư viện

tôi đang tạo ra một R * cây trong bộ nhớ chính:

size_t capacity = 10; 
bool bWriteThrough = false; 
fileInMem = StorageManager 
    ::createNewRandomEvictionsBuffer(*memStorage, capacity, bWriteThrough); 

double fillFactor = 0.7; 
size_t indexCapacity = 10; 
size_t leafCapacity = 10; 
size_t dimension = 2; 
RTree::RTreeVariant rv = RTree::RV_RSTAR; 
tree = RTree::createNewRTree(*fileInMem, fillFactor, indexCapacity, 
    leafCapacity, dimension, rv, indexIdentifier); 

Sau đó, tôi đang chèn một lớn số lượng các hộp giới hạn, hiện tại khoảng 2.5 triệu (mạng lưới đường bộ của Bavaria ở Đức). Sau đó tôi sẽ nhắm vào việc chèn tất cả các con đường của châu Âu.

Lựa chọn thông số tốt cho trình quản lý lưu trữ và rtree là gì? Chủ yếu là tôi đang sử dụng rtree để tìm những con đường gần nhất với một truy vấn cụ thể (giao điểm bbox).

+0

+1 Vì tôi chưa bao giờ nghe nói về cây R * trước đây, và nó khá thú vị. http://en.wikipedia.org/wiki/R*_tree –

+0

tốt, nó là một cấu trúc chỉ mục khá chuẩn, được sử dụng để trả lời các truy vấn không gian (cho tôi tất cả các đối tượng rơi vào một truy vấn hình chữ nhật đã cho) và các truy vấn lân cận gần nhất (cung cấp cho tôi các đối tượng gần nhất với truy vấn điểm của tôi). Nếu bạn quan tâm, hãy xem các chỉ mục không gian nói chung: http://en.wikipedia.org/wiki/Spatial_database – arthur

Trả lời

3

Khi dữ liệu của bạn tĩnh, tải hàng loạt tốt có thể phù hợp với bạn. Tải bluk phổ biến nhất (và khá đơn giản) là Sort-Tile-Recursive. Tuy nhiên, nó được thiết kế phần nào xung quanh dữ liệu điểm. Khi bạn đang chèn các đối tượng không gian, nó có thể hoặc có thể không hoạt động tốt.

Nếu bạn đang sử dụng tải hàng loạt, nó sẽ không còn là R * -tree nữa, mà là một cây R đồng bằng.

Dung lượng 10 âm thanh cách quá ít đối với tôi. Bạn muốn có một fan hâm mộ lớn hơn nhiều. Nhưng bạn sẽ cần phải chuẩn, đây là bộ dữ liệu và truy vấn phụ thuộc vào những gì là tốt. Tôi chắc chắn sẽ thử 100 hoặc nhiều hơn.

+0

Cảm ơn các nhận xét và thông tin. Tôi đã tăng cả hai giá trị dung lượng lên 100. Điều này xây dựng một cây có chiều cao 3. Tôi sẽ thử nghiệm các giá trị và đăng chúng ở đây sau vài ngày .. – arthur

+0

Theo những gì Mario giải thích trong danh sách http: //. gispython.org/pipermail/spatialindex/2013-June/000354.html, cây được nạp hàng loạt không phải là R-tree đồng bằng, cũng như R * -tree. – mloskot

+0

Sau đó, thư đó không chính xác. Nạp hàng loạt R-tree bằng STR sẽ không tạo ra cây * chính xác giống như một cây R được nạp thêm (vì các lý do rõ ràng, ví dụ tỷ lệ lấp đầy cao hơn nhiều so với một cây đã được nạp), nhưng nó vẫn là một hợp lệ R- * và * R * -tree và cả hai có thể được truy vấn và cập nhật theo cùng một cách. –

Các vấn đề liên quan