我有一堆从FLIR相机获得的jpeg图像。除了那些图像,我还收集了GPS坐标。现在我正在尝试将GPS经度和纬度用于图像的元数据。
我用R编程语言编写了一个程序来查找每个图像相对于时间的GPS位置(当GPS定位时间和相机时间匹配时,我采用了该坐标)。
即,对于特定图像,我有GPSLatitude< - 19.33423和GPSLongitude< - 72.090834
但现在我需要将精确的GPS位置添加到图像中。
我尝试用Exiftool做到这一点。我正在使用Mac osX sierra。在那我安装了exiftool。但现在我不知道如何使用它来更新GPS数据。
任何人都可以帮助我。如果可能,让我知道直接从R编程语言本身更新数据的方法
由于
答案 0 :(得分:4)
使用exiftool添加gps坐标:
exiftool -XMP:GPSLongitude="-84.683333" -XMP:GPSLatitude="10.502117" -GPSLongitudeRef="West" -GPSLatitudeRef="North" photo.jpg
这些值只是从Google地图获取的浮点数。
答案 1 :(得分:2)
exiftool论坛上thread的结果
output <- system(sprintf("exiftool -GPSLatitude=%f -GPSLongitude=%f %s",q,p,aa))
或
output <- system(paste("exiftool -GPSLatitude=",q," -GPSLongitude=",p," ", aa))
答案 2 :(得分:0)
当尝试执行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
...
答案 3 :(得分:0)
为了处理纬度和经度可能的负值,我建议首先导入XMP,然后从XMP复制到EXIF: (现金代码)
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"