GPS izlerinden polyline tabanlı “heatmap” oluşturuluyor mu?


30

Bu kış bir GPS kullanarak yokuş aşağı kayak / snowboardumu izlemeyi planlıyorum. Biniciliklerimin çoğu aynı tesiste gerçekleşecek Belirli bir alanda yaptığım çalışmaların miktarını gösteren bir tür "ısı haritası" oluşturabilmek istiyorum. Veritabanıma giderek daha fazla GPS izi eklediğim için hedefim, en çok seyahat edilen alanların bir tür doğrusal ısı haritasını görmek olacaktır. Yokuş aşağı kayak yapısına bakıldığında, yokuş yukarı telesiyej hatlarının "en sıcak" olmasını beklersiniz çünkü tekrar tekrar ziyaret edilen tek yer orasıdır.

1) pistim her seferinde aynı olmayacak ve 2) bir "koşuyu" takip ederek kaplanan alan birkaç yüz metre genişliğinde olabilir, bir sıralama oluşturmak için bu "doğrusal" verileri analiz etmenin en iyi yolu ne olabilir Isı haritası Düşüncelerim çizgileri tamponlamaktı, sonra bir çeşit Venn Şeması olayı elde etmek için polys ile kesişiyordu. Tercihim açık kaynaklı teknolojiler kullanmak. QGIS ve PostGIS yüklü ve kullanılabilir durumda.

GÜNCELLEME : @ blah238'in tepkisi ile ilgili olarak, bir alandaki geçiş sayısını ("koşar") "toplayabilecek" ve ardından sayımla sembolize edebilecek bir şey düşünüyordum. Kavramsal olarak, bu, ArcGIS " Toplanan Olaylar " (ancak noktalar için değil, noktalar için) ya da İkili Satırları Merkeze Daralt (ancak kabaca aynı alanda birden çok satır için) ile benzer olacaktır.

Benzer bir konseptin daha görsel bir örneği, çok sıkışık bölgelerin "çok seyahat eden" kayak pistlerine / alanlarına eşit olacağı bir trafik akış haritası olabilir:

Google Trafik Haritası

Bazı fikirler verebilecek şu soruları okudum, ancak gerçekten başarmaya çalıştığım şeyi ele almıyorlar:

Kümelenme Yörüngeleri ((x, y) puanlarının GPS verileri) ve Verilerin Madenciliği

GPS rotalarında hata yönetimi (teorik çerçeve?)


GPX verilerini kullanacağınızı varsayarsak, aralıklarla kısa / uzun okumalar alması gerekir, bu nedenle zaten nokta özelliklerinde olması gerekir. Bunun üzerine bir ısı haritası kullanamaz mısın? Yoksa GPX uyumlu cihazı kullanmıyor musunuz?
RomaH

Ah, er. Ne istediğini yanlış anladım .. Boşver.
RomaH

@RomaH, aslında, çok iyi bir şekilde, çizgileri kullanmak yerine bir ısı haritası oluşturmak için noktaları kullanma fikrinizle ilgili olabilirsiniz. Daha önce kaynak noktaları kullanmayı düşünmemiştim, bu yüzden kesinlikle araştırmam gereken bir şey var.
RyanDalton

Bir caddenin iyi tanımlanmış kenarları olduğu bir alanla uğraşıyorsunuz. Bir çizgi model yapmak istiyorsanız, çeşitli çoklu kaplamalar yapabilir, katılabilir ve kalıtsal değerlere sahip bir çizgi haritası oluşturmak için point2one eklentisini kullanabilirsiniz. Ancak, yeni bir çizgi özelliğini haklı çıkarmak için ne kadar uzağa kayak yapmanız gerektiğine karar vermeniz gerekir. Şahsen benim için bir heatmap çözümünden memnun olurum, ama yine de ihtiyaçlarınızın farkında değilim.
Roma,

Esasen aynı şeyi başarmanın çok güzel bir yolu olan bu soruna rastladım , ancak ısı haritasını oluşturmak için GPS İz Noktalarını kullandım.
RyanDalton

Yanıtlar:


17

Bu konuda GeoTools / GeoServer'da Heatmap Rendering Transformation'ı noktalardan başka geometrileri destekleyecek şekilde genişleterek biraz çalıştım.

Pizza teslimi heatmap

Henüz bitmedi, ancak özellik dalını GitHub'daki havuzumdan alabilirsiniz .

