Membuat "peta panas" berbasis polyline dari trek GPS?

30

Musim dingin ini saya berencana untuk melacak ski / snowboarding menurun menggunakan GPS. Sebagian besar perjalanan saya akan terjadi di resor yang sama. Saya ingin dapat membuat semacam "peta panas" yang menunjukkan jumlah lintasan yang telah saya buat di area tertentu. Ketika saya menambahkan semakin banyak jejak GPS ke basis data saya, tujuan saya adalah melihat semacam peta panas linear dari wilayah yang paling sering dilalui. Mengingat sifat ski menuruni bukit, Anda akan mengharapkan garis kursi gantung menanjak akan menjadi "terpanas" karena itu akan menjadi satu-satunya tempat yang dikunjungi berulang kali.

Mengingat bahwa 1) jalur saya tidak akan sama setiap waktu dan 2) area yang dicakup dengan mengikuti satu "run" mungkin beberapa ratus kaki lebar, apa yang mungkin cara terbaik untuk menganalisis data "linear" ini untuk membuat semacam peta panas? Pikiranku adalah untuk menyangga garis, lalu memotong kutub untuk mendapatkan semacam Venn Diagram. Preferensi saya adalah menggunakan teknologi open-source. Saya mendapatkan QGIS dan PostGIS dimuat dan tersedia.

UPDATE : Mengenai tanggapan @ blah238, saya memikirkan sesuatu yang mungkin bisa "mengumpulkan" jumlah pass ("run") melalui area, dan kemudian dilambangkan dengan hitungan. Secara konseptual, ini akan mirip dengan ArcGIS " Kumpulkan Acara " (tetapi untuk garis, bukan poin) atau Perkecil Garis Ganda Ke Garis Tengah (tetapi untuk beberapa garis di area yang kira-kira sama).

Contoh yang lebih visual dari konsep serupa mungkin adalah peta arus lalu lintas, di mana daerah yang sangat padat akan menyamakan dengan lintasan ski "sangat sering bepergian":

Google Traffic Map

Saya telah membaca pertanyaan-pertanyaan berikut yang mungkin memberikan beberapa ide, tetapi mereka tidak benar-benar membahas apa yang ingin saya capai:

Clustering Trajectories (Data GPS dari (x, y) poin) dan Mining data

Mengelola kesalahan dengan rute GPS (kerangka teori?)

Ryan Dalton
sumber
Dengan asumsi bahwa Anda akan menggunakan data GPX, seharusnya hanya membutuhkan pembacaan lat / lama pada interval, sehingga harus sudah dalam fitur titik. Apakah Anda tidak dapat menggunakan peta panas itu? Atau apakah Anda tidak menggunakan perangkat yang kompatibel GPX ??
RomaH
Ah, er. Saya salah membaca apa yang Anda inginkan .. Nevermind.
RomaH
@RomaH, sebenarnya, Anda mungkin sangat menyukai sesuatu dengan ide Anda menggunakan poin untuk menghasilkan peta panas alih-alih menggunakan garis. Saya belum pernah mempertimbangkan untuk menggunakan poin sumber sebelumnya, jadi ini adalah sesuatu yang saya akan selidiki.
RyanDalton
Anda berhadapan dengan bidang, di mana jalan memiliki tepian yang jelas. Jika Anda ingin melakukan model garis, Anda bisa melakukan beberapa overlay poli, bergabung, dan menggunakan plugin point2one untuk membuat peta garis dengan nilai yang diwarisi. Tapi kemudian Anda perlu memutuskan seberapa jauh seseorang perlu bermain ski untuk membenarkan fitur baris baru. Secara pribadi untuk saya, saya akan senang dengan solusi peta panas, tetapi sekali lagi, saya tidak mengetahui kebutuhan Anda.
RomaH
Saya menemukan pertanyaan ini yang merupakan cara yang sangat keren untuk mencapai hal yang pada dasarnya sama, tetapi menggunakan GPS Track Points untuk membuat peta panas.
RyanDalton

Jawaban:

17

Saya telah melakukan sedikit pekerjaan dalam hal ini di GeoTools / GeoServer dengan memperluas Heatmap Rendering Transformation untuk mendukung geometri selain poin.

Pizza mengirimkan peta panas

Ini belum selesai, tetapi Anda bisa mendapatkan cabang fitur dari repositori saya di GitHub .

