我想对所有度假照片进行地理标记exiftool
,如下所示:
exiftool -geotag "*.gpx" \
-geosync "19:25:42Z@IMG_7882.jpg" \
-geosync "09:16:34Z@IMG_9798.jpg" \
-ext .jpg .
其中IMG_7802.jpg是我的计算机时钟的照片,显示2018年3月1日20:25:42 MEZ(= 19:25:42 Zulu),类似地IMG_9798.jpg是我的计算机时钟的照片显示11:16:34 MESZ于2018年3月31日(= 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
来不认为相机时钟(原始日期时间)如下任何夏令时规则?
是的,问题最终出自DST切换,并且事实DateTimeOriginal
被解释为当地时间(因此可能会因DST的变化而改变)。似乎有几种方法可以解决此问题
即,更改语言环境设置,以使您的系统所在的时区不会在该时间间隔内切换DST,然后exiftool
像在OP中一样进行调用。
但是,我不建议这样做。您还必须注意,所选的无DST时区的距离不会太远,否则exiftool
可能会由于猜测的缘故而整整整整一天地离开。在我的特定情况下,西非时间(在尼日利亚使用)似乎可以正常工作。
DateTimeOriginal
第一即第一次运行
exiftool '-DateTimeOriginal<$DateTimeOriginal+01:00' -ext .jpg .
因为+01:00一直以来都是camara的时区。无论如何,这样做可能是可取的,以防止将来对拍摄图像的时间产生混淆。再说一次,无论如何,我们将要添加明确且已调整的GPS时间。
我最终做了
-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
指定的时区,而不是解释为本地时间。不幸的是,这仅适用于从修改后的图像读取的时间,不适用于从参考图像读取的时间(即使更改了参数顺序),因此必须使用显式时间(带有时区)代替文件参考。
实际上,由于从第一个实验中我的参照图像已经被分配了正确的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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句