Этой зимой я планирую отслеживать свое катание на горных лыжах / сноуборде с помощью GPS. Большая часть моей езды будет проходить на одном курорте. Я хотел бы иметь возможность создать своего рода «тепловую карту», которая показывает количество прогонов, которые я сделал в данной области. По мере того, как я добавляю все больше и больше трасс GPS в свою базу данных, моей целью будет увидеть своего рода линейную тепловую карту наиболее посещаемых районов. Учитывая характер катания на горных лыжах, можно ожидать, что подъемные канатные дороги будут самыми «горячими», потому что это будут единственные места, посещаемые снова и снова.
Учитывая, что 1) моя дорожка не будет всегда одинаковой и 2) область, покрываемая после одного «пробега», может иметь ширину в несколько сотен футов, что может быть лучшим способом для анализа этих «линейных» данных для создания сортировки тепловой карты? Мои мысли заключались в том, чтобы буферизовать линии, а затем пересекать полисы, чтобы создать нечто вроде диаграммы Венна. Я предпочитаю использовать технологии с открытым исходным кодом. У меня загружены и доступны QGIS и PostGIS.
ОБНОВЛЕНИЕ : Что касается ответа @ blah238, я думал о чем-то, что могло бы «собрать» количество проходов («пробегов») через область, а затем символизировать счетчиком. Концептуально это будет похоже на ArcGIS " Собирать события " (но для линий, а не точек) или Свернуть двойные линии на осевую линию (но для нескольких линий примерно в одной и той же области).
Более наглядным примером подобной концепции может быть карта транспортных потоков, где сильно перегруженные районы будут приравниваться к «сильно пройденным» лыжным трассам / зонам:
Я прочитал следующие вопросы, которые могут дать некоторые идеи, но они на самом деле не касаются того, что я пытаюсь достичь:
Кластеризация траекторий (данные GPS точек (x, y)) и добыча данных
Управление ошибками с помощью GPS-маршрутов (теоретическая основа?)
источник
Ответы:
Я проделал небольшую работу над этим в GeoTools / GeoServer, расширив преобразование рендеринга Heatmap для поддержки геометрии, отличной от точек.
Он еще не закончен, но вы можете получить ветку функций из моего репозитория на GitHub .
На скриншоте изображены GPS-треки, когда я работал водителем доставки пиццы.
источник
Вот хороший учебник для того, чтобы сделать именно это с помощью MapBox и TileMill :
источник
вот мой простой подход:
Три вышеуказанных шага займут 5 минут, и вот результат:
источник
Вот мой подход к QGIS. Это было для ряда автобусных маршрутов, и я хотел определить, какие дороги имели наибольшую плотность проходящих автобусных маршрутов.
И вуаля.
источник
Я понимаю, что это довольно старый пост, однако я наткнулся на него, проводя аналогичные исследования. Я разработал довольно простую модель / рабочий процесс, который может выполнить это в ArcGIS (возможно, QGIS, но я еще не реализовал это там).
Если у вас есть файл GPX или TCX специально (хотя любой файл точек работает), его можно просто открыть в Excel, затем преобразовать в CSV и перенести в ArcGIS. Используя
Points to Line
инструмент, вы конвертируете точки GPS из CSV в траектории, сортируя точки по времени (вы также можете сгруппировать их, используя уникальный идентификатор, который в этом случае может быть по курорту, маршруту или конкретной дате события - например, День 1, 2 и т. д.). Это создаст один слой полилинии (если вы не сгруппируете их по уникальному идентификатору). Затем вы используетеSplit Line at Vertices
инструмент, который создает отрезки между каждой последовательной точкой. Оттуда вы используетеLine Density
инструмент, который подсчитывает количество линий, проходящих через ячейку с заданным размером ячейки и радиусом поиска, и выводит растр. Этот растр может быть обозначен как тепловая карта.Я имею, и продолжаю реализовывать это часто, и включил пример результата ниже:
источник
Track Intervals to Line
и теLine Density
инструментыМы используем это для направления учащихся в их школу с использованием PGRouting.
В основе результатов отдельного маршрута лежит множество узлов (которые превращаются в линии путем необязательного соединения связанных ребер).
Если вы направите несколько учеников в одну школу, то выходной набор узлов затем можно отобразить в QGIS с помощью средства визуализации тепловых карт, которое показывает «горячие точки» собранных маршрутов в школу (см. Ниже).
Эти карты использовались для информирования областей, которые должны быть предназначены для дальнейшей инфраструктуры безопасности, такой как переходы, сигналы, знаки и т. Д.
источник
Создайте решетчатую сетку, преобразуйте gpsdata в шейп-файлы, полигонизируйте линии, извлеките данные точек x, y из таблиц, создайте поверхностную плотность или тепловую карту, используя стандартную практику в этой точке. Затем вы можете объединить линейные векторные данные, чтобы получить значения пикселей на растровом дисплее или для дальнейшей числовой обработки.
источник
Большинство людей (включая меня) смотрят на файл GPX и думают о нем как о последовательности позиций (точек), в то время как вместо этого он может прекрасно рассматриваться как последовательность отрезков .
Формулировка вашей проблемы включает в себя «тепловую карту», так что вы можете визуально проверить свои траектории, поэтому существует довольно простой способ пропустить сложную часть обработки чисел, делегировав ее непосредственно в механизм построения графиков.
Когда вы говорите «буферизуйте линии», это будет толщина линии. Когда вы говорите «собирать пассы», это будет означать, что вы будете снова и снова рисовать прозрачные линии, таким образом «наращивая» все больше и больше цвета.
Итак, я предлагаю вам построить каждую траекторию как одну ломаную с толщиной, достаточной для того, чтобы иметь некоторое перекрытие (это зависит от масштаба, поэтому вы захотите установить толщину на расстоянии карты вместо пикселей), и с довольно низкой непрозрачностью скажем, 0,05, в черном цвете.
Важно не наносить на график каждый сегмент, потому что если вы это сделаете, их конечности будут перекрываться, удваивая их непрозрачность и создавая «точку» более яркого цвета.
В конце вы получите изображение в оттенках серого, к которому вы можете применить цветовую карту по вашему выбору.
Я, вероятно, сделал бы это с помощью Python / Cairo, но Python / Matplotlib подойдет, и Html / Canvas или Html / SVG (или программный SVG), безусловно, подойдут.
Конечный результат будет зависеть только от разрешения вашего носителя.
источник
Я знаю, что это довольно старый вопрос, но так как этот пост является одним из лучших результатов поиска по этой теме, я решил опубликовать ссылку на рабочий процесс для создания полилинейных тепловых карт в ArcGIS, который отвечает на этот вопрос, так как в данный момент нет решения для ArcGIS.
https://luke-webber.github.io/polyline-heatmap/
источник