Memperbaiki kesalahan validitas geometri di QGIS?

31

Saya sedang mengerjakan data kepemilikan di tingkat county AS. Saya memiliki satu shapefile per county yang berisi ribuan paket pajak. Saya perlu membubarkan poligon yang mewakili paket yang dimiliki oleh orang yang sama Ketika shapefile tidak bersih, alat "Dissolve" di QGIS tampaknya tidak berfungsi, itu membeku. Saya harus memperbaiki masalah validitas geometri terlebih dahulu menggunakan alat "Periksa Geometri Validitas". Namun, terkadang saya memiliki ratusan kesalahan. Butuh banyak waktu untuk memperbaikinya secara manual. Apakah ada strategi lain yang bisa menghemat waktu saya?

Saya menggunakan QGIS 2.4.0.

Bap
sumber
2
Apakah Anda mencoba mengimpor file di rumput dan menggunakan v.clean? mungkin akan memperbaiki banyak kesalahan Anda.
Sergio

Jawaban:

20

Coba jalankan penyangga halus pada poligon. Pengaturan -0,001 jika CRS Anda adalah UTM tampaknya patut dicoba. VECTOR | BUFFER

BillW
sumber
4
Saya mencoba solusi "Buffer" yang pertama kali disarankan oleh BillW. Ini memecahkan 97% masalah saya, yang sudah cukup bagi saya sekarang. Saya bisa menyelesaikan pekerjaan secara manual. Menjalankan buffer kecil pada poligon tidak akan membuat masalah bagi saya di jalan saya percaya. Tapi saya bisa melihat beberapa kasus di mana menggunakan ST_MakeValid atau mencoba v.clean bisa lebih baik dan lebih akurat.
Bap
18

Ketika saya memiliki lapisan dengan kesalahan, saya biasanya menjalankannya melalui fungsi GRASS v.clean di Toolbox Pemrosesan . Meskipun saya tidak pernah benar-benar menemukan alat mana yang terbaik dalam hal ini, saya biasanya memilih fungsi bpol di sana.

Mungkin yang lebih penting adalah mengatur parameter lanjutan untuk toleransi snap dan area min . Tergantung pada layer, saya biasanya memilih 0,1 hingga 2 meter untuk gertakan dan misalnya 10 meter persegi untuk area minimum.

Misalnya gertakan menyelaraskan batas yang dimaksudkan untuk berbagi perbatasan tetapi memiliki offset kecil, area minimum menghilangkan irisan kecil dari persimpangan dll.

Bersama dengan bpol, ini biasanya menyelesaikan semua kesalahan tanpa terlalu banyak mengubah topologi.

Bernd V.
sumber
11

Anda dapat menggunakan ST_MakeValid langsung di QGIS menambahkan plugin lwgeom yang menambahkan penyedia lwgeom ke pemrosesan toolbox => Anda dapat menerapkan MakeValid secara langsung pada layer yang dimuat tanpa mengkonversi di postigs / spatialite. Postgis / spatialite menggunakan liblwgeom yang sama untuk melakukan ST_MakeValid

Anda harus menginstal liblwgeom dan mengkonfigurasi penyedia pemrosesan untuk mengarahkannya

Penyedia lwgeom dapat ditemukan sebagai percobaan: https://plugins.qgis.org/plugins/processinglwgeomprovider/

Luigi Pirelli
sumber
3
Saya baru saja merilis versi baru dari penyedia pemrosesanlwgeom agar dapat digunakan dengan versi master pemrosesan qgis saat ini. (pemrosesan sedang dalam refactoring)
Luigi Pirelli
2
Hai @LuigiPirelli Saya sudah mencoba memecahkan masalah yang sama menggunakan plugin Lwgeom, tetapi selalu macet selama eksekusi dan saya harus memulai kembali QGis lagi. Apakah ada cara saya bisa memperbaikinya? Terima kasih.
Alex Fernández Poulussen
1
sulit dikatakan tanpa lebih banyak konteks berjalan. Btw sejak 2014 ada lebih banyak instrumen geometri perbaikan tersedia di qgis. Biasanya crash pada lwgeom adalah masalah misalignment (instalasi kotor) pada objek yang dimuat atau dibagikan. Apakah Anda menguji alat lain?
Luigi Pirelli
1
Apakah ini berfungsi dengan QGIS 2.18? Tampaknya tidak berfungsi di versi QGIS saya, github.com/faunalia/processinglwgeomprovider
RutgerH
1
Hanya pembaruan ... sejak saat QGIS3.x memiliki algoritma pemrosesan fixgeometry asli yang merupakan pembungkus algoritma GEOS lwgeom MakeValid. Tidak perlu db.
Luigi Pirelli
2

Saya hanya berlari ke masalah serupa di qgis. Saya memiliki poli yang mulai memproyeksikan secara tidak benar. Saya menggunakan v.clean fuction rumput di kotak alat pengolahan seperti Bernd menyarankan. Meskipun bpol tidak berfungsi, sepertinya diperbaiki dengan fungsi break.

pengguna44727
sumber