?

Log in

No account? Create an account

August 28th, 2018

masked, myself

Фото-гео-локация

В процессе разборки фотоархивов, затянувшегося на годы, у меня возникла интересная идея. В большинстве фотографий отсутствует привязка геолокации - мои фотоаппараты (кроме панасоника) геотеги ставить не умели. Зато я всегда с собой таскаю андроидный телефон, в котором крутится Google Maps, который постоянно записывает моё местоположение. Так вот, вместо того чтобы судиться с Гуглём, надо просто вытянуть Google Location History и прописать в фотки гео-теги в EXIF'ы согласно временным отметкам.

Разумеется, оказалось что это ни фига не оригинальная идея. Да и реализация в принципе несложная - скачать полную историю перемещений через Google Takeout, скриптом вытянуть из EXIF время фотографии, взять координаты из истории, прописать координаты обратно.

Как всегда, программистский дьявол - он в деталях реализации. Во-первых, история перемещений - здоровая, многомегабайтный JSON обработать - нетривиально. Во-вторых - таймзоны, одна из самых адских тонкостей в прикладном программизме. Где-то в фотках время местное, где-то домашнее, где-то - совсем левое. Так что время всё равно придётся подкручивать руками. В-третьих, в истории не так много опорных точек, так что координаты надо будет как-то интерполировать.

В ранне-студенческом возрасте я бы конечно с радостью засел за разработку. Но в своём перезрелом возрасте - хочется уже просто найти готовый инструмент и побыстрее решить свою задачу. К счастью, обнаружилось что старый добрый exiftool отлично поддерживает импорт GPS-треков в том числе из формата KML.

Получается, следующий workflow должен сделать именно то что надо:

  1. Экспортируем KML-файл на время путешествия из Google
  2. Пробуем сделать привязку к одной фотке:
    exiftool -geotag=track.kml -geosync=-4:00:00 ./photos/DSCN0001.jpg
  3. Проверяем - угадал ли geosync, если нет - то обратно на шаг #2
  4. Прогоняем привязку всех фоток:
    exiftool -geotag=track.kml -geosync=./photos/DSCN0001.jpg ./photos/*

Мне кажется, должно сработать...

Tags: , ,
promo recoder august 1, 2018 12:09 36
Buy for 100 tokens
Не так давно Фейсбук научил меня ещё одной классификации людей, в дополнение к стратегам и тактикам, интерналистам и экстерналистам, и разным морально-политическим приверженцам. Впервые эта классификация описана ещё двадцать лет назад Картером и Сэнджером в книге The Programmer's Stone…