recoder: (Default)
recoder ([personal profile] recoder) wrote2018-08-28 08:43 am
Entry tags:

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

В процессе разборки фотоархивов, затянувшегося на годы, у меня возникла интересная идея. В большинстве фотографий отсутствует привязка геолокации - мои фотоаппараты (кроме панасоника) геотеги ставить не умели. Зато я всегда с собой таскаю андроидный телефон, в котором крутится 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/*

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

[identity profile] greenfinch3.livejournal.com 2018-08-28 06:52 pm (UTC)(link)
Ключевое слово - geosetter.

[identity profile] russuv.livejournal.com 2018-08-29 03:45 am (UTC)(link)
а зачем?

[identity profile] russuv.livejournal.com 2018-08-30 02:15 am (UTC)(link)
зачем заморачиваться?
у меня сто тысяч миллионов фоток без геолокации.
но я могу по карте примерно ткнуть
- снято где то здесь !

[identity profile] russuv.livejournal.com 2018-08-31 02:14 am (UTC)(link)
"где то в норвегии" это уже достаточно точная ГПС позиция ;))

[identity profile] sigizmund.livejournal.com 2018-08-31 10:02 pm (UTC)(link)
Или загрузи все на Google Photos и они это все сделают за тебя. И с таймзонами ;)

[identity profile] sigizmund.livejournal.com 2018-09-01 07:36 am (UTC)(link)
Не сразу, он в бэкграунде считает потом насколько я понял