Як групово імпортувати gpx файли до QGIS та об'єднатись в єдиний файл форми?


11

Я хочу створити власну «теплову карту» всіх велосипедних прогулянок, які я записав за допомогою програми Strava в QGIS.

У мене понад 450 окремих gpx-файлів, і я хотів би об'єднати шари точок треку в один єдиний файл форми, щоб я міг приєднати їх до полігонового шару і символізувати приєднання Join_count, як видно в цьому прикладі:

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

Деякі з моїх gpx-файлів містять 'ride' у назві файлу, а інші 'run', я хотів би відфільтрувати файли, залишивши лише ті, які мають 'ride'.

Як я можу досягти цього ефективно за допомогою QGIS?

Відповіді:


13

Використовуйте інструмент командного рядка ogr2ogr, який розповсюджується за допомогою QGIS. У Windows відкрийте оболонку OSGeo4W з групи програм QGIS та введіть

for %p in (path_to_gpx_files\*ride*.gpx) do ogr2ogr path_for_output\gpx.shp -append %p track_points -fieldTypeToString DateTime

Еквівалентна команда в оболонці Unix буде

for file in path_to_gpx_files/*ride*.gpx; do ogr2ogr path_for_output/gpx.shp -append "${file}" track_points -fieldTypeToString DateTime; done

Переконайтесь, що вихідний файл (gpx.shp) раніше не існував, тоді ogr2ogr створить один єдиний формфайл з усіх gpx-файлів із "їздою" в ньому. На сайті http://www.gdal.org/drv_gpx.html є деякі примітки щодо драйвера ogr gpx .


3

Я знаю, що це пізно, але одного дня це може допомогти іншим. Є плагін QGIS під назвою Batch GPS Importer, про який я пояснив більше у цій відповіді .

Остання версія може фільтрувати файли за допомогою префікса та тексту суфіксу. Імпортер пакетного GPS

Я сподіваюся, що це допомагає.


2

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

Ви можете поглянути на ogr2ogr . Це швейцарський армійський ніж із перетворення геофайлів, він перетворить майже будь-який геоформат у будь-який інший сумісний (векторний / растровий) геоформат.

дзвінок ogr2ogr виглядає приблизно так

ogr2ogr -f "ESRI Shapefile" example.shp example.gpx

Ви можете викликати його програмно (наприклад, із скрипту python, .bat-файлу або bash-скрипту), щоб переглядати кожен пробіг * .gpx і перетворити його, наприклад, у файл файлів.

Сказавши це, я не міг змусити це працювати над кількома випадковими слідами gpx, завантаженими з OpenStreetMap (ogrinfo їм теж не сподобалось, хоча QGIS їх завантажив). Але мені вдалося відкрити файли GPX з іншого джерела.

Спробуйте запустити

ogrinfo example.gpx tracks

і подивіться, чи отримаєте ви корисні результати. Якщо ви отримаєте список драйверів, це не вдалося.

Ваш пробіг може відрізнятися, варто пройти.

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

Для злиття ви можете (за допомогою коду) скопіювати всі файли форм у єдиний каталог, а потім скористатись вектором> Інструменти управління даними> Об’єднати файли форми в одну

Якщо вам подобається проілюстрований стиль hexbin, можливо, вам захочеться переглянути плагін MMQgis . Це дозволяє створити шестикутну сітку, яку потім можна використовувати для аналізу "точок у багатокутнику".


4
У Windows я відкрив оболонку OSGeo4W з програмної групи QGIS і спробував for %p in (C:\Data\*.gpx) do ogr2ogr gpx.shp -append %p track_points -fieldTypeToString DateTime. gpx.shp не повинен існувати раніше, тоді ogr2ogr створює єдиний файл форми.
Redoute

1
Ви повинні написати це як відповідь @Redoute!
Алекс Лейт

@Redoute Так, будь ласка, можете ви написати як повну відповідь? Спасибі
MFBawls

1
переклад чудової пропозиції @Redoute для користувачів Linux, це працює як принадність ...#!/bin/bash for i in $( ls ./*.gpx ); do ogr2ogr gpx.shp -append $i track_points -fieldTypeToString DateTime done
Стівен Кей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.