Menghitung jarak terdekat dari titik ke garis menggunakan QGIS?

12

Apa metode terbaik untuk menghitung jarak dari jalan terdekat untuk serangkaian titik alamat di QGIS, yang memiliki dataset sangat besar? (QGIS 2.0.1, Win XP)

Saya membaca jawaban untuk pertanyaan serupa sebelumnya:

Mengukur jarak antara garis dan titik di QGIS

Menggambar garis tegak lurus di PyQGIS?

Menghitung jarak minimum antara titik dan poligon di QGIS?

/programming/16448402/distance-of-point-feature-to-nearest-polygon-in-r

Namun:

  1. Plugin MMQGIS menemukan jarak ke simpul terdekat dari jaringan saluran, bukan jarak terpendek (tegak lurus) ke saluran.

  2. Skrip yang diajukan R dan Python berfungsi dengan benar untuk kumpulan data kecil dan dapat diimplementasikan dalam pemodel, namun untuk pekerjaan saya, saya memiliki 530 poin dan lapisan jalan regional dengan sekitar 135'000 fitur, dan bersepeda melalui semua fitur kemudian mengambil jarak terdekat untuk semua poin akan membutuhkan banyak waktu

  3. Saya memiliki masalah dalam membuat kerja GRASS di QGIS 2.0.1 ( GRASS di QGIS tidak berfungsi (windows XP) ).

mic_cord
sumber
1
Saya berhasil menghitung jarak minimum di QGIS 1.8.0 melalui plugin GRASS dan alat v.distance . Diperlukan sekitar 15 menit untuk mengeksekusi (ditambah waktu yang dihabiskan untuk mengatur GRASS dan mengimpor layer dengan benar ...). Mengapa ArcGIS (es, bergabung dengan lokasi spasial) masih sangat cepat dibandingkan?
mic_cord
1
Ini adalah masalah memiliki indeks spasial dan kode yang dioptimalkan untuk tugas tersebut. Saya baru saja memeriksa dengan perpustakaan perutean kami (RW Net 4) dan dapat melakukan 2000 perhitungan seperti itu per detik untuk jaringan jalan aplikasi. ukuran yang sama seperti milik Anda. Membuatnya sekitar 4000 kali lebih cepat daripada plugin GRASS Anda.
Uffe Kousgaard
3
Postgis harus melakukannya dengan cepat
Nicklas Avén
1
@mic_cord Bisakah Anda memberikan penjelasan rinci tentang metode v.distance plugin GRASS Anda? Saya telah berhasil mendapatkan v.distance untuk bekerja menggunakan GRASS di luar QGIS, tetapi saya tidak dapat membuatnya bekerja di dalam toolbox Pemrosesan (QGIS 2.6).
user25976

Jawaban:

6

Kami sedang memecahkan masalah yang sama. Cara terbaik dan tercepat bagi kami adalah:

  1. Rasterize lapisan garis (Raster / Konversi / Rasterize ...)
  2. Konversi ke Kedekatan (Raster / Analisis / Kedekatan ...)
  3. Gunakan alat sampling Point plugin untuk mendapatkan nilai untuk semua poin Anda dari raster
Miro
sumber
5

Beberapa jawaban untuk Mengukur jarak antara garis dan titik di QGIS merekomendasikan plugin NNJoin QGIS ( http://arken.nmbu.no/~havatv/gis/qgisplugins/NNJoin/ ). Ini akan melakukan join spasial tetangga terdekat dan termasuk jarak dalam hasilnya. The NNJoin Plugin menggunakan indeks spasial, sehingga harus menangani dataset cukup besar.

Håvard Tveite
sumber
Tveite, saya mendukung saran Anda. Saya sangat terkejut bahwa plugin ini bekerja lebih cepat daripada paket yang direkomendasikan di R (yaitu geosphere :: dist2Line).
Johanness