Tangkapan layar adalah trek GPS dari ketika saya bekerja sebagai sopir pengiriman pizza.

smithkm
sumber
Ini masih tidak menghasilkan geometri vektor, tetapi mengumpulkan tumpang tindih untuk memberikan nilai yang lebih tinggi.
smithkm
ada ide bagaimana mendapatkan efek ini hanya dengan postgis? atau qgis?
chrismarx
15

Berikut ini adalah tutorial yang bagus untuk melakukan hal itu menggunakan MapBox dan TileMill :

Tangkapan layar

blah238
sumber
1
Setuju, konsep ini hampir identik, dan dapat dengan mudah dilakukan dalam GIS apa pun. Tapi ini pada dasarnya menyarankan "hanya membuat semua trek Anda merah dengan penyangga hijau muda" dan mereka akan menonjol di peta? Untuk efek visual, saya pasti akan bekerja. Saya kira saya awalnya berpikir untuk mencoba sesuatu yang lebih "analitis" yang dapat menunjukkan "jumlah" dari "berjalan" dalam contoh ini. Saya akan terus merenungkannya.
RyanDalton
@ blah238 Saya mencari contoh serupa ... terima kasih banyak !!
Sunil
1
@ blah238, Setelah memikirkannya sedikit lebih lama, Anda memberikan jawaban yang sangat valid untuk pertanyaan awal saya. Seharusnya saya lebih jernih dalam pikiran saya. Terima kasih atas jawaban Anda, dan saya telah memperbarui pertanyaan saya untuk lebih akurat mencerminkan apa yang saya coba capai. Saya menghargai bantuannya.
RyanDalton
5

inilah pendekatan sederhana saya:

  1. buat peta baru di umap: http://umap.openstreetmap.fr/en
  2. klik Impor Data, pilih semua file gpx yang Anda miliki dan unggah ke dalam peta (Anda dapat mengimpor semuanya sekaligus)
  3. masukkan Edit pengaturan peta> Properti default, pilih opacity 0,25, berat 10.

Tiga langkah di atas akan memakan waktu 5 menit dan inilah hasilnya: masukkan deskripsi gambar di sini

matell
sumber
3

Inilah pendekatan saya pada QGIS. Ini untuk satu set rute bus, dan saya ingin mengidentifikasi jalan mana yang paling padat dari rute bus yang lewat.

  • Menggunakan plugin Qchainage untuk mengubah baris saya menjadi poin. Menguji berbagai skenario hingga saya menghasilkan banyak poin per baris (1.500 per baris, dan garis sekitar 9kms).
  • Menerapkan simbologi peta panas yang dibuat Qgis di tab gaya. properti layer> style> heatmap
  • Mainkan dengan jari-jari dan nilai maksimum. Pastikan untuk memilih kualitas rendering terbaik.
  • Dibuat ramp warna baru (pilih kontinu) mulai dari hitam dan warna cerah lainnya di sisi lain.

Dan voila.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Diego canales
sumber
2

Saya menyadari ini adalah posting yang cukup lama, namun saya menemukan melakukan penelitian serupa. Saya mengembangkan model / alur kerja yang cukup sederhana yang dapat mencapai ini di ArcGIS (mungkin QGIS, tapi saya belum menerapkannya di sana).

Jika Anda memiliki file GPX atau TCX secara khusus (file point mana pun berfungsi), file tersebut dapat dibuka di Excel, kemudian dikonversi ke CSV dan dibawa ke ArcGIS. Dengan menggunakan Points to Linealat ini, Anda mengonversi titik GPS dari CSV, menjadi lintasan dengan menyortir titik berdasarkan waktu (Anda juga dapat mengelompokkannya menggunakan pengidentifikasi unik, yang dalam hal ini mungkin berdasarkan resor, rute, atau tanggal acara tertentu. - misal Day1, 2, dll). Ini akan membuat layer polyline tunggal (kecuali Anda mengelompokkannya berdasarkan ID unik). Anda kemudian menggunakan Split Line at Verticesalat yang membuat segmen garis antara setiap titik berurutan. Dari sana, Anda menggunakan Line Densityalat yang menghitung jumlah garis yang melewati sel yang diberikan ukuran sel tertentu dan radius pencarian, dan menghasilkan raster. Raster ini dapat dilambangkan sebagai peta panas.

Saya sudah, dan terus menerapkan ini sering, dan memasukkan hasil sampel di bawah ini:

masukkan deskripsi gambar di sini

andrew-ryan
sumber
Itu terlihat seperti teknik yang sangat menarik. Saya tidak pernah menyelesaikan ide ini, jadi saya akan menyelidiki ini lebih lanjut. Terima kasih telah menjawab pertanyaan lama!
RyanDalton
Tidak masalah! Ini adalah model yang cukup sederhana hanya menggunakan tiga alat dari Arc Toolbox. Bergantian, Anda dapat menyederhanakannya menjadi dua alat hanya dengan menggunakan Track Intervals to Linedan Line Densityalat
andrew-ryan
1

Penggunaan kami atas hal ini melibatkan mengarahkan siswa ke sekolah mereka menggunakan PGRouting.

Hasil dari rute individu pada intinya adalah serangkaian node (yang diubah menjadi garis-garis dengan secara opsional bergabung dengan tepi terkait).

Jika Anda merutekan beberapa siswa ke satu sekolah, koleksi output node kemudian dapat ditampilkan di QGIS menggunakan heatmap renderer, yang menunjukkan 'hotspot' dari rute yang dikumpulkan ke sekolah (lihat di bawah).

Peta-peta ini digunakan untuk menginformasikan area yang harus ditargetkan untuk infrastruktur keselamatan lebih lanjut seperti penyeberangan, sinyal, tanda, dll.

masukkan deskripsi gambar di sini

DPSSpatial
sumber
Terima kasih berbagi untuk gambarnya, saya menyukainya. Saya akan mencoba memproses vertex GPX alih-alih garis untuk melihat apakah hotspot bekerja dalam skala kecil
RyanDalton
0

Buat gridwork graticular, konversikan gpsdata menjadi shapefile, poligonkan garis, ekstrak x, data titik y dari tabel, buat kerapatan permukaan, atau panaskan peta menggunakan praktik standar pada titik ini. Anda kemudian dapat bergabung dengan data vektor linier untuk mendapatkan nilai piksel dalam tampilan raster atau untuk pemrosesan numerik lebih lanjut.

Lewis
sumber
0

Kebanyakan orang (termasuk saya) melihat file GPX dan menganggapnya sebagai urutan posisi (poin), sementara itu dapat dengan sempurna dilihat sebagai urutan segmen garis .

Perumusan masalah Anda melibatkan "peta panas" sehingga Anda dapat memeriksa lintasan secara visual, sehingga ada cara yang agak sederhana untuk melewati bagian pengolah angka kompleks dengan mendelegasikannya langsung ke mesin plot.

Ketika Anda mengatakan "buffer the lines", itu akan menjadi ketebalan garis. Ketika Anda mengatakan "kumpulkan pass" itu berarti merencanakan berulang-ulang dengan garis transparan , dengan demikian "membangun" semakin banyak warna.

Jadi, saya sarankan Anda untuk memplot setiap lintasan sebagai satu polyline dengan ketebalan yang cukup sehingga ada beberapa tumpang tindih (tergantung pada zoom, jadi Anda akan ingin mengatur ketebalan dalam jarak peta, bukan piksel), dan dengan opacity yang cukup rendah , katakanlah, 0,05, berwarna hitam.

Penting untuk tidak merencanakan setiap segmen, karena jika Anda melakukannya, ekstremitasnya akan tumpang tindih, menggandakan opacity mereka dan menciptakan "titik" warna yang lebih kuat.

Pada akhirnya, Anda akan mendapatkan gambar skala abu-abu di mana Anda dapat menerapkan colormap pilihan Anda.

Saya mungkin akan melakukannya menggunakan Python / Kairo, tetapi Python / Matplotlib akan melakukannya, dan Html / Canvas atau Html / SVG (atau SVG terprogram) pasti akan melakukannya.

Hasil akhirnya hanya akan bergantung pada resolusi media keluaran Anda.

heltonbiker
sumber
0

Saya sadar bahwa ini adalah pertanyaan yang cukup lama, tetapi karena posting ini adalah salah satu hasil pencarian teratas untuk topik ini, saya pikir saya akan memposting tautan ke alur kerja untuk menghasilkan peta panas polyline di ArcGIS yang menjawab pertanyaan ini, karena saat ini tidak ada solusi untuk ArcGIS di pos ini.

https://luke-webber.github.io/polyline-heatmap/

bendycat_bumbersplat
sumber