Làm thế nào để tính toán các khu vực ảnh hưởng trong QGIS?


10

Tôi đang cố gắng tạo một lớp đa giác hiển thị đa giác tương ứng với một cửa hàng gần nhất.

Đối với một bộ gồm 30 vị trí cửa hàng, kết quả phải là một lớp đa giác với 30 tính năng, một tính năng cho mỗi cửa hàng. Mỗi tính năng sẽ đại diện cho một khu vực nơi cửa hàng tương ứng là gần nhất. Ví dụ: một địa chỉ trong đa giác 12 có nghĩa là cửa hàng 12 là gần nhất.

Tôi có lớp vị trí cửa hàng và lớp đường phố OSM với cột tốc độ tối đa. Lớp đa giác kết quả phải dựa trên lớp đường phố OSM chứ không chỉ đơn giản là các khu vực tuyến tính.

Ý tưởng là được cung cấp một bộ cửa hàng và đường cố định, cửa hàng gần nhất sẽ không đổi tại bất kỳ điểm nào trên bản đồ. Vì vậy, tôi hy vọng rằng lớp đa giác kết quả sẽ không có khe hở.

Video này của phần mềm Maptitude cung cấp một ví dụ hoàn hảo về những gì tôi đang cố gắng thực hiện (chuyển nhanh đến 1:55 của video). Ngoài ra, xem hình ảnh dưới đây cho một ví dụ:

Khu vực bản đồ gần bệnh viện nhất

Đối với mỗi bệnh viện, có một khu vực tương ứng trong đó mọi thứ trong khu vực đó gần với bệnh viện nhất nằm trong khu vực đó.

Làm thế nào tôi có thể sao chép này bằng cách sử dụng QGIS?

Câu trả lời:


8

thuật toán cỏ v.net.alloc có thể tạo ra các mạng con - bạn có thể gọi nó từ hộp công cụ Xử lý (được thử nghiệm trong QGIS 2.16)

Bạn sẽ cần một lớp điểm (cho các cơ sở) và một lớp đường với chi phí (thời gian / chiều dài). Nó sẽ tạo một lớp dòng mới với một trường được gọi là catthêm, đây sẽ là id của cơ sở gần nhất.

Đây là một ví dụ dựa trên khoảng cách đi bộ đến quán rượu gần nhất. Mỗi phân đoạn dòng được tô màu bằng catcách sử dụng các màu ngẫu nhiên: -

v.net.alloc ví dụ

Lưu ý rằng đôi khi mạng lưới đường của hai quán rượu liền kề được cung cấp màu sắc rất giống nhau; nếu bạn gắn nhãn cho chúng, bạn sẽ thấy nó thực sự hoạt động.

Để có được các đa giác không có khoảng cách như bạn hiển thị ở trên, tôi đã bối rối. Nếu bạn 'trích xuất các nút' trên kết quả và áp dụng 'Convex Hull' (nhóm theo con mèo), sẽ có những khoảng trống và chồng chéo.

BIÊN TẬP

bạn thực sự có thể nhận được kết quả mong muốn. Như bạn đã đề xuất trong bình luận của mình, bạn có thể làm như sau ..

  • chạy Trích xuất các nút trên đầu ra của v.net.alloc
  • chạy đa giác Voronoi trên lớp nút giải nén
  • chạy Bộ đệm khoảng cách cố định trên đó để đảm bảo các đa giác chồng lên nhau (ví dụ: bộ đệm thêm 1 mét)
  • chạy Dissolve trên lớp đệm, sử dụng trường 'cat'

Đây là kết quả ... nó không hoàn hảo, đôi khi bạn sẽ thấy các phần của mạng lưới đường đi lạc vào các đa giác lân cận.

nhập mô tả hình ảnh ở đây

Có một 'cái bẫy' trong GUI 2.16 mới để giải thể. Tôi đặt trường, nhưng nó dường như làm tan biến mọi thứ. Bạn cần nhớ bỏ chọn hộp kiểm 'hòa tan tất cả' hoặc cài đặt trường bị bỏ qua.


Điều này rất hữu ích và tôi chắc chắn có thể sử dụng kết quả trong ứng dụng của mình. Tôi sẽ tạm thời mở cửa này để xem liệu có cách nào kết thúc với đa giác không. Có thể sử dụng công cụ Voroni Polygons bằng cách nào đó sẽ giúp ích?
ge0m3try

một Voronoi trên các cơ sở của bạn sẽ chỉ đưa ra một xấp xỉ, dựa trên khoảng cách Euclidian "khi con quạ bay" , do đó, nó bỏ qua mạng lưới đường của bạn một cách hiệu quả.
Steven Kay

Tôi tò mò nếu tôi trích xuất các nút trên kết quả v.net.alloc, voroni đó, và sau đó hòa tan các đa giác biểu quyết dựa trên định danh cơ sở duy nhất. Kích thước của tập dữ liệu đường rất lớn nên tôi sẽ không thể kiểm tra điều này một cách nhanh chóng, nhưng có lẽ trong lúc này sẽ có một số suy nghĩ về lý do tại sao điều này có thể không hoạt động.
ge0m3try

Thật ra, linh cảm của bạn là đúng - chỉ cần thử nó.
Steven Kay

2
LƯU Ý QUAN TRỌNG: Có một vài phiền toái với quy trình công việc này mà tôi đã tìm ra cách khắc phục. Công cụ đệm khoảng cách cố định là không cần thiết. Công Dissolvecụ SAGA dường như nhanh hơn nhiều so với công cụ tương đương của QGIS. Và, dường như cũng nhanh hơn để phân chia Voronoilớp theo cattrường, và sau đó dissolvemỗi khu vực riêng biệt. Mergehọ trở lại với nhau. Sau đó, chạy GRASS v.cleanvà chọn công cụ rmduplđể loại bỏ các nút trùng lặp. Điều này rất quan trọng nếu không các quá trình khác như cắt, nối không gian, tất cả sẽ không hoạt động chính xác trên bộ laorer voronoi hòa tan.
ge0m3try
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.