linux - 使用 exiftool 将纬度-经度(从文件)添加到 4000 个图像

标签 linux latitude-longitude exiftool

我有 4000 个 .jpeg 图像文件,我希望使用 exiftool 向其中添加纬度和经度。我有一个文本文件,其中包含:

  • 第一列 = 图像文件名按顺序从 14000
  • 第二列 = 纬度
  • 第三列 = 经度

如何使用某些脚本向图像添加经度和纬度?

最佳答案

我还没有尝试过这个脚本,所以显然还有一些优化的空间。暂时你可以试试这个。

考虑到名为坐标的文件具有问题中描述的列,我相应地编写了此脚本。

#!/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

需要考虑的一些要点:

  1. 如果 exif 标记不适合您,您可以使用 XMP 标记。在这种情况下,命令行将如下所示:

    exiftool -XMP:GPSLatitude="$LAT" -XMP:GPSLongitude="$LONG"  -GPSLatitudeRef="South" -GPSLongitudeRef="East" "$IMAGE"
    
  2. 如果您没有 GPSLatitudeRefGPSLongitudeRef 位置的引用值,只需使用 -P,它应该可以正常运行:

    exiftool -XMP:GPSLatitude="$LAT" -XMP:GPSLongitude="$LONG" -P "$IMAGE"
    

    -P 选项保留并覆盖传递给它的标记的值,忽略还需要的其余标记。

  3. 如果您想添加更多或更少的标签,请参阅 GPS Tags

欢迎添加更多详细信息。

关于linux - 使用 exiftool 将纬度-经度(从文件)添加到 4000 个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50540470/

相关文章:

java - 如何测量距离并根据 Java 中的两个纬度+经度点创建边界框?

Python:从图像中删除 Exif 信息

iOS、EXIF 和相机型号名称

amazon-web-services - AWS lambda : How to use tools that must be installed first in linux?

sql - 如何使用PostgreSQL查询将位置数据转换为经度和海拔高度?

php - 从 XY 图像计算纬度和经度

linux - Awk 与 Awk + ​​cut 与 bash

linux - 每当运行不同的程序时,如何使 bash 脚本运行?

java - 应用程序空闲时意味着什么

linux - 如何使静态链接的 ELF 文件加载 LD_PRELOAD .so