Linux 使用exiftool将纬度经度(从文件)添加到4000个图像
我有4000个Linux 使用exiftool将纬度经度(从文件)添加到4000个图像,linux,latitude-longitude,exiftool,Linux,Latitude Longitude,Exiftool,我有4000个.jpeg图像文件,我希望使用exiftool向其中添加纬度和经度。我有一个文本文件,其中包含: 第一列=图像文件名从1到4000 第二列=纬度 第三列=经度 如何使用一些脚本向图像添加经度和纬度?我还没有尝试过该脚本,因此显然还有一些优化空间。暂时你可以试试这个 考虑到文件名为坐标的列如问题中所述,我相应地编写了此脚本 #!/bin/bash # Loop for every line in the coordinates file cat coordinates | wh
.jpeg
图像文件,我希望使用exiftool
向其中添加纬度和经度。我有一个文本文件,其中包含:
- 第一列=图像文件名从
1
到4000
- 第二列=纬度
- 第三列=经度
如何使用一些脚本向图像添加经度和纬度?我还没有尝试过该脚本,因此显然还有一些优化空间。暂时你可以试试这个
考虑到文件名为坐标
的列如问题中所述,我相应地编写了此脚本
#!/bin/bash
# Loop for every line in the coordinates file
cat coordinates | while IFS= read -r line
do
# Get Image name from Ist, Latitude from 2nd & Longitude from 3rd column.
IMAGE=`echo "$line" | awk '{print $1}'`
LAT=`echo "$line" | awk '{print $2}'`
LONG=`echo "$line" | awk '{print $3}'`
# Assign variables values into "exiftool" command
exiftool -exif:gpslatitude="$LAT" -exif:gpslatituderef=S -exif:gpdlongitude="$LONG" -exif:gpslongituderef=E "$IMAGE"
done
一些需要考虑的问题:
如果exif
标记不适用于您,您可以使用XMP
标记。在这种情况下,命令行如下所示:
exiftool -XMP:GPSLatitude="$LAT" -XMP:GPSLongitude="$LONG" -GPSLatitudeRef="South" -GPSLongitudeRef="East" "$IMAGE"
如果您没有gpsLatituteRef
和gpsLogitudeRef
位置的参考值
,只需使用-p
,即可正常运行:
exiftool -XMP:GPSLatitude="$LAT" -XMP:GPSLongitude="$LONG" -P "$IMAGE"
-p
选项保留并覆盖传递给它的标记的值,忽略其他也需要的标记
如果您希望添加更多或更少的标签,请参阅
请随意添加更多详细信息。到目前为止您尝试了什么?文本文件是CSV文件吗?如果是这样,您可以使用exiftool的-csv
选项,尽管它可能需要对文件的头行进行一些小的修改。堆栈溢出不是一种代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。有几个问题:仅保留文件系统修改日期/时间(FileModifyDate
)。它对任何其他标记都没有影响。如果要设置XMP:GPSLatitude/Longitude
,则无需设置ref值,因为方向参考包含在XMP标记中。最后,不必硬编码方向引用,只需将$LAT
和$LONG
变量分配给它们即可。Exiftool将找出参考方向并适当地更新它们。我已经按照上面所说的做了,然后运行命令Exiftool-l*jpg,我能够在元数据中看到lat和long。但在ArcGIS中上载照片时,它不会在地图上显示位置。@StarGeekIn如果是这样,可能是文件格式或编码或GIS所需的问题。我建议你就你面临的问题发表一个问题