Руководство по GPS метаданным в фотографиях (ч. 3): Построение треков движения на основе группы фотографий
Оглавление: Руководство по GPS метаданным в фотографиях
1. Географические координаты и их извлечение из файлов
2. Как изменить GPS и другие метаданные в фотографии
3. Построение треков движения на основе группы фотографий
3.1 Реконструкция передвижений по фотографиям
3.3 Как создать файл GPX из фотографий
Реконструкция передвижений по фотографиям
Если у фотографий есть GPS метки, то расставив на карте эти расположения в хронологическом порядке, можно увидеть маршрут перемещения. Это можно использовать для реконструкции передвижения или для любых целей (посчитать количество пройденных километров, среднюю скорость и так далее).
Конечно, расставлять вручную метки на карте утомительно и в этой статье мы поговорим о программах, которые позволяют автоматизировать процесс построения маршрута перемещения на основе GPS данных из серии фотографий. Мы рассмотрим сразу четыре программы, две из которых являются кроссплатформенными и работают, в том числе, и на Windows.
Кстати, владельцам зеркальных камер без GPS на заметку: если в вашем фотоаппарате нет GPS чипа, это не означает, что на ваших фотографиях не может быть GPS меток. Вы можете использовать метод под названием GPS корреляция. Он обратный тому, который будет описан в этой статье. Суть его в следующем: при съёмке на фотоаппарат без GPS, возьмите с собой мобильный телефон, на нём есть GPS. И во время съёмки запустите запись маршрута — вы без труда найдёте бесплатные программы, которые это умеют, главное, чтобы она могла сохранять записанные треки в формате GPX. Затем используйте программу GPS Correlate. У каждой точки трека есть две характеристики: 1) время и 2) координата. Для каждого снимка также известно время его создания (хранится в метаинформации и свойствах файла). Программа смотрим, в какое время был сделан снимок, затем смотрит координаты той точки трека, которая соответствует этому времени, а затем просто записывает данные координаты в метаданные фотоснимка. На мой взгляд, отличная идея.
Формат записи треков GPX
Познакомимся с GPX цитатой из Википедии.
GPX (GPS eXchange Format) — это текстовый формат хранения и обмена данными GPS, основанный на XML. GPX является свободным форматом и может быть использован без каких либо лицензионных отчислений.
Формат позволяет хранить информацию об ориентирах (waypoints), маршрутах (routes) и треках (tracklogs). Для каждой точки хранятся её долгота, широта и высота над уровнем моря (если имеется информация о высоте). Для точек трека хранится также время прохождения точки. XML-схема предусматривает также хранение произвольной пользовательской информации по каждой точке, обязательными являются только долгота и широта. Примером пользовательской информации может быть высота местности(ele), скорость, частота пульса(hr), число шагов, темп вращения педалей (каденс)(cad), температура и т. п.
Формат воспринимается многими программами, в том числе Google Earth, Ozi Explorer, Яндекс.Навигатор (официальный список смотрите здесь).
В общем, это текстовый файл примерно с таким содержимым:
Как создать файл GPX из фотографий
Как уже было упомянуто в Википедии, программ, которые понимают GPX, много. И задача в том, чтобы сгенерировать этот файл на основе метаинформации из серии фотографий. К счастью, это уже умеет ExifTool и нам достаточно просто указать папку с фотографиями.
Чтобы создать файл маршрута GPX из фотографий, нужно запустить команду следующего вида:
exiftool -fileOrder DateTimeOriginal -p /ПУТЬ/ДО/gpx.fmt -d %Y-%m-%dT%H:%M:%SZ ДИРЕКТОРИЯ > out.gpx
В этой команде:
-fileOrder DateTimeOriginal
Устанавливаем сортировку выводимых данных по времени съёмки фотоснимков. Как бы это не было удивительно, но ExifTool обрабатывает и выводит данные не по дате съёмки, используется сортировка по другому признаку. Что ещё более удивительно, программы по работе с GPX обрабатывают файлы .gpx независимо от дат, указанных для точек, а просто последовательно.
-p /ПУТЬ/ДО/gpx.fmt
Это файл gpx.fmt поставляется вместе с ExifTool. Пользователи Linux могут найти его в своей системе командой
locate gpx.fmt
Например, в Kali Linux путь до этого файла: /usr/share/doc/libimage-exiftool-perl/fmt_files/gpx.fmt
В Arch Linux/BlackArch путь до этого файла: /usr/share/perl-image-exiftool/fmt_files/gpx.fmt
Пользователям Windows, видимо, нужно с сайта ExifTool скачать пакет для Linux и взять файл оттуда.
-d %Y-%m-%dT%H:%M:%SZ
Эта опция устанавливает формат даты и времени в выводимых данных.
ДИРЕКТОРИЯ
Папка с фотографиями, которые вы хотите обработать для составления трека передвижения.
> out.gpx
Сохранение выводимых данных в файл out.gpx
Мой пример генерации файла .gpx.
Перехожу в папку с фотографиями:
cd /mnt/disk_d/Share/TestPics2/
Теперь в качестве директории указываю . (точку), то есть текущий каталог:
exiftool -fileOrder DateTimeOriginal -p /usr/share/perl-image-exiftool/fmt_files/gpx.fmt -d %Y-%m-%dT%H:%M:%SZ . > out.gpx
На скриншоте видно, что обработано 33 изображения, но также в выводе имеются следующие строки:
Warning: [Minor] Tag 'gpsaltitude' not defined - ./20191218_045322.jpg Warning: [Minor] Tag 'gpsaltitude' not defined - ./20191218_060840.jpg …………...
Это не ошибки, а малозначительные предупреждения о том, что для некоторых файлов не определён тег gpsaltitude — возможно, GPS во время съёмки был выключен или какой-то другой сбой во время съёмки. Эти пять фотографий не попали в трек, но там ещё предостаточно снимков для построения маршрута.
Полная запись о точке выглядит примерно так:
<trkpt lat="17.8966666666667" lon="101.658055555556"> <ele>0</ele> <time>2019-12-17T23:27:08Z</time> </trkpt>
В моём файле попались неполные записи вроде таких (отсутствует время):
<trkpt lat="17.8961111111111" lon="101.656388888889"> </trkpt> <trkpt lat="17.8969444444444" lon="101.659722222222"> </trkpt> <trkpt lat="17.8969444444444" lon="101.659722222222"> </trkpt> <trkpt lat="17.8972222222222" lon="101.659444444444"> </trkpt>
В принципе, можно их удалить, но они оказались расставленными в правильном порядке и, следовательно, не испортили построение трека. Видимо, программа взяла время из других свойств файла.
GPXSee
GPXSee — это программа для просмотра и анализа файлов журнала GPS, которая поддерживает все распространённые форматы файлов журнала GPS.
Ключевые особенности:
- Открывает файлы GPX, TCX, FIT, KML, NMEA, IGC, CUP, SIGMA SLF, Suunto SML, LOC, GeoJSON, OziExplorer (PLT, RTE, WPT), Garmin GPI и CSV и файлы JPEG с геотегами.
- Указываемые пользователем онлайн-карты (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles).
- Автономные карты (OziExplorer maps, карты/атласы TrekBuddy, карты Garmin IMG/GMAP и JNX, TwoNav RMaps, изображения GeoTIFF, MBTiles).
- Графики высоты, скорости, пульса, частоты вращения педалей, мощности, температуры и передаточного соотношения/сдвигов.
- Поддержка файлов DEM (SRTM HGT).
- Поддержка файлов POI.
- Печать и экспорт в PNG и PDF.
- Несколько треков в одном окне.
- Полноэкранный режим.
- Поддержка дисплеев и карт HiDPI/Retina.
- Собственный графический интерфейс (Qt) для Windows, Mac OS X и Linux.
- Бесплатное программное обеспечение (лицензия GPLv3 с открытым исходным кодом).
GPXSee разработан как небольшое (без зависимостей, кроме Qt), быстрое и несложное средство просмотра данных GPS/карт, а не полнофункциональное программное обеспечение ГИС. Однако спектр поддерживаемых файлов данных/источников карт относительно богат.
Установка GPXSee в Windows
Скачайте установочный файл со страницы https://sourceforge.net/projects/gpxsee/
Затем установите и запустите как любое другое приложение.
Установка GPXSee в Kali Linux
Для добавления нового репозитория и установки выполните следующие команды:
echo 'deb http://download.opensuse.org/repositories/home:/tumic:/GPXSee/Debian_Testing/ /' | sudo tee /etc/apt/sources.list.d/home:tumic:GPXSee.list curl -fsSL https://download.opensuse.org/repositories/home:tumic:GPXSee/Debian_Testing/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_tumic_GPXSee.gpg > /dev/null sudo apt update sudo apt install gpxsee
Установка GPXSee в Arch Linux, BlackArch и их производные
Достаточно выполнить следующую команду:
sudo pacman -S gpxsee
Установка GPXSee в любой Linux
Для GPXSee собираются бинарные пакеты под все популярные дистрибутивы. Инструкции по установки в другие дистрибутивы Linux и файлы вы найдёте здесь.
Запустите из меню или командой:
gpxsee
Перетащите и бросьте в программу ранее созданный файл out.gpx.
Будет открыта карта с маршрутом передвижения.
Внизу вы увидите график с общей дистанцией пути и перепадами высоты.
Чтобы рассмотреть подробности, можно увеличить масштаб карты.
По умолчанию выбрана карта 4UMaps, которая позволяет масштабировать только до определённого предела. С картой Open Street Map можно масштабировать сильнее.
При изменении карты может потребоваться время прежде чем она будет показана — видимо, это время на скачивание карты.
Зелёными стрелочками в меню можно переходить от точки к точке. Чтобы вновь увидеть весь трек, перейдите к последней точке.
GPX-Viewer
GPX-Viewer — это простой инструмент для визуализации треков и путевых точек, хранящихся в файле gpx.
Установка GPX-Viewer в Debian, Kali Linux, Linux Mint, Ubuntu и их производные:
sudo apt install gpxviewer
Установка GPX-Viewer в Arch Linux, BlackArch и их производные
sudo pacman -S gpx-viewer
Запустите программу из меню или в командной строке:
gpxviewer # Debian и производные gpx-viewer # Arch Linux и производные
Откройте файл out.gpx. Вы увидите трек передвижения.
В левой части окна вы увидите вкладку с подробной статистикой, включающей: расстояние, длительность, время начала и окончания, различные скорости и информацию об изменении высоты.
Внизу показан график. Вы можете выбрать отображение: скорость, высота, дистанция и пр.
На вкладке с детальной информацией вы найдёте кнопку «Воспроизведение».
А на графике можно выбрать соседние точки для их показа на карте.
GottenGeography
GottenGeography — это простое в использовании приложение, которое показывает место съёмки для фотографий по GPS тегам в метаданных, а также маршруты из файлов GPX.
Эта программа очень старая и использует Python 2 и его библиотеки. Поэтому в Kali Linux эту программу запустить не получится.
В Arch Linux (из которого поддержка Python 2 не убрана), программу можно установить одной командой:
sudo pacman -S gottengeography
Программу можно запустить из меню или в командной строке:
gottengeography
Кроме отображения треков передвижения, программа поддерживает показ места съёмки фотографий на карте. По функциям эта программа уступает предыдущим.
Google Earth
Google Планета Земля в Linux (Google Earth Pro) — это 3D-интерфейс для исследования земного шара, местности, улиц, зданий и других планет.
Возможности Google Планета Земля Про:
- Расширенные возможности импорта данных GIS.
- Измерение площади, протяжённости и периметра земельных участков.
- Печать скриншотов в высоком разрешении.
- Создание потрясающих офлайн-фильмов.
Среди многочисленных возможностей этой программы, она также умеет показывать маршруты из GPX файлов. Отличительной особенностью этой программы являются детализированные спутниковые снимки. Предыдущие программы используют свободные карты, которые не всегда такие детализированные.
Для установки пользователям Windows достаточно перейти на официальный сайт и скачать установочный файл.
Для пользователей Linux подготовлена инструкция «Как установить Google Планета Земля в Linux (Google Earth Pro)».
Если вы не видите файл для импорта, то переключитесь на тип файлов «Gps».
При импорте не ставьте галочку «Создать ломанные линии KML».
На больших масштабах треки выглядят похоже с другими программами.
Но при большом приближении можно оценить качество спутниковых снимков.
Заключение
Поскольку между фотографии может быть значительный временной интервал, то нужно понимать, что линии не показывают реальные маршруты передвижения — они просто соединяют две точки, найденные в последовательно сделанных фотоснимках. Чем меньше время между фотоснимками, тем детальнее маршрут передвижения.
Связанные статьи:
- Руководство по GPS метаданным в фотографиях (100%)
- Руководство по GPS метаданным в фотографиях (ч. 1): Географические координаты и их извлечение из файлов (57.6%)
- Массовый поиск геотэгов на сайтах и в локальном хранилище (56.7%)
- Как узнать точное расположение пользователя (53.6%)
- Сервис 3WiFi: пароли от точек доступа Wi-Fi (53.2%)
- Как в Windows создать точку доступа Wi-Fi (мобильный хот-спот) (RANDOM - 0.2%)