Створення «теплової карти» на основі поліліній із GPS-треків?


30

Цієї зими я планую відстежувати гірські лижі / сноуборд за допомогою GPS. Більшість моїх їздок відбуватимуться на одному курорті. Мені б хотілося створити своєрідну «теплову карту», ​​яка показує кількість пробіжок, які я зробив у певній області. Коли я додаю все більше слідів GPS до своєї бази даних, моєю метою було б побачити своєрідну лінійну теплову карту найбільш проїзних областей. Враховуючи характер катання на гірських лижах, ви б очікували, що лінії на підйомника на гору будуть "найгарячішими", оскільки це будуть єдині місця, які відвідуються знову і знову.

Враховуючи, що 1) моя доріжка не буде однаковою кожен раз, і 2) площа, охоплена наступним «пробігом», може бути шириною в кілька сотень футів, що може бути найкращим способом аналізу цих «лінійних» даних для створення свого роду теплової карти? Мої думки полягали в буферизації ліній, а потім пересіканні полісів, щоб отримати щось на зразок діаграми Венна. Моя перевага - використовувати технології з відкритим кодом. У мене завантажені та доступні QGIS та PostGIS.

ОНОВЛЕННЯ : Що стосується відповіді @ blah238, я думав про те, що могло б "зібрати" кількість проходів ("пробігів") через область, а потім символізувати підрахунок. Концептуально це буде схоже на ArcGIS " Збір подій " (але для рядків, а не точок) або Згорнути подвійні лінії до центральної лінії (але для декількох рядків приблизно в одній області).

Більш наочним прикладом подібної концепції може бути карта руху потоків, де сильно переповнені райони прирівнюватимуться до гірськолижних трас / областей, що дуже подорожують:

Карта трафіку Google

Я читав наступні питання, які можуть дати деякі ідеї, але вони насправді не стосуються того, що я намагаюся досягти:

Траєкторії кластеризації (дані GPS (x, y) точок) та майнінг даних

Управління помилками за допомогою маршрутів GPS (теоретична основа?)


Припускаючи, що ви будете використовувати дані GPX, він повинен просто приймати лат / довгі читання з інтервалом, тому він повинен бути вже в точкових характеристиках. Ви б не змогли використовувати для цього теплову карту? Або ви не використовуєте сумісний пристрій GPX ??
RomaH

Ах, е. Я неправильно прочитав те, що ви хотіли .. Неважливо.
RomaH

@RomaH, насправді, ви дуже добре можете зайнятись своєю ідеєю використання точок для створення теплової карти замість використання ліній. Я раніше не розглядав питання використання джерельних точок, тому це я обов'язково буду досліджувати.
RyanDalton

Ви маєте справу з полем, де як вулиця має чітко окреслені краї. Якщо ви хочете зробити лінійну модель, ви можете зробити кілька полі накладок, з'єднань та використовувати плагін point2one, щоб скласти мапу ліній із успадкованими значеннями. Але тоді вам потрібно вирішити, наскільки далеко потрібно їздити на лижах, щоб виправдати нову особливість лінії. Особисто для мене я був би задоволений рішенням теплової карти, але знову ж таки, я не знаю ваших потреб.
RomaH

Я натрапив на це питання, який є дуже класним способом зробити по суті те саме, але за допомогою GPS-точок відстеження створити теплову карту.
РайанДалтон

Відповіді:


17

Я трохи попрацював над цим у GeoTools / GeoServer, розширивши перетворення трансформації теплової карти для підтримки інших геометрій, крім точок.

Теплова карта доставки піци

Це ще не закінчено, але ви можете отримати гілку функції з мого сховища на GitHub .

Скріншот - це треки GPS, коли я працював водієм доставки піци.


Він все ще не виводить геометрії вектора, але збирає перекриття, щоб дати більше значення.
smithkm

якісь ідеї, як досягти цього ефекту просто за допомогою постгігів? чи qgis?
chrismarx

15

Ось хороший підручник для того, щоб зробити саме це за допомогою MapBox та TileMill :

Знімок екрана


1
Погоджена, ця концепція майже однакова і її легко можна виконати в будь-якому ГІС. Але це, по суті, говорить про те, що "просто зробіть усі свої доріжки червоними світло-зеленим буфером", і вони будуть виділятися на карті? Для візуального ефекту я обов'язково попрацюю. Я здогадуюсь, що спочатку я думав спробувати щось більш "аналітичне", яке могло б показати "підрахунок" "пробігів" у цьому прикладі. Я продовжуватиму це думати.
RyanDalton

@ blah238 Я шукав подібний приклад ... велике спасибі !!
Суніл

1
@ blah238, Подумавши над цим трохи довше, ти дав дуже вагому відповідь на моє початкове запитання. Я мав би бути більш чітким у своїх думках. Дякую за вашу відповідь, і я оновив своє запитання, щоб більш точно відобразити те, що я намагався досягти. Я ціную допомогу.
RyanDalton

5

ось мій простий підхід:

  1. створити нову карту у umap: http://umap.openstreetmap.fr/en
  2. натисніть Імпортувати дані a, виберіть усі наявні у вас файли gpx та завантажте їх на карту (їх можна імпортувати відразу)
  3. введіть Редагувати настройки карти> Властивості за замовчуванням, виберіть непрозорість 0,25, вага 10.

На три етапи вище буде потрібно 5 хвилин, і ось результат: введіть тут опис зображення


3

