Phương pháp lập chỉ mục thay thế cho các hoạt động thiết lập điểm


17

Người ta thường sử dụng chỉ số không gian hộp giới hạn để cải thiện hiệu suất khi làm việc với một số lượng lớn các tính năng. Trường hợp các hoạt động được thực hiện đối với các hình học riêng lẻ với số lượng lớn các đỉnh có tồn tại bất kỳ chiến lược tối ưu hóa tương tự nào không?

Ví dụ, có bất kỳ cấu trúc dữ liệu nào tồn tại có thể tăng tốc điểm trong đa giác hoặc hoạt động hợp nhất không?


1
Dưới vỏ bọc, các GIS sử dụng nhiều cấu trúc dữ liệu chuyên biệt, bao gồm các dạng khác nhau của tứ giác, DCEL, v.v., được mô tả trong sách giáo khoa hình học tính toán. Bạn đang hỏi về các chi tiết triển khai này hoặc bạn đang tìm hiểu về các phương pháp có thể được người dùng sử dụng trong các ngôn ngữ kịch bản lệnh?
whuber

Cảm ơn, tôi nghĩ rằng tôi cần phải đọc sách giáo khoa. Vấn đề của tôi là làm thế nào những cấu trúc dữ liệu đó có thể được tính toán trước thời hạn. Có bất kỳ triển khai tính toán trước tồn tại?
Matthew Snape

Matthew, đó là một câu hỏi tuyệt vời. Một hệ thống GIS định hướng hiệu suất thực sự sẽ cung cấp các tùy chọn cho người dùng để tính toán trước các cấu trúc dữ liệu cho ứng dụng lặp đi lặp lại. Vì thế, phần mềm tự quảng cáo là "GIS" thường chỉ cung cấp tiền mã hóa dưới dạng "chỉ mục không gian" trong khi phần mềm đa năng hơn cũng có thể phân tích GIS, như Mathicala (hoặc ở một mức độ nào đó R) sẽ cung cấp cho người dùng kiểm soát nhiều hơn đối với những điều như vậy.
whuber

Tôi nghĩ vấn đề này dựa trên "bản chất fractal" của các đối tượng 2d và mật độ thông tin phân phối không chắc chắn và không cân bằng.
huckfinn

Câu trả lời:


2

Chỉ dùng cho Điểm trong Đa giác:

Tôi nghĩ vấn đề này dựa trên "bản chất fractal" của các đối tượng 2d và sự phân phối không chắc chắn và không cân bằng của thông tin không gian. Nếu bạn có một lưới thông thường, thật dễ dàng để xác định vị trí hoặc mối quan hệ của một ô. Nhưng một isoline của mô hình địa hình có thể có các phần không phức tạp ở phía bên kia và các phần phức tạp về mặt toán học ở phía bên kia (các phần hoạt động hình thái nằm trên các rặng núi, thung lũng ...).

Lập chỉ mục cố gắng xử lý hai điều:

  1. Một thói quen nhanh cung cấp cho bạn một nhóm xô trong đó bạn thu thập các đối tượng mà bạn có thể phân biệt không gian (các thùng!). Và BBoxes rất dễ tính toán và xử lý.

  2. Một tập hợp các quan hệ (chồng chéo, chạm) để phân biệt hoặc liên quan đến các công cụ không gian (các đối tượng).

Thật không may, BBoxes sẽ không cung cấp cho bạn manh mối, mỗi BBox có bao nhiêu điểm, các vật thể được tạo hình như thế nào (lỗ, lồi, ...) và cách thông tin được phân phối cục bộ (90% số điểm ở góc trên bên trái của BBox). Vì vậy, bạn có thể tìm thấy các thành viên hoạt động nhanh ở cấp độ đối tượng và mất nhiều thời gian trong việc xây dựng mối quan hệ của thử nghiệm.

Để sử dụng một cách tiếp cận bất thường hơn, tam giác IMO kết hợp với và tứ giác là một trong các chiến lược, trong đó bạn có thể mang phần xô và phần xây dựng quan hệ của một chỉ mục gần nhau hơn (bucketing == xây dựng quan hệ).

Đối với ví dụ Kiểm tra điểm đa giác, có thể xây dựng bộ đệm không đều bằng cách sử dụng:

  1. ! tam giác delaunay bị ràng buộc của bìa poly của bạn, với các điểm lưới viền bổ sung để phát hiện ra bên ngoài nắp
  2. đưa điều này vào sơ đồ lập chỉ mục tứ giác với không quá N tam giác trên mỗi hộp (xô fractal)
  3. tìm tập tam giác mà điểm thuộc về - lá trong tứ giác
  4. tìm tam giác trong đó điểm nằm (phần kiểm tra trên tam giác N tối đa)
  5. và yêu cầu ID đa giác của các đỉnh tam giác
  6. nếu ID là duy nhất thì điểm thuộc về đa giác, nếu không thì nó nằm ngoài

Chi phí để xây dựng thiếc và tứ giác rất cao và khó tính toán và tứ giác phải cân bằng các hình tam giác lớn và nhỏ (hình tam giác sẽ không vừa trong các hộp phụ nhỏ hơn).

Một số công cụ và liên kết:

Tam giác - Tam giác ràng buộc đa giác

Quadtrees - Với các ví dụ nguồn

Kho lưu trữ Stony Brook - Cấu trúc dữ liệu và hình học rời rạc

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.