Ekran görüntüsü, bir pizza dağıtım sürücüsü olarak çalıştığım zamana ait GPS izlerinden.


Hala vektör geometrileri çıkmıyor, ancak daha yüksek bir değer vermek için örtüşüyor.
smithkm

sadece postgis ile bu etkiyi elde etmek için herhangi bir fikir? veya qgis?
chrismarx

15

İşte tam olarak MapBox ve TileMill kullanarak bunu yapmak için iyi bir öğretici :

Ekran görüntüsü


1
Kabul edildi, bu kavram neredeyse aynıdır ve herhangi bir CBS'de kolayca yapılabilir. Ancak bu temel olarak “tüm parçalarınızı açık yeşil bir tamponla kırmızı yapmak” ve harita üzerinde göze çarpacaklarını mı gösteriyor? Görsel efekt için kesinlikle çalışacağım. Sanırım başlangıçta bu örnekte "koşuların" sayısını "gösterebilecek daha" analitik "bir şey denemeyi düşünüyordum. Onu ezmeye devam edeceğim.
RyanDalton

@ blah238 Benzer bir örnek arıyordum ... çok teşekkürler !!
Sunil

1
@ blah238, Biraz daha düşündükten sonra, ilk soruma çok geçerli bir cevap verdiniz. Düşüncelerim hakkında daha net olmalıydım. Cevabınız için teşekkür ederiz ve sorumu, elde etmeye çalıştığımı daha doğru yansıtacak şekilde güncelledim. Yardımın için minnettarım.
RyanDalton

5

İşte benim basit yaklaşımım:

  1. umap'ta yeni bir harita oluşturun: http://umap.openstreetmap.fr/tr
  2. Veri Al a tıklayın, sahip olduğunuz tüm gpx dosyalarını seçin ve haritaya yükleyin (hepsini bir kerede içe aktarabilirsiniz)
  3. Harita ayarlarını düzenle> Varsayılan özellikler girin, opaklık 0.25, ağırlık 10'u seçin.

Yukarıdaki üç adım 5 dakika sürecek ve işte sonuç: görüntü tanımını buraya girin


3

İşte QGIS hakkındaki yaklaşımım. Bu, bir dizi otobüs güzergahı içindi ve hangi yollardan geçen en fazla otobüs güzergahı yoğunluğuna sahip olduğunu belirlemek istedim.

  • Satırlarımı noktalara dönüştürmek için Qchainage eklentisini kullandım. Satır başına çok sayıda nokta üretinceye kadar farklı senaryolar test ettim (satır başına 1.500 ve satırlar yaklaşık 9km).
  • Qgis'in stil sekmesinde yerleşik olarak bulunan ısı haritası simgeselemesini uyguladı. katman özellikleri> style> heatmap
  • Yarıçapı ve maksimum değeri ile oynayın. En iyi işleme kalitesini seçtiğinizden emin olun.
  • Siyahtan ve diğer taraftaki diğer parlak renklerden başlayarak yeni bir renk rampası yarattı (sürekli seçin).

Ve voilà.

görüntü tanımını buraya girin görüntü tanımını buraya girin


2

Bunun oldukça eski bir yazı olduğunun farkındayım, ancak buna benzer bir araştırma yaparken rastladım. ArcGIS'te bunu başarabilecek oldukça basit bir model / iş akışı geliştirdim (muhtemelen QGIS, ancak henüz orada uygulamadım).

Özel olarak bir GPX veya TCX dosyanız varsa (herhangi bir nokta dosyası olsa da çalışır), yalnızca Excel'de açılabilir, ardından bir CSV'ye dönüştürülebilir ve ArcGIS'e getirilebilir. Points to LineAracı kullanarak, noktaları zamana göre sıralayarak GPS noktalarını CSV'den yörüngelere dönüştürürsünüz (bu durumda olayın çare, rota veya olayın tarihine göre olabileceği benzersiz bir tanımlayıcı kullanarak da gruplayabilirsiniz. - örneğin Gün 1, 2, vb.) Bu, tek bir çok satırlı katman oluşturur (onları benzersiz tanıtıcıya göre gruplamadıkça). Ardından, Split Line at Verticesart arda gelen her nokta arasında çizgi parçaları oluşturan aracı kullanın . Oradan, sen kullanLine Density belirli bir hücre boyutu ve arama yarıçapı verilen bir hücreden geçen satır sayısını sayan ve bir raster çıktısı aracı . Bu raster bir ısı haritası olarak sembolize edilebilir.

