Menghitung jarak minimum antara titik dan poligon di QGIS?
9
Saya memiliki dua lapisan vektor: satu titik dan satu poligon dan saya ingin menghitung jarak minimum setiap titik dari poligon (yaitu jarak dari titik terdekat dari poligon terdekat).
Apakah ada plugin yang tersedia di QGIS untuk melakukan ini?
maksud Anda simpul poligon, centroid atau sesuatu yang lain?
lynxlynxlynx
Tugas ini akan lebih baik ditangani oleh postgis.
Pablo
Maksud saya jarak dari batas poligon (sebenarnya jarak burung laut yang diamati di laut dari garis pantai yang ingin saya hitung)
Sylvia
Pablo, sayangnya saya tidak tahu cara menggunakan PostGIS dan saya tidak bisa menulis kode ...
Sylvia
Jawaban:
9
Mengubah poligon Anda menjadi poin adalah ide yang buruk. Anda tidak akan menghitung jarak ke poligon Anda, Anda akan menghitung jarak ke simpul terdekat dari poligon Anda (bukan tepi yang mungkin lebih dekat). Anda dapat menggunakan Plugin NNJoin untuk mendapatkan pengukuran yang akurat untuk poligon Anda. Pastikan layer Anda berada dalam proyeksi yang sama sebelum melakukan analisis.
Plugin QGIS NNJoin akan menangani transformasi sistem koordinat. Tetapi Anda harus memastikan bahwa Anda menggunakan sistem koordinat yang diproyeksikan untuk dataset gabungan (dataset input akan ditransformasikan ke sistem koordinat dataset gabungan jika sistem koordinatnya berbeda).
Håvard Tveite
6
Jika Anda ingin menggunakan QGIS, fungsi GRASS v.distance di plugin GRASS harus melakukan pekerjaan itu. The NNJoin Plugin harus bekerja untuk dataset kecil, dan kurang praktis untuk digunakan.
The NNJoin Plugin menggunakan QgsGeometry.distance () fungsi (yang menggunakan GEOSdistance) untuk menghitung jarak.
Ini adalah jawaban yang bagus untuk pertanyaan awal, tetapi sejak itu pertanyaan tersebut telah dimodifikasi dalam komentar. Ekstrak node dan Distance Matrix mungkin tidak menemukan tempat terdekat pada batas (tempat terdekat mungkin antara titik-titik polyline batas). GRASS v.distance atau plugin NNJoin akan melakukannya.
Jarak hub berhasil, tetapi sebagai catatan, saya pertama-tama mengubah poligon menjadi lapisan titik dan menghitung jarak titik-ke-titik minimum. Dengan poligon itu menghitung jarak minimum dari centroid atau tengah batas pantai
Jawaban:
Mengubah poligon Anda menjadi poin adalah ide yang buruk. Anda tidak akan menghitung jarak ke poligon Anda, Anda akan menghitung jarak ke simpul terdekat dari poligon Anda (bukan tepi yang mungkin lebih dekat). Anda dapat menggunakan Plugin NNJoin untuk mendapatkan pengukuran yang akurat untuk poligon Anda. Pastikan layer Anda berada dalam proyeksi yang sama sebelum melakukan analisis.
sumber
Jika Anda ingin menggunakan QGIS, fungsi GRASS v.distance di plugin GRASS harus melakukan pekerjaan itu. The NNJoin Plugin harus bekerja untuk dataset kecil, dan kurang praktis untuk digunakan.
The NNJoin Plugin menggunakan QgsGeometry.distance () fungsi (yang menggunakan GEOSdistance) untuk menghitung jarak.
sumber
Konversikan poligon menjadi poin:
Vektor -> Alat Geometri -> Ekstrak Node
Tambahkan layer baru ini, lalu hitung matriks jarak antara layer titik Anda dan layer poin poligon baru yang baru saja Anda buat
Vektor -> Alat Analisis -> Distance Matrix
Pastikan untuk memilih "Gunakan hanya titik target terdekat (k)" sebagai 1
sumber
Coba Jarak Hub di plugin MMQGIS.
http://michaelminn.com/linux/mmqgis/
Referensi:
sumber