Tej zimy planuję śledzić narciarstwo zjazdowe / snowboarding za pomocą GPS. Większość mojej jazdy będzie miała miejsce w tym samym ośrodku. Chciałbym móc stworzyć rodzaj „mapy cieplnej”, która pokazuje liczbę przebiegów, które wykonałem w danym obszarze. W miarę dodawania coraz więcej śladów GPS do mojej bazy danych, moim celem byłoby zobaczyć rodzaj liniowej mapy cieplnej najczęściej podróżowanych obszarów. Biorąc pod uwagę naturę narciarstwa zjazdowego, można się spodziewać, że linie wyciągów krzesełkowych będą „najgorętsze”, ponieważ będą to jedyne odwiedzane miejsca w kółko.
Biorąc pod uwagę, że 1) moja ścieżka nie będzie za każdym razem taka sama i 2) obszar objęty jednym „biegiem” może mieć szerokość kilkuset stóp, co może być najlepszym sposobem analizy tych „liniowych” danych w celu utworzenia sortowania mapy cieplnej? Myślałem o buforowaniu linii, a następnie przecięciu biegunów, aby uruchomić coś w rodzaju diagramu Venna. Wolę korzystać z technologii open source. Mam QGIS i PostGIS załadowane i dostępne.
AKTUALIZACJA : W odniesieniu do odpowiedzi @ blah238, myślałem o czymś, co może być w stanie „zebrać” liczbę przebiegów („przebiegów”) przez obszar, a następnie symbolizować przez liczbę. Koncepcyjnie byłoby to podobne do ArcGIS „ Zbieraj zdarzenia ” (ale dla linii, a nie punktów) lub Zwiń podwójne linie do linii środkowej (ale dla wielu linii w mniej więcej tym samym obszarze).
Bardziej wizualnym przykładem podobnej koncepcji może być mapa ruchu, w której obszary o dużym natężeniu ruchu byłyby równe trasom / obszarom o dużym natężeniu ruchu:
Przeczytałem następujące pytania, które mogą dać pewne pomysły, ale tak naprawdę nie odnoszą się do tego, co próbuję osiągnąć:
Grupowanie trajektorii (dane GPS punktów (x, y)) i wyszukiwanie danych
źródło
Odpowiedzi:
W GeoTools / GeoServer wykonałem trochę pracy, rozszerzając transformację renderowania mapy cieplnej o obsługę geometrii innych niż punkty.
To jeszcze nie koniec, ale możesz pobrać gałąź funkcji z mojego repozytorium na GitHub .
Zrzut ekranu przedstawia ślady GPS z czasów, kiedy pracowałem jako kierowca dostawy pizzy.
źródło
Oto dobry samouczek do robienia tego dokładnie przy użyciu MapBox i TileMill :
źródło
oto moje proste podejście:
Powyższe trzy kroki potrwają 5 minut i oto wynik:
źródło
Oto moje podejście do QGIS. Dotyczyło to zestawu tras autobusowych i chciałem ustalić, które drogi mają największe zagęszczenie przejeżdżających linii autobusowych.
I voila.
źródło
Zdaję sobie sprawę, że jest to dość stary post, jednak natknąłem się na niego podczas podobnych badań. Opracowałem dość prosty model / przepływ pracy, który może to osiągnąć w ArcGIS (prawdopodobnie QGIS, ale jeszcze go tam nie wdrożyłem).
Jeśli masz konkretnie plik GPX lub TCX (choć działa dowolny plik punktowy), można go po prostu otworzyć w programie Excel, a następnie przekonwertować na plik CSV i przenieść do ArcGIS. Za pomocą tego
Points to Line
narzędzia konwertujesz punkty GPS z CSV na trajektorie, sortując punkty według czasu (możesz również pogrupować je za pomocą unikalnego identyfikatora, który w tym przypadku może być według ośrodka, trasy lub konkretnej daty zdarzenia - np. Dzień 1, 2 itd.). Spowoduje to utworzenie pojedynczej warstwy polilinii (chyba że zgrupujesz je według unikalnego identyfikatora). Następnie używaszSplit Line at Vertices
narzędzia, które tworzy segmenty linii między każdym kolejnym punktem. Stamtąd używaszLine Density
narzędzia, które zlicza liczbę linii przechodzących przez komórkę, biorąc pod uwagę określony rozmiar komórki i promień wyszukiwania, i wysyła raster. Ten raster może być symbolizowany jako mapa ciepła.Często to wdrażam i kontynuuję, a poniżej zamieściłem przykładowy wynik:
źródło
Track Intervals to Line
, aLine Density
narzędziaWykorzystanie tego polega na przekierowaniu uczniów do ich szkoły za pomocą PGRouting.
Wyniki poszczególnych tras stanowią u podstaw zbiór węzłów (które są przekształcane w linie poprzez opcjonalne połączenie powiązanych krawędzi).
Jeśli poprowadzisz wielu uczniów do jednej szkoły, zbiór wyjściowy węzłów można następnie wyświetlić w QGIS za pomocą renderera map cieplnych, który pokazuje „punkty aktywne” zebranych tras do szkoły (patrz poniżej).
Mapy te zostały wykorzystane do informowania obszarów, które powinny być celem dalszej infrastruktury bezpieczeństwa, takich jak skrzyżowania, sygnały, znaki itp.
źródło
Utwórz siatkę siatki, przekonwertuj dane gps na pliki kształtów, poligonizuj linie, wyodrębnij dane punktów x, y z tabel, utwórz gęstość powierzchni lub mapę cieplną, stosując standardową praktykę w tym miejscu. Następnie można połączyć z liniowymi danymi wektorowymi, aby uzyskać wartości pikseli na wyświetlaczu rastrowym lub w celu dalszego przetwarzania numerycznego.
źródło
Większość ludzi (w tym ja) patrzy na plik GPX i myśli o nim jako o sekwencji pozycji (punktów), podczas gdy zamiast tego można go doskonale postrzegać jako sekwencję segmentów linii .
Twoje sformułowanie problemu obejmuje „mapę cieplną”, dzięki czemu możesz wizualnie sprawdzić swoje trajektorie, więc istnieje dość prosty sposób na ominięcie złożonej części polegającej na rozkładaniu liczb przez przekazanie jej bezpośrednio do silnika kreślenia.
Gdy powiesz „buforuj linie”, będzie to grubość linii. Kiedy mówisz „zbieraj przepustki”, oznaczałoby to ciągłe kreślenie przezroczystych linii, a tym samym „budowanie” coraz więcej kolorów.
Sugeruję więc, aby narysować każdą trajektorię jako pojedynczą polilinię o grubości wystarczającej do pewnego nakładania się (zależy to od powiększenia, więc będziesz chciał ustawić grubość w odległości mapy zamiast pikseli), z dość niskim kryciem , powiedzmy, 0,05, na czarno.
Ważne jest, aby nie drukować każdego segmentu, ponieważ jeśli to zrobisz, ich końce będą się nakładać, podwajając ich krycie i tworząc „kropkę” o mocniejszym kolorze.
Na koniec otrzymasz obraz w skali szarości, na którym możesz zastosować wybraną mapę kolorów.
Prawdopodobnie zrobiłbym to przy użyciu Python / Cairo, ale zrobiłby to Python / Matplotlib, a Html / Canvas lub Html / SVG (lub programowy SVG) z pewnością by to zrobiły.
Wynik końcowy zależałby tylko od rozdzielczości nośnika wyjściowego.
źródło
Zdaję sobie sprawę, że to dość stare pytanie, ale ponieważ ten post jest jednym z najlepszych wyników wyszukiwania dla tego tematu, pomyślałem, że opublikuję link do przepływu pracy do tworzenia map ciepła polilinii w ArcGIS, który odpowiada na to pytanie, ponieważ obecnie nie ma rozwiązania dla ArcGIS w tym poście.
https://luke-webber.github.io/polyline-heatmap/
źródło