У меня есть более 50 файлов GPX, которые я хотел бы «пакетно загрузить» в базу данных PostGIS. Все данные track_points будут загружены в таблицу «track_points» (с типичными полями GPS, такими как широта, долгота, высота, время и т. Д.), А данные треков будут загружены в аналогичную таблицу геометрии линий «дорожки», разработанную соответствующим образом.
Я бы предпочел автоматизировать этот процесс, чтобы при получении следующих 50+ мне не приходилось вручную вводить данные в базу данных. Я лично предпочитаю использовать Python для написания сценариев такого рода процессов, но любые предложения приветствуются.
Мой общий мыслительный процесс заключается в следующем:
- Получить список файлов GPX для обработки (достаточно просто с помощью стандартных инструментов Python)
- Проходить по каждому файлу GPX и извлекать / преобразовывать необходимые данные в формат PostGIS
- Вставьте данные GPS в PostGIS с помощью библиотеки Python psycopg
Я думаю, что могу справиться с шагами 1 и 3, но мне интересно, есть ли относительно простой метод / библиотека, которая конвертирует данные (track и track_points) в формат PostGIS, или просто табличную форму, которую я мог бы вставить в уже созданную таблицу ,
Я уже прочитал « Есть ли хорошая библиотека анализа GPS-треков? », « Как создать географическую базу данных журналов GPS? » И « Как извлечь данные .gpx с помощью python », и заглянул в GDAL / OGR. и FWTools Python привязки, но не хочу изобретать велосипед, у кого-то уже есть хороший метод для этого.
CopyLayer
. Я добавил имя из файла GPX в качестве префикса, поэтому таблицы должны быть такими же уникальными, как и имена входных файлов. Опция "append" от ogr2ogr - хитрая задача, которую я не знаю, как сделать в данный момент.После дополнительных исследований я написал свой собственный скрипт Python gpx2postgis.py, который автоматизирует процесс добавления функций GPX к существующим таблицам. Скрипт использует часть работы, предоставленной @Mike T выше, и другие. Я добавил его в GitHub, если вы хотите скачать или внести свой вклад. Он создает новые схемы таблиц (при необходимости) на основе входных подуровней GPX и добавляет функции к этим таблицам.
Хотя это и не было решением Python, я сталкивался с подобным вопросом о StackOverflow, который заставил меня понять, что я могу просто просмотреть все мои файлы GPX и вызвать командную строку ogr2ogr, чтобы обработать их, используя типы объектов GPX .
источник