Bagaimana cara menghitung area pengaruh di QGIS?

10

Saya mencoba membuat lapisan poligon yang menunjukkan poligon yang sesuai dengan toko terdekat.

Untuk satu set 30 lokasi toko, hasilnya harus berupa lapisan poligon dengan 30 fitur, satu untuk setiap toko. Setiap fitur akan mewakili area di mana toko terkait adalah yang terdekat. Misalnya, alamat dalam poligon 12 berarti bahwa toko 12 adalah yang terdekat.

Saya memiliki lapisan lokasi toko dan lapisan jalanan OSM dengan kolom kecepatan maks. Lapisan poligon yang dihasilkan harus didasarkan pada lapisan jalan OSM dan bukan hanya area linier.

Idenya adalah bahwa dengan serangkaian toko dan jalan, toko terdekat harus tetap konstan pada titik tertentu pada peta. Jadi, saya berharap lapisan poligon yang dihasilkan akan menjadi tidak ada celah.

Ini video software Maptitude memberikan contoh sempurna dari apa yang saya capai (fast forward ke 1:55 video). Atau, lihat gambar di bawah untuk contoh:

Area Maptitude Terdekat dengan Rumah Sakit

Untuk setiap rumah sakit, ada area yang sesuai di mana segala sesuatu dalam area itu paling dekat dengan rumah sakit yang terletak di dalam area itu.

Bagaimana saya bisa meniru ini menggunakan QGIS?

coba03
sumber

Jawaban:

8

algoritma rumput v.net.alloc dapat menghasilkan subnet - Anda dapat menyebutnya dari kotak alat Pemrosesan (diuji dalam QGIS 2.16)

Anda akan memerlukan layer titik (untuk fasilitas) dan layer garis dengan biaya (baik waktu / panjang). Ini akan membuat layer baris baru dengan bidang yang disebut cattambah, yang akan menjadi id dari fasilitas terdekat.

Berikut ini contoh berdasarkan jarak berjalan kaki ke pub terdekat. Setiap segmen garis diwarnai dengan catmenggunakan warna acak: -

contoh v.net.alloc

Perhatikan bahwa terkadang jaringan jalan dua pub yang berdekatan diberi warna yang sangat mirip; jika Anda melabeli mereka, Anda akan melihat itu benar-benar berfungsi

Untuk mendapatkan poligon tanpa celah seperti yang Anda tunjukkan di atas, saya bingung. Jika Anda 'mengekstrak node' pada hasil dan menerapkan 'Convex Hull' (pengelompokan berdasarkan kucing), akan ada kesenjangan dan tumpang tindih.

EDIT

Anda memang bisa mendapatkan hasil yang diinginkan. Seperti yang Anda sarankan dalam komentar Anda, Anda dapat melakukan hal berikut ..

  • jalankan Extract nodes pada output v.net.alloc
  • jalankan poligon Voronoi pada layer ekstrak node
  • Jalankan buffer jarak tetap untuk memastikan poligon tumpang tindih (mis. buffer 1 meter)
  • jalankan Larutkan pada lapisan buffer, menggunakan bidang 'kucing'

Inilah hasilnya ... itu tidak sempurna, kadang-kadang Anda akan melihat bagian dari jaringan jalan menyimpang ke poligon tetangga.

masukkan deskripsi gambar di sini

Ada 'jebakan' di GUI 2,16 baru untuk dibubarkan. Saya mengatur lapangan, tetapi sepertinya membubarkan segalanya. Anda harus ingat untuk menghapus centang pada kotak centang 'larutkan semua', atau pengaturan bidang diabaikan.

Steven Kay
sumber
Ini sangat membantu dan saya pasti bisa menggunakan hasilnya di aplikasi saya. Saya akan membiarkan ini terbuka sementara untuk melihat apakah ada cara untuk mengakhiri dengan poligon. Apakah mungkin menggunakan alat Voroni Polygons entah bagaimana akan membantu?
ge0m3try
a Voronoi pada fasilitas Anda hanya akan memberikan perkiraan, berdasarkan jarak Euclidian "saat burung gagak terbang" , sehingga secara efektif mengabaikan jaringan jalan Anda.
Steven Kay
Saya ingin tahu apakah saya mengekstrak node pada hasil v.net.alloc, voroni itu, dan kemudian membubarkan poligon pemungutan suara berdasarkan pengidentifikasi fasilitas unik. Ukuran dataset jalan sangat besar sehingga saya tidak akan dapat menguji ini dengan cepat, tetapi mungkin sementara itu akan ada beberapa pemikiran mengapa ini mungkin tidak berhasil.
ge0m3try
sebenarnya, firasat Anda benar - coba saja.
Steven Kay
2
CATATAN PENTING: Ada beberapa gangguan dengan alur kerja ini yang saya temukan cara mengatasinya. Alat penyangga jarak tetap tidak perlu. Alat SAGA Dissolvetampaknya jauh lebih cepat daripada yang setara dengan QGIS. Dan, sepertinya juga lebih cepat untuk membagi Voronoilayer dengan catbidang, dan kemudian dissolvesetiap area secara terpisah. Mergemereka kembali bersama. Kemudian, jalankan GRASS v.cleandan pilih alat rmdupluntuk menghapus duplikat node. Ini penting jika tidak, proses lain seperti kliping, penyatuan spasial, semua tidak akan bekerja dengan baik pada voronoi lauyer yang dilebur.
ge0m3try