Sửa lỗi geometry QGIS – Sửa lỗi đối tượng hình học QGIS

Sửa lỗi geometry QGIS – Sửa lỗi đối tượng hình học QGIS

Chắc hẳn trong quá trình biên tập bất kỳ loại bản đồ trên nền tảng phần mềm GIS nào thì đau đầu nhất vẫn là sửa lỗi geometry, lỗi topo. Vấn đề là nếu vài lỗi đến vài chục lỗi thì không thành vấn đề, nhưng khi lỗi lên đến hàng trăm, hàng ngàn thì ai cũng thấy ngán ngẩm và phần lớn luôn suy nghĩ đến việc làm thế nào để sửa lỗi geometry, lỗi topo nhanh, tự động, hiệu quả. Trên thực thế thì không có cách nào gọi là nhanh, chính sác, hiệu quả mà tự động cả. Dưới đây là một số cách đã được GFD tổng hợp và chia sẻ trên Fanpage, tuy nhiên rất ít người biết đến bài viết này do vậy BĐLN chia sẻ lên đây để mọi người biết và thử áp dụng cho trường hợp của mình.

Trong QGIS trước khi chạy các geo-processing như intersect, clip, differences, phân tích địa hình, thường các bạn phải có một file bản đồ sạch sẽ về topology, nếu không thì khả năng cao là lệnh của bạn sẽ bị QGIS nhè ra không nhận. Hiểu một cách đơn giản, sạch về topology nghĩa là các đối tượng trong bản đồ không có các dangling node, self-intersection node (chồng đè, vặn xoắn), khe hở giữa các đối u tượng (gap), hoặc các lỗ thủng rất nhỏ (sliver) do các quá trình xử lý trước đây. Ở bài này ta chỉ nói về topology và xử lý topology của bản đồ dạng vùng (poloygon). Topo của dạng đường (line) sẽ nói ở dịp khác.

Một số ví dụ về các lỗi topo trong hình dưới đây:

Dangling node

Self-intersection

Gap

Để sửa lỗi geometry, sửa lỗi topology trong QGIS có rất nhiều cách, ví dụ 1 cách đơn giản là chạy lệnh Buffer và để khoảng cách thật nhỏ (ví dụ -0.001). Khi các đối tượng được buffer 1 chút thì phần buffer rộng ra nó sẽ tự đè lên và xóa đi các node thừa, các khoảng hở nhỏ giữa các đối tượng. Thường thì chạy buffer đã sửa được đến 80% lỗi.

Một cách nữa tốt và có nhiều lựa chọn hơn là lệnh v.clean. Các làm như sau

Bước 1. Vào Processing toolbox >> v.clean

Chú ý là đôi khi bạn sẽ nhận được báo lỗi không tìm thấy thư viện GRASS, trong trường hợp này, hãy đóng QGIS lại và chạy bản QGIS with Grass. Khi cài QGIS bạn sẽ có cả bản QGIS thường và QGIS with GRASS, trong bản này đảm bảo lệnh v.clean sẽ launch được.

Bước 2. Cấu hình lệnh v.clean

Trong cửa sổ v.clean chọn như hình dưới đây. Quan trọng nhất là 2 lựa chọn ở phần Advance parameters:

Snap để chọn khoảng cách để xử lý hở hoặc chồng đè giữa các đối tượng

min area để chọn diện tích của các khoảng rỗng, các đố tượng rác cần loại bỏ, phần này tính bằng m2.

v.clean dialoge

Bước 3. Kiểm tra kết quả

Sau khi chạy xong QGIS sẽ cho ra 2 file, 1 file có tên là Cleaned, chứa kết quả đã được sửa topology. Một file có tên là Erros, chứa các phần lỗi còn lại. Trong trường hợp, không còn lỗi nào thì file Erros sẽ rỗng.

Nếu bạn có rất nhiều file cần sửa thì có thể chạy batch mode và chọn tất cả các file cần làm. Nếu máy trâu một chút thì xử lý vài trăm file chỉ là chuyện nhỏ.

Sau khi chạy xong, bạn có thể chạy tool kiểm tra lỗi Topology Checker (cần cài từ Plugin manager) để kiểm tra xem kết quả từ v.clean đã ổn chưa.

Vào Topology Checker (nếu chưa có phải cài từ Plugin Manager)

Topology Checker

Cấu hình check lỗi và chạy Validation

Giao diện Topology Checker

Add rule

Nếu bản đồ của bạn đã hết lỗi, kết quả trả lại sẽ là bảng Errors rỗng. Bạn cũng có thể chạy tool này trước v.clean để đánh giá tình hình và tính toán xem đặt các tham số cho v.clean sao cho hợp lý.

Chúc bạn sửa lỗi geometry hiệu quả

Recommended For You

About the Author: Admin