Проблема с exiftool и geosync, возможно связанная с переходом на летнее время

Я хотел пометить географией все мои отпускные фотографии с помощью exiftool следующим образом:

exiftool -geotag "*.gpx" \
 -geosync "19:25:42Z@IMG_7882.jpg" \
 -geosync "09:16:34Z@IMG_9798.jpg" \
 -ext .jpg .

где IMG_7802.jpg - это фотография моих компьютерных часов, отображающая 20:25:42 MEZ на 01 марта 2018 года ( = 19: 25: 42 Zulu), и аналогично IMG_9798.jpg - это фотография моих компьютерных часов, отображающая 11:16:34 MESZ 31 марта 2018 года (= 09: 16: 34 Zulu). Я использовал два таких (брекетинга) эталонных изображения, чтобы учесть дрейф (и, действительно, часы камеры набрали 26 секунд в течение этого месяца).

Регулировка прошла успешно для опорных изображений:

$ exiftool -datetimeoriginal -gpsdatetime IMG_7882.jpg 
Date/Time Original              : 2018:03:01 20:25:42
GPS Date/Time                   : 2018:03:01 19:25:42Z
$ exiftool -datetimeoriginal -gpsdatetime IMG_9798.jpg
Date/Time Original              : 2018:03:31 10:17:00
GPS Date/Time                   : 2018:03:31 09:16:34Z

Но для промежуточных изображений вычисленное время GPS значительно отключено, например, примерно на полчаса в следующем примере (время GPS приблизительно 14: 32Z - это то, что я ожидал)

$ exiftool -datetimeoriginal -gpsdatetime IMG_8888.jpg
Date/Time Original              : 2018:03:17 15:32:22
GPS Date/Time                   : 2018:03:17 15:04:13.45312997Z

Соответственно, вычисленные долготы и широты также довольно далеки.

Мое обоснованное предположение состоит в том, что проблема связана с летним временем, которое началось в Германии между двумя эталонными изображениями. По-видимому, exiftool интерпретирует DateTimeOriginal по местному времени (поэтому сначала MEZ = +0100, а затем MESZ = +0200), в то время как часы камеры просто продолжают тикать (примерно со смещением +0100 по всему).

В: Как я могу сказать exiftool - , а не , предположить, что часы камеры (DateTimeOriginal) следуют любым правилам перехода на летнее время?

0
задан 1 April 2018 в 16:54

1 ответ

Да, проблема в конечном счете возникает с DST, переключаясь и того, что DateTimeOriginal интерпретируется как местное время (следовательно подвергающийся изменениям DST). Кажется, существует несколько путей к обходному решению проблема

A) измените зону местного времени

Т.е. измените настройки локали так, чтобы Ваша система была в часовом поясе, который не переключает DST во время временного интервала и затем вызывает exiftool как в OP.

Однако я не рекомендую это. Необходимо было бы также быть осторожными, что выбранный часовой пояс DST меньше не слишком далек или иначе exiftool могло бы быть выключено к целому дню с некоторыми его предположениями. Это кажется то Западноафриканское стандартное время (как используется в Нигерии), работал бы в моей определенной ситуации.

B) Добавьте время зональная информация к DateTimeOriginal сначала

Т.е. первый показ

exiftool '-DateTimeOriginal<$DateTimeOriginal+01:00' -ext .jpg .

поскольку +01:00 был эффективно часовым поясом camara все время. Это, возможно, было желательно так или иначе для предотвращения будущего беспорядка во время, изображения были взяты. С другой стороны мы собираемся добавить однозначное и скорректированное время GPS так или иначе.

Я закончил тем, что делал

C) Использовать -geotime и времена прямой ссылки со спецификацией часового пояса

... как в

exiftool -geotag "*.gpx" \
 -geosync "19:25:42Z@2018:03:01 20:25:42+01:00" \
 -geosync "09:16:34Z@2018:03:31 10:17:00+01:00" \
 '-geotime<${DateTimeOriginal}+01:00' \
 -ext .jpg .

Это говорит exiftool использовать DateTimeOriginal с зоной требуемого времени вместо интерпретируемого как местное время. К сожалению, это только относится ко временам, считанным из изменяемых изображений, не для формы чтения времен ссылочные изображения (даже если Вы изменяете порядок параметра), так, чтобы явные времена (с часовым поясом) должны были использоваться вместо ссылок на файл.


На самом деле, так как моим изображениям refernce уже присвоили корректные времена GPS из первых экспериментов, что я действительно сделал было соединение B и C: Я сделал корректировку, предложенную в "B" только для двух ссылочных изображений:

$ exiftool '-DateTimeOriginal<$DateTimeOriginal+01:00' IMG_7882.jpg IMG_9798.jpg

так, чтобы их DateTimeOriginal данные имели информацию о часовом поясе:

$ exiftool -datetimeoriginal -gpsdatetime IMG_7882.jpg
Date/Time Original              : 2018:03:01 20:25:42.00+01:00
GPS Date/Time                   : 2018:03:01 19:25:42Z
$ exiftool -datetimeoriginal -gpsdatetime IMG_9798.jpg
Date/Time Original              : 2018:03:31 10:17:00.00+01:00
GPS Date/Time                   : 2018:03:31 09:16:34Z

После этого я мог использовать ссылочные изображения их именами файлов

exiftool -geotag "*.gpx" \
 -geosync "IMG_7882.jpg" \
 -geosync "IMG_9798.jpg" \
 '-geotime<${DateTimeOriginal}+01:00' \
 -ext .jpg .

приводит к желаемому результату в течение времен GPS (и следовательно для координат GPS) также для промежуточных изображений:

$ exiftool -datetimeoriginal -gpsdatetime IMG_8888.jpg
Date/Time Original              : 2018:03:17 15:32:22
GPS Date/Time                   : 2018:03:17 14:32:08.114220008Z
0
ответ дан 30 October 2019 в 04:00

Другие вопросы по тегам:

Похожие вопросы: