Linux 使用exiftool将纬度经度(从文件)添加到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

我有4000个
.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所需的问题。我建议你就你面临的问题发表一个问题