Melakukan heatmap dari data baris di QGIS?

12

Saya ingin melakukan analisis kerapatan garis untuk data garis saya, berdasarkan pada atribut.

Opsi peta panas (analisis kepadatan kernel) tampaknya hanya mungkin untuk data titik.

Saya telah mencoba mengubah data baris saya menjadi poin, dan membuat peta panas, tetapi atribut untuk bobotnya hilang pada konversi.

Ini adalah analisis kepadatan garis yang dilakukan dengan ArcGIS. Saya ingin melakukan hal yang sama dengan QGIS.

masukkan deskripsi gambar di sini

Apakah mungkin untuk melakukan analisis kerapatan garis yang serupa di QGIS? dan ini adalah data tentang QGIS

pengguna110637
sumber

Jawaban:

4

Saya tidak dapat menemukan cara untuk melakukan ini di QGIS melalui fungsi DB Manager / SQLite, tetapi di PostGIS, kami melakukan hal berikut:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

Ini, yang diekspor ke tabel baru, memungkinkan titik-titik garis (untuk kasus kami dari PGRouting siswa ke sekolah mereka) sehingga kami dapat memvisualisasikan hotspot rute yang bisa diambil siswa:

masukkan deskripsi gambar di sini

DPSSpatial
sumber
4

Bahkan, dimungkinkan untuk melakukan kerapatan garis di QGIS menggunakan menu standar yang mengirim parameter ke executable GDAL.

Menggunakan gdal_rasterize menggunakan -burn -add switch akan membuat raster kepadatan garis atau titik, tanpa jari-jari pencarian seperti kepadatan kernel dan sejenisnya. Berapa banyak poin atau berapa banyak garis dalam sel raster.

gdal_rasterize ditemukan di menu Raster -> Conversion -> Rasterize. Di bidang teks terakhir, Anda menekan tombol pensil dan mengubah teks untuk memasukkan "-burn 1 -add" mirip dengan di bawah ini. Secara alami, Anda mengubah -tr (resolusi) parameter dan nama input dan output sesuai dengan situasi Anda.

gdal_rasterize -burn 1 -add -tr 200.0 200.0 -l baris C: /lines.shp C: /out_lines.tif

Jukka Rahkonen memberi saya petunjuk di milis gdal_dev. Saya sudah mencari ini selama bertahun-tahun.

Mengenai nilai sel raster untuk garis raster, saya tidak yakin tentang apa nilai-nilai yang diwakili. Rupanya itu bukan jumlah garis atau panjang garis.

Kepadatan garis dengan gdal_rasterize

Karl Zinglersen
sumber
3

Menggunakan pendekatan yang mirip dengan jawaban dari @DPSSpatial, saya akan menggunakan plugin QChainage untuk membuat titik-titik yang berjarak secara merata di sepanjang setiap baris.

Plugin ini menghasilkan poin di sepanjang baris, tetapi tidak menyalin seluruh atribut dari baris tersebut.

Di sini saya mengasumsikan WGS84 (4326, Derajat Lat / Lon). Anda mungkin ingin melakukan ini menggunakan proyeksi yang sesuai dalam meter.

  • gunakan QChainage untuk menghasilkan poin di sepanjang garis, misalnya setiap 0,05 derajat
  • Buffer layer ini misalnya dengan 0,001 derajat.
  • Lakukan Penggabungan Spasial ( Vektor> Alat Manajemen Data> Gabung Atribut berdasarkan Lokasi ) (menggunakan "Persimpangan"), dari titik-titik yang disangga ke lapisan garis asli Anda. Ini akan membiarkan poin mengambil nilai pengaruh dari garis di bawahnya.
  • Konversi lapisan ini kembali ke titik menggunakan Vector> Geometry Tools> Polygon Centroids

Akhirnya, saya akan menggunakan renderer peta panas standar. Pastikan Anda menggunakan titik berat dengan menetapkan dan menggunakan bidang pengaruh.

Anda sekarang harus memiliki sesuatu seperti ini. Angka-angka di sepanjang setiap baris menunjukkan nilai "pengaruh".

masukkan deskripsi gambar di sini

Steven Kay
sumber