Bunu sık sık uygulamaya ve devam ettirmeye devam ediyorum ve aşağıda örnek bir sonuç ekledim:

görüntü tanımını buraya girin


Bu gerçekten ilginç bir teknik gibi görünüyor. Bu fikri asla tamamlamadım, bu yüzden bunu daha fazla araştıracağım. Eski bir soruyu yanıtladığınız için teşekkür ederiz!
RyanDalton

Sorun değil! Arc Toolbox'taki sadece bu üç aleti kullanan oldukça basit bir model. Alternatif olarak, sadece kullanarak iki araçlara daha da basitleştirmek olabilir Track Intervals to Lineve Line Densityaraçları
andrew-Ryan

1

Bunu kullanmamız, öğrencilerin PGRouting kullanarak okullarına yönlendirilmesini içerir.

Bireysel bir rotanın sonuçları, özünde bir düğüm setidir (isteğe bağlı olarak ilgili kenarları birleştirerek çizgilere dönüştürülür).

Birden fazla öğrenciyi tek bir okula yönlendirirseniz, düğümlerin çıkış koleksiyonu, toplanan rotaların 'sıcak noktaları' okula gösteren ısı haritası oluşturucusunu kullanarak, QGIS'de görüntülenebilir (aşağıya bakınız).

Bu haritalar, geçişler, sinyaller, işaretler vb. Gibi daha fazla güvenlik altyapısı için hedeflenmesi gereken alanları bilgilendirmek için kullanıldı.

görüntü tanımını buraya girin


Resim için teşekkür ederiz, beğendim.
Sıcak

0

Bir ızgara yapısı oluşturun, gpsdata'yı şekil dosyalarına dönüştürün, çizgileri çokgenselleştirin, x, y nokta verilerini tablolardan çıkarın, bir yüzey yoğunluğu yapın ya da bu noktada standart uygulamaları kullanarak ısı haritasını çıkarın. Daha sonra raster ekrandaki piksel değerlerini almak veya daha fazla sayısal işlem için doğrusal vektör verileriyle birleştirebilirsiniz.


0

Çoğu kişi (kendim de dahil) bir GPX dosyasına bakar ve onu bir sıra dizisi (puan) olarak düşünürken, mükemmel bir çizgi kesimi dizisi olarak görülebilir yerine .

Sorunlu formülasyonunuz bir "ısı haritası" nı içerir, böylece yörüngelerinizi görsel olarak inceleyebilirsiniz, bu nedenle karmaşık sayılan kısmı doğrudan bir çizim motoruna devrederek atlamanın oldukça basit bir yolu vardır.

"Satırları tamponla" derken, bu satır kalınlığı olacaktır. "Pasoları topla" derken, bu, şeffafla tekrar tekrar çizmek anlamına gelir. , bu, çizgilerle , böylece daha fazla renk "oluşturmak" .

Bu yüzden, her yörüngeyi, üst üste gelebilecek kadar kalınlığa sahip tek bir çoklu çizgi olarak çizmenizi öneririm (yakınlaştırmaya bağlıdır, bu nedenle kalınlığı piksel yerine harita mesafesine ayarlamak isteyeceksiniz) ve oldukça düşük bir opaklığa sahip olacaksınız. , örneğin 0.05, siyah renkte.

Her bir parçayı çizmemek önemlidir, çünkü bunu yaparsanız ekstremiteleri örtüşür, opaklıklarını iki katına çıkarır ve daha güçlü bir renk noktası oluşturur.

Sonunda, seçtiğiniz renk haritasını uygulayabileceğiniz gri tonlamalı bir görüntü elde edersiniz.

Muhtemelen Python / Cairo kullanarak yapardım, ancak Python / Matplotlib yapacaktı ve kesinlikle Html / Canvas veya Html / SVG (veya programatik SVG) yapacaktı.

Sonuç, yalnızca çıktı medyanızın çözünürlüğüne bağlı olacaktır.


0

Bunun çok eski bir soru olduğunun farkındayım, ancak bu yazı bu konunun en iyi arama sonuçlarından biri olduğundan, ArcGIS’te bu soruyu cevaplayan polyline ısı haritaları üretmek için bir iş akışına bağlantı göndereceğimi düşündüm, şu anda ArcGIS için bu yazıda bir çözüm bulunmuyor.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.