如何在Mac上使用Exiftool添加GPS纬度和经度(如何编辑JPEG的元数据)

3
我有一堆来自FLIR相机的JPEG图像。除了这些图像外,我还收集了GPS坐标。现在,我想将GPS纬度和经度添加到图像的元数据中。
我用R编程语言编写了一个程序,以查找每个图像的GPS位置(只要GPS位置时间与相机时间匹配,我就取那些坐标)。
例如,对于特定图像,我有GPSLatitude <- 19.33423和GPSLongitude <- 72.090834。
但是,现在我需要向图像添加确切的GPS位置。
我尝试使用Exiftool来实现。我使用的是Mac OS X Sierra。在那里,我安装了exiftool。但是现在我不知道如何使用它来更新GPS数据。
有人能帮忙吗?如果可能的话,请告诉我如何直接从R编程语言中更新数据。
谢谢。

其他需要的信息,这里是 Exiftool 论坛上 OP 的帖子链接:http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,8029.0.html。 - StarGeek
4个回答

8

使用exiftool添加GPS坐标:

exiftool -XMP:GPSLongitude="-84.683333"  -XMP:GPSLatitude="10.502117"  -GPSLongitudeRef="West" -GPSLatitudeRef="North" photo.jpg

这些值只是来自谷歌地图等的浮点数。


1
这在我的exiftool 10.10上没有起作用。exiftool说它更新了文件,但实际上只改变了修改时间。 - matt
1
为什么要使用“-XMP:GPS…”而不是“-EXIF:GPS…”? - Michael
2
使用-EXIF:GPS版本会更加便携,因为不是所有程序都支持-XMP:GPS版本。 - Sergey

4

来自Exiftool论坛上线程的结果

output <- system(sprintf("exiftool -GPSLatitude=%f -GPSLongitude=%f %s",q,p,aa))
或者
output <- system(paste("exiftool -GPSLatitude=",q," -GPSLongitude=",p," ", aa))


2
为了处理纬度和经度的负值,建议先导入XMP,然后从XMP复制到EXIF: (bash代码)
exiftool -XMP:GPSLatitude="$latitude" -XMP:GPSLongitude="$longitude"  "$image"
exiftool "-gps:all<xmp-exif:all" "-gps:all<composite:all" "-gpsdatestamp<gpsdatetime" "-gpstimestamp<gpsdatetime" "$image"
exiftool -EXIF:GPSAltitude="$altitude" -EXIF:GPSAltitudeRef#="0" -EXIF:GPSMapDatum='WGS-84' "$image"


1
尝试按照Casto Salobreña的建议进行类似操作时,我遇到了以下错误:
$ exiftool -XMP:GPSLatitude=1.2843265 -XMP:GPSLongitude=36.8798949 -GPSLatitudeRef=South -GPSLongitudeRef=East -P test.jpeg 
Warning: Truncated PreviewIFD directory. IFD dropped. - test.jpeg
Error: [minor] Bad PreviewIFD directory - test.jpeg
    0 image files updated
    1 files weren't updated due to errors

为了解决这个问题,我已经删除了Ref选项,并通过将South方向(或可能需要对West进行相同的更改)更改为负数来进行修改。
$ exiftool -XMP:GPSLatitude=-1.2843265 -XMP:GPSLongitude=36.8798949 -P test.jpeg 
    1 image files updated

现在我正在测试:

$ exiftool -l test.jpeg
...
GPS Position
    1 deg 17' 3.58" S, 36 deg 52' 47.62" E
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接