Saya memiliki bentuk poligon, yang secara efektif berbatasan dengan unit geografis (pertimbangkan sebagai contoh 50 negara bagian, setiap negara bagian memiliki beberapa poin.).
Saya ingin membuat poligon Voronoi dari titik-titik , dengan peringatan bahwa batas negara secara efektif membatasi poligon Voronoi yang dibuat dari titik-titik dalam negara itu.
Cara padat karya untuk melakukan ini adalah dengan membuat 50 shapefile individu untuk masing-masing negara bagian, membuat poligon Voronoi di masing-masing negara, kemudian menggabungkannya kembali secara manual.
Apakah ada cara yang lebih mudah untuk melakukan ini, idealnya di QGIS (saya menggunakan 2,18 di Mac) ?
qgis
polygon
voronoi-thiessen
Steven
sumber
sumber
Jawaban:
Ini adalah proses multi-langkah, jadi Anda harus membuat model atau skrip khusus. Untuk menghindari irisan poligon yang berasal dari titik poligon yang bertetangga, Anda harus beralih melalui lapisan status Anda. Bekerja dengan poligon keadaan dan satu set poin acak, saya akan melalui proses sehingga Anda dapat memahami apa yang terjadi di dalam model kami.
Di dalam Model
points_layer
intersect
polygons_layer
'Extracted (location)' from algorithm 'Extract by location'
500
(Kelihatannya berlebihan, tetapi kami ingin memastikan bahwa poligon Voronoi Anda benar-benar menutupi keadaan mereka. Karena kami akan memotong lapisan ini pada langkah berikutnya, tidak relevan seberapa besar kami membuat ini.)Extract by location
'Voronoi polygons' from algorithm 'Voronoi polygons'
polygons_layer
output
Extract by location
danVoronoi polygons
Seperti yang dapat Anda lihat, kami memiliki poligon Voronoi yang dibatasi oleh negara tempat poin dari negara tetangga tidak memengaruhi pengaturannya.
Berikut gambar model:
Gambar tidak menyampaikan ini, tetapi perhatikan bahwa input lapisan poligon dari model adalah
Vector Features
objek, bukan aVector Layer
.Menjalankan Model
Ketika Anda menjalankan model Anda, sangat penting bahwa Anda mengklik ikon untuk beralih melalui fitur lapisan Serikat Anda.
Setelah Anda menjalankan model, Anda bisa menjalankan Gabung layer vektor pada output untuk mendapatkan output single-layer, jika itu penting bagi Anda. Sayangnya, saya tidak mengetahui cara mudah untuk menggabungkan beberapa keluaran model dalam model itu sendiri (tolong, seseorang perbaiki saya jika ada sesuatu).
Jika Anda merasa nyaman dengan Python, Anda dapat dengan mudah memodifikasi skrip yang diekspor dari model ini untuk menangani langkah tambahan itu. Namun, karena Anda tidak menyebutkan solusi berbasis kode dalam pertanyaan Anda, saya akan mengabaikannya.
sumber
Demikian pula dengan jawaban yang diberikan @csk kepada Anda, Anda dapat mencoba dua alternatif ini:
1- Sertakan Node poligon negara ke alat Voronoi.
- Alat Voronoi dengan Poin dan Node.
Langkah terakhir adalah memotong pol Voronoi Anda dengan layer States (jika Anda membutuhkannya).
2- Gunakan Voronoi langsung di atas layer Point menggunakan buffer untuk "memperluas" ini ke ekstensi penuh Negara.
Seperti yang Anda lihat, Anda akan mendapatkan hasil yang berbeda. Itu tergantung apa yang Anda cari.
sumber