Poligon Voronoi yang dibatasi QGIS


9

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) ?


1
Mengapa tidak membuat poligon Voronoi untuk seluruh lapisan titik, kemudian memotong hasilnya dengan lapisan batas geografis?
csk

Hanya untuk memperjelas bisakah satu negara memiliki banyak poin?
firefly-orange

Jawaban:


3

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.

poin negara

Di dalam Model

  1. Ekstrak berdasarkan lokasi
    • Ekstrak fitur dari: points_layer
    • Di mana fitur-fiturnya: intersect
    • Dengan membandingkan fitur-fitur dari: polygons_layer

nyatakan ekstrak poin

  1. Poligon Voronoi
    • Lapisan input: 'Extracted (location)' from algorithm 'Extract by location'
    • Wilayah penyangga: 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.)
    • Algoritma induk: Extract by location

voronoi oleh negara

  1. Klip
    • Lapisan input: 'Voronoi polygons' from algorithm 'Voronoi polygons'
    • Lapisan overlay: polygons_layer
    • Terpotong: output
    • Algoritma induk: Extract by locationdanVoronoi polygons

terpotong

Seperti yang dapat Anda lihat, kami memiliki poligon Voronoi yang dibatasi oleh negara tempat poin dari negara tetangga tidak memengaruhi pengaturannya.

Berikut gambar model:

model pengolahan

Gambar tidak menyampaikan ini, tetapi perhatikan bahwa input lapisan poligon dari model adalah Vector Featuresobjek, bukan a Vector Layer.

Menjalankan Model

Ketika Anda menjalankan model Anda, sangat penting bahwa Anda mengklik ikon untuk beralih melalui fitur lapisan Serikat Anda.

pilihan iterate

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.


1
Bekerja dengan sempurna! Saya kagum, saya membenturkan kepala saya beberapa jam tentang masalah yang sama dan saya baru saja meniru model Anda dan mendapatkan hasil dari pertama. Aku berhutang bir padamu.
sys49152

1

Demikian pula dengan jawaban yang diberikan @csk kepada Anda, Anda dapat mencoba dua alternatif ini:

1- Sertakan Node poligon negara ke alat Voronoi.

  • Nodes from States layer (Gunakan Ekstrak node).
  • Gabungkan poin dan Node.

masukkan deskripsi gambar di sini - Alat Voronoi dengan Poin dan Node.

masukkan deskripsi gambar di sini

  • 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.

masukkan deskripsi gambar di sini

  • Klip dengan lapisan Status.

Seperti yang Anda lihat, Anda akan mendapatkan hasil yang berbeda. Itu tergantung apa yang Anda cari.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.