Ви робите теплову карту з лінійних даних у QGIS?


12

Я хочу провести аналіз щільності ліній для моїх лінійних даних на основі атрибута.

Здається, що параметр теплової карти (аналіз щільності ядра) можливий лише для точкових даних.

Я спробував перетворити свої лінійні дані в точки і створити теплову карту, але атрибути для ваги були втрачені під час перетворення.

Це аналіз щільності ліній, виконаний з ArcGIS. Я хотів зробити те саме з QGIS.

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

Чи можливо провести аналогічний аналіз щільності лінії в QGIS? і це дані про QGIS

Відповіді:


4

Я не можу знайти спосіб це зробити в QGIS за допомогою функцій DB Manager / SQLite, але в PostGIS ми робимо наступне:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

Це, експортовано до нової таблиці, дозволяє точкам рядків (у нашому випадку від PGRouting учнів до їх школи), щоб ми могли візуалізувати точку маршрутів, яку студенти могли приймати:

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


4

Насправді, у QGIS можна зробити щільність ліній, використовуючи стандартні меню, що надсилають параметри до виконуваних файлів GDAL.

Використання gdal_rasterize за допомогою перемикача -burn -add створило б растр щільності ліній або точок, без радіуса пошуку як щільності ядра тощо. Яка кількість точок або скільки рядків у растровій комірці.

gdal_rasterize знаходиться в меню Растр -> Конверсія -> Розгортання. В останньому текстовому полі ви натискаєте кнопку олівця і змінюєте текст, щоб він включав "-запис 1 -додаток", аналогічний наведеному нижче. Природно, ви змінюєте параметри -tr (роздільну здатність) та ім'я вводу та виводу відповідно до вашої ситуації.

gdal_rasterize -запис 1 -add -tr 200,0 200,0 -l рядків C: /lines.shp C: /out_lines.tif

Юкка Раконен дав мені підказки у списку розсилки gdal_dev. Я шукав цього буквально роками.

Щодо значень растрових комірок для растерізованих ліній, я не знаю, що представляють ці значення. Мабуть, це не кількість ліній або довжина ліній.

Щільність лінії з gdal_rasterize


3

Використовуючи аналогічний підхід до відповіді від @DPSSpatial, я використовував би плагін QChaining, щоб створити рівномірно розташовані точки вздовж кожного рядка.

Цей плагін генерує точки вздовж лінії, але він не копіює атрибутів, переведених на рядок.

Ось я припускаю WGS84 (4326, градуси Lat / Lon). Напевно, ви хочете зробити це, використовуючи відповідну проекцію в метрах.

  • використовуйте QChainage для отримання точок по лінії, наприклад, кожні 0,05 градуса
  • Буфер цього шару, наприклад, на 0,001 градуса.
  • Зробіть просторове з'єднання ( вектор> Інструменти управління даними> Приєднайте атрибути за місцеположенням ) (використовуючи "Перехрестя"), від буферних точок до початкового рівня рядка. Це дозволить точкам підбирати значення впливу з ліній під ними.
  • Перетворіть цей шар назад у точки, використовуючи вектор> Інструменти геометрії> центроїди полігона

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

Тепер у вас повинно бути щось подібне. Числа вздовж кожного рядка показують значення "вплив".

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

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