Xác định các điểm trong một shapefile không có điểm nào khác trong phạm vi x km với QGIS


11

Đây có lẽ là một câu hỏi ngây thơ nhưng tôi đang vật lộn với tư cách là người dùng mới của QGIS.

Tôi có một shapefile rất lớn (275.000 điểm, nhưng có thể chia nó thành khoảng 10 tiểu vùng nếu cần thiết để xử lý nhanh hơn).

Tôi muốn xác định tất cả các điểm không có điểm nào khác trong phạm vi 200 mét và sau đó mã hóa từng điểm đó với giá trị "duy nhất" trong một trường của tệp.

Đối với tất cả các điểm khác là một phần của cụm cục bộ, sau đó tôi muốn mã hóa chúng thành "cụm".

Để đạt được điều đó, tôi muốn sau đó chỉ chọn một cho mỗi cụm trên cơ sở ngẫu nhiên để giữ lại trong tập dữ liệu, loại bỏ các cụm khác.

Hiện tại tôi không đạt được bước 1 nên mọi sự trợ giúp đều được hoan nghênh.

Câu trả lời:


0

Bạn cũng có thể thử tự tham gia bằng cách sử dụng plugin NNJoin trong QGIS.

Đối với mỗi tính năng của lớp đầu vào, nó sẽ tìm thấy tính năng gần nhất (không bao gồm chính nó trong trường hợp tự tham gia) và bao gồm khoảng cách và tất cả các thuộc tính của tính năng gần nhất trong tập dữ liệu được tạo. Sẽ mất một chút thời gian cho bộ dữ liệu của bạn (Tôi đã thử với bộ dữ liệu điểm với khoảng 175000 tính năng và phải mất vài phút ...).


9

Bạn có thể sử dụng Vector> Công cụ phân tích> Ma trận khoảng cách và tham gia để đạt được những gì bạn yêu cầu.

Tôi sẽ sử dụng lớp sân bay dữ liệu mẫu của qgis để làm gương. Đây là một bộ dữ liệu nhỏ, vì vậy tôi không chắc nó sẽ đi như thế nào với shapefile 275000 điểm.

1. Tạo ma trận khoảng cách bằng cách sử dụng lớp của bạn làm cả đích và đích.

Đừng quên đánh dấu "Chỉ sử dụng các điểm mục tiêu (k) gần nhất" và đặt thành 1.

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

2. Mở CSV bằng cách thêm lớp văn bản được phân tách

Chọn "Dấu phẩy" làm dấu phân cách và đặt định nghĩa hình học là không Hình học

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

3. Tạo một liên kết trong lớp ban đầu với bảng vừa tạo

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

4. Sử dụng máy tính Trường để điền vào một trường có các giá trị mong muốn

Do tham gia, giờ đây chúng tôi có quyền truy cập vào các giá trị bảng khoảng cách từ trong bảng thuộc tính của sân bay, do đó khá dễ dàng để tạo một trường mới và điền vào đó các giá trị "cụm" và "duy nhất" tùy thuộc vào các giá trị ma trận khoảng cách . vì dữ liệu mẫu của tôi, tôi đã sử dụng giá trị 1200000 (1200 km), bạn nên điều chỉnh nó cho trường hợp của bạn (200).

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

Cuối cùng, lớp của bạn sẽ có một trường mới gọi là point_type với các giá trị khác nhau theo khoảng cách tối thiểu đến điểm gần nhất.

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


Điều đó trông giống như một giải pháp thanh lịch. Tuy nhiên tôi có một biến chứng. Tôi biết có một số điểm có vị trí SẮC (những kết quả này từ các từ đồng nghĩa tên trong quá trình thu thập dữ liệu gốc). Trong một trường hợp tôi xác định 3 điểm giống nhau. Tôi nghĩ rằng giải pháp của bạn giả định (một cách hợp lý) rằng tất cả các điểm đều nằm ở vị trí duy nhất. Có cách nào rõ ràng để tôi có thể sàng lọc phạm vi bảo hiểm của mình để loại bỏ các điểm cùng vị trí trước không?
Leigh Bettenay

@LeighBettenay Nếu câu trả lời này giải quyết câu hỏi ban đầu của bạn thì tôi nghĩ bạn nên chấp nhận (đánh dấu màu xanh lá cây), để thưởng cho nỗ lực của người trả lời và nghiên cứu / đặt ra yêu cầu bổ sung của bạn như một câu hỏi mới. +1 cho câu hỏi đầu tiên tuyệt vời!
PolyGeo

@PolyGeo Xin lỗi tôi là người mới tham gia diễn đàn này và không biết giao thức. Rất vui khi "đánh dấu xanh" một câu trả lời tuyệt vời nhưng thật đáng buồn là không biết làm thế nào !!
Leigh Bettenay

Chỉ cần nhấp vào dấu tick màu xám bên dưới biểu quyết của câu hỏi (góc bên trái của câu hỏi). Cảm ơn
Alexandre Neto
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.