Konversi titik ditetapkan ke batas poligon?

27

Saya mencoba mengonversi kumpulan titik ke batas poligon masing-masing. Saya pikir ini adalah sesuatu seperti diagram Voronoi atau Convex Hull, tetapi tidak cukup. Saya yakin ada istilah teknis untuk itu, tapi saya pemula untuk GIS.

Mungkin paling baik digambarkan dengan gambar berikut:

masukkan deskripsi gambar di sini

Jadi, mengingat 4 set titik (masing-masing set dalam warna sendiri), apa empat poligon yang mengelilingi masing-masing set poin sehingga jarak antara poligon memaksimalkan margin dan semua poligon bertemu bersama?

Berikut ini contoh sederhana dengan 3 poin:

  • A, 43.656943, -79.393928, biru
  • B, 43.66663, -79.402682, hijau
  • C, 43.656447, -79.408004, hijau

Anda harus melihat grafik berikut agar dapat masuk akal: masukkan deskripsi gambar di sini

Pada dasarnya, setiap titik memiliki warna dan Anda memperluas buffer dari jarak tertentu untuk memulai.

Bagian yang sulit adalah ketika ada tabrakan dengan titik lain (batas mereka) dan di mana menghitung batas itu. Hasilnya adalah satu set poligon (satu untuk setiap warna / set).

DFx
sumber
1
Bisakah Anda memposting beberapa data sampel? Dengan begitu kita bisa menguji solusi :)
RK
Saya menambahkan contoh di atas. Saya harap itu membantu.
DFx
kemungkinan duplikat poligon Thiessen di QGIS
blah238
1
Oke saya pikir apa yang harus saya lakukan, adalah mengambil semua poin dari semua warna dan melakukan Voronoi pada mereka. Setelah itu, gabungkan poligon yang dihasilkan bersama-sama yang memiliki warna yang sama. Pada akhirnya saya harus memiliki set poligon (satu untuk setiap warna). Saya tidak yakin bagaimana melakukannya di QGIS ...
DFx
2
Apa tepatnya yang Anda maksudkan dengan "jarak memaksimalkan margin"? Jawabannya menentukan solusi.
whuber

Jawaban:

24

Dari lapisan titik Anda

masukkan deskripsi gambar di sini

Anda dapat membuat plogyons Voronoi

masukkan deskripsi gambar di sini

Yang akan menghasilkan ini

masukkan deskripsi gambar di sini

Kemudian buat topeng dari proses triangulasi Delauney

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Dan kemudian klip lapisan poligon Voronoi dengannya.

masukkan deskripsi gambar di sini

Apakah itu cukup baik?

Anda juga dapat mencoba menggabungkan topeng triangulasi Delauney Anda dengan penyangga lapisan titik Anda

masukkan deskripsi gambar di sini

dan gunakan itu untuk memotong poligon Voronoi Anda sebagai gantinya

masukkan deskripsi gambar di sini

RK
sumber
5
Anda juga bisa menjalankan DISSOLVE (dari menu Vector-> Geoprocessing) pada poligon Delauney atau Voronoi Anda untuk memberi Anda poligon gabungan yang coba Anda wakili.
RyanDalton
+1 - mengalahkan saya untuk itu ... pemikiran bagus pada buffer yang digabung, dan dengan saran @ RyanDalton yang dibubarkan ini harus menjawab pertanyaan awal!
Simbamangu
21

Poligon Voronoi dengan larut akan memberi Anda bagian pertama. Dimulai dengan poin Anda, setiap set harus memiliki pengenal uniknya sendiri ('col' dalam contoh ini). Tiga nilai col dengan satu set poin: masukkan deskripsi gambar di sini

Vektor | Alat geometri | Voronoi Poligon dengan penyangga 20% memberi Anda 'batas antar titik': masukkan deskripsi gambar di sini

Menggunakan 'col' sebagai variabel terlarut dengan Vector | Geoprocessing tools | Dissolve memberi Anda poligon digabung di sekitar setiap set poin: masukkan deskripsi gambar di sini

Vector | Geoprocessing tools | Convex hulls dapat memberi Anda batas cembung di sekitar titik Anda, yang dapat Anda gunakan untuk memotong batas terlarut: masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Namun, dari contoh pertama Anda, Anda tampaknya perlu klip dengan lambung cekung (ditambah beberapa jarak buffer?); cekung lambung adalah fungsi yang belum bisa saya temukan; PostGIS memang memiliki fungsi .

Simbamangu
sumber
Luar biasa - terima kasih ini adalah jawaban yang bagus. Saya hanya memberikannya kepada RK karena instruksi yang lebih mendalam, tetapi saya sangat menghargainya!
DFx
@DFx - jangan khawatir, akan penasaran untuk melihat metode apa yang Anda akhirnya akhirnya (mungkin mengedit pertanyaan asli Anda dengan solusi lengkap kapan-kapan).
Simbamangu
@Simbamangu saya dapat memahami jawaban Anda tetapi saya memiliki sedikit keraguan dalam hal ini. Ketika saya mencoba untuk mengubah poligon berdasarkan warna yang dikonversi tetapi hanya sebagai poligon warna tunggal. Apa kesalahan dengan ini?
Arun
Arun - Anda mungkin memilih untuk larut hanya pada geometri, bukan pada bidang tertentu. Atau Anda tidak membuat style pada layer yang dihasilkan. (Saya tahu pertanyaannya adalah 2+ tahun, tetapi mungkin orang lain juga memilikinya)
til_b