Sửa lỗi hiệu lực hình học trong QGIS?


31

Tôi đang làm việc về dữ liệu quyền sở hữu ở cấp quận của Hoa Kỳ. Tôi có một shapefile mỗi quận có hàng ngàn bưu kiện thuế. Tôi cần phải giải thể các đa giác đại diện cho các bưu kiện thuộc sở hữu của cùng một cá nhân. Khi shapefile không sạch, công cụ "Hòa tan" trong QGIS dường như không hoạt động, nó bị đóng băng. Trước tiên, tôi phải sửa các vấn đề về tính hợp lệ của hình học bằng cách sử dụng công cụ "Kiểm tra tính hợp lệ của hình học". Tuy nhiên, đôi khi tôi có hàng trăm lỗi. Phải mất rất nhiều thời gian để sửa chúng bằng tay. Có chiến lược nào khác có thể giúp tôi tiết kiệm thời gian không?

Tôi đang sử dụng QGIS 2.4.0.


2
Bạn đã thử nhập tệp trong cỏ và sử dụng v.clean? nó có thể sẽ sửa rất nhiều lỗi của bạn
Sergio

Câu trả lời:


20

Hãy thử chạy một bộ đệm tinh tế trên các đa giác. Cài đặt -0,001 nếu CRS của bạn là UTM có vẻ đáng để thử. YAMOR | BUFFER


4
Tôi đã thử giải pháp "Bộ đệm" được đề xuất đầu tiên bởi BillW. Nó đã giải quyết 97% các vấn đề của tôi, đủ cho tôi bây giờ. Tôi có thể hoàn thành công việc bằng tay. Chạy một bộ đệm nhỏ trên các đa giác sẽ không tạo ra bất kỳ vấn đề nào đối với tôi. Nhưng tôi có thể thấy một số trường hợp sử dụng ST_MakeValid hoặc thử v.clean có thể tốt hơn và chính xác hơn.
Bap

18

Khi tôi có một lớp có lỗi, tôi thường chạy nó thông qua hàm GRASS v.clean trong Hộp công cụ xử lý . Mặc dù tôi không bao giờ thực sự tìm ra công cụ nào là tốt nhất trong trường hợp nào, tôi thường chọn hàm bpol ở đó.

Có lẽ điều quan trọng hơn nữa là thiết lập các tham số nâng cao cho dung sai snapdiện tích min . Tùy thuộc vào lớp, tôi thường chọn 0,1 đến 2 mét để chụp và ví dụ 10 mét vuông cho diện tích tối thiểu.

Ảnh chụp nhanh, ví dụ: căn chỉnh các ranh giới có nghĩa là các đường viền chung nhưng có độ lệch nhỏ, diện tích tối thiểu giúp loại bỏ các mảnh nhỏ khỏi các giao lộ, v.v.

Cùng với bpol, điều này thường giải quyết tất cả các lỗi mà không thay đổi quá nhiều cấu trúc liên kết.


11

Bạn có thể sử dụng ST_MakeValid trực tiếp trong QGIS thêm plugin lwgeom có ​​thêm nhà cung cấp lwgeom vào hộp công cụ xử lý => bạn có thể áp dụng MakeValid trực tiếp trên lớp đã tải mà không cần chuyển đổi trong postigs / spatialite. Postgis / spatialite sử dụng cùng liblwgeom để thực hiện ST_MakeValid

bạn phải cài đặt liblwgeom và cấu hình nhà cung cấp xử lý để trỏ đến nó

nhà cung cấp lwgeom có ​​thể được tìm thấy như là thử nghiệm: https://plugins.qgis.org/plugins/ /


3
Tôi vừa phát hành một phiên bản mới của nhà cung cấp processlwgeom để có thể sử dụng được với phiên bản chính hiện tại của xử lý qgis. (quá trình xử lý đang được tái cấu trúc)
Luigi Pirelli

2
Xin chào @LuigiPirelli Tôi đã cố gắng giải quyết vấn đề tương tự bằng cách sử dụng plugin Lwgeom, nhưng nó luôn gặp sự cố trong quá trình thực thi và tôi cần khởi động lại QGis một lần nữa. Có cách nào tôi có thể khắc phục điều này? Cảm ơn.
Alex Fernández Poulussen

1
khó có thể nói mà không có nhiều bối cảnh chạy. Btw kể từ năm 2014 có nhiều dụng cụ hình học sửa chữa có sẵn trong qgis. Thông thường một sự cố trong lwgeom là một vấn đề sai lệch (cài đặt bẩn) trong đối tượng được tải hoặc chia sẻ. bạn đã thử nghiệm các công cụ khác?
Luigi Pirelli

1
Đây có phải là làm việc với QGIS 2.18? Dường như không hoạt động trong phiên bản QGIS của tôi, github.com/faunalia/
Processinglwgeomprovider

1
Chỉ là một bản cập nhật ... kể từ thời điểm QGIS3.x có một thuật toán cố định gốc xử lý, đó là một trình bao bọc cho các thuật toán MakeValid của GEOS lwgeom. Không có db là cần thiết.
Luigi Pirelli


2

Tôi chỉ gặp phải một vấn đề tương tự trong qgis. Tôi đã có một poly bắt đầu chiếu không chính xác. Tôi đã sử dụng công cụ đấu giá Grass v.clean trong hộp công cụ Xử lý như Bernd đề xuất. Mặc dù bpol không hoạt động, nó dường như được sửa với chức năng ngắt.

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.