Ось мій підхід до QGIS. Це було для набору автобусних маршрутів, і я хотів визначити, які дороги мають найбільшу щільність автобусних маршрутів, які проходять повз.

  • Використовував плагін Qchaining для перетворення моїх рядків у точки. Випробував різні сценарії, поки я не створив багато балів за рядок (1500 за рядок, а рядки - близько 9 км).
  • Застосовується символіка теплової карти, що Qgis має вбудований вкладку стилів. властивості шару> стиль> теплова карта
  • Грайте з радіусом і максимальним значенням. Переконайтеся, що ви вибрали найкращу якість рендерінгу.
  • Створено новий кольоровий пандус (вибирайте суцільний), починаючи з чорного та будь-якого іншого яскравого кольору з іншого боку.

І вуаля.

введіть тут опис зображення введіть тут опис зображення


2

Я усвідомлюю, що це досить старий пост, однак я натрапив на нього, роблячи подібні дослідження. Я розробив досить просту модель / робочий потік, яка може досягти саме цього в ArcGIS (можливо, QGIS, але я його ще не реалізував там).

Якщо у вас є файл GPX або TCX конкретно (хоча працює будь-який точковий файл), його можна просто відкрити в Excel, потім перетворити на CSV і перенести в ArcGIS. За допомогою Points to Lineінструменту ви перетворюєте GPS-точки з CSV, у траєкторії, сортуючи точки за часом (ви також можете згрупувати їх за допомогою унікального ідентифікатора, який у цьому випадку може бути за курортом, маршрутом чи конкретною датою події - наприклад, Day1, 2 тощо). Це створить єдиний полілінійний шар (якщо ви не згрупуєте їх за унікальним ідентифікатором). Потім ви використовуєте Split Line at Verticesінструмент, який створює відрізки рядків між кожною послідовною точкою. Звідти ви використовуєтеLine Density інструмент, який підраховує кількість рядків, що проходять через комірку, заданий розмір комірки та радіус пошуку, і видає растр. Цей растр може бути символізований як теплова карта.

Я це і продовжую часто застосовувати, і нижче включив зразок результату:

введіть тут опис зображення


Це виглядає як дійсно цікава техніка. Я ніколи не доповнював цю ідею, тому буду досліджувати її далі. Дякуємо, що відповіли на старе запитання!
RyanDalton

Без проблем! Це досить проста модель, що використовує саме ці три інструменти з Arc Toolbox. З іншого боку , ви могли б спростити його далі двох інструментів використовуючи тільки Track Intervals to Lineі ті Line Densityінструменти
Андрей.Філ Райана

1

Наше використання цього стосується маршрутизації учнів до їхньої школи за допомогою PGRouting.

Результати індивідуального маршруту є основою сукупності вузлів (які перетворюються на лінії шляхом необов'язкового з'єднання відповідних ребер).

Якщо ви спрямовуєте декілька учнів до однієї школи, то колекція вихідних вузлів може бути відображена в QGIS за допомогою рендерінга теплової карти, який показує "гарячі точки" зібраних маршрутів до школи (див. Нижче).

Ці карти використовувались для інформування областей, які мають бути орієнтовані на подальшу інфраструктуру безпеки, наприклад, переправи, сигнали, знаки тощо.

введіть тут опис зображення


Дякую поділитися за зображення, мені це подобається. Я спробую обробити вершини GPX замість рядків, щоб перевірити, чи працюють точки доступу в межах невеликого
RyanDalton

0

Створіть гратикулярну сітку, перетворіть gpsdata у shapefiles, полігонізуйте лінії, витягніть дані x, y точки з таблиць, складіть щільність поверхні або нагрійте карту, використовуючи стандартну практику в цьому пункті. Потім можна об'єднатись з лінійними векторними даними, щоб отримати піксельні значення в растровому дисплеї або для подальшої чисельної обробки.


0

Більшість людей (включаючи мене) дивляться на файл GPX і вважають це послідовністю позицій (точок), тоді як він може чудово розглядатися як послідовність сегментів рядків .

Постановка вашої проблеми включає в себе "теплову карту", щоб ви могли візуально перевірити свої траєкторії, тому існує досить простий спосіб пропустити складну число, що скорочується, шляхом делегування її безпосередньо в графічний механізм.

Коли ви говорите "буфер ліній", це буде товщина лінії. Коли ви говорите "збирайте проходи", це означало б промальовування знову і знову прозорими лініями, таким чином "нарощуючи" все більше і більше кольорів.

Отже, я пропоную вам побудувати кожну траєкторію як єдину полілінію з достатньою товщиною, щоб було певне перекриття (це залежить від масштабування, тому ви хочете встановити товщину в відстані до карти замість пікселів), і з досить низькою непрозорістю , скажімо, 0,05, чорним кольором.

Важливо не накреслювати кожен сегмент, тому що якщо ви це зробите, їх кінцівки будуть перекриватись, подвоюючи їх непрозорість і створюючи «крапку» більш сильного кольору.

Зрештою, ви отримаєте зображення в градаціях сірого, на яке зможете застосувати обрану кольорову карту.

Я, мабуть, зробив би це за допомогою Python / Cairo, але Python / Matplotlib зробив би це, і Html / Canvas або Html / SVG (або програмний SVG) безумовно.

Кінцевий результат залежатиме лише від роздільної здатності вихідного носія.


0

Я знаю, що це досить давнє запитання, але оскільки ця публікація є одним з найпопулярніших результатів пошуку цієї теми, я подумав, що опублікую посилання на робочий процес для виготовлення полілінійних теплових карт в ArcGIS, який відповідає на це запитання, оскільки наразі немає рішення для ArcGIS на цій посаді.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.