Как я могу геотегировать изображения с данными о местоположении в файле CSV?

У меня есть несколько папок с изображениями .JPG, которые мне нужно геотегировать. У меня нет файла .GPX или чего-либо еще, что позволило бы мне использовать мои обычные инструменты (Geosetter или Photo Mechanic) для геотегирования изображений, но у меня есть файл CSV с именами файлов изображений и их широтой/долготой, например :

Date,File_name,Long,Lat
20150317,IMG_3672.JPG,-93.6325489,35.39918169
20150317,IMG_3673.JPG,-93.6322368,35.39960017
20150317,IMG_3674.JPG,-93.6322159,35.39984365
20150317,IMG_3675.JPG,-93.6322203,35.39991498

У меня Windows 7. Очевидно, я мог бы редактировать метаданные EXIF ​​вручную, копировать и вставлять каждый набор координат в соответствующие теги EXIF, но я надеялся найти способ сделать это автоматически. Я нашел графический интерфейс Exiftool, который имеет возможность копировать метаданные из файла XMP в соответствующий JPG, но я не знаю, как поместить мою таблицу в набор файлов XMP, чтобы воспользоваться этим. Я также мог бы создать пакетный скрипт для использования Exiftool из командной строки, что я, вероятно, смогу понять самостоятельно в свое время, но для тех, кто не имеет дело с данными EXIF ​​регулярно, огромное количество тегов, аргументы командной строки и опции, доступные в Exiftool, немного пугают.

Ответы (1)

ExifTool может сделать это, но использование отрицательных координат может сделать эту процедуру двухэтапной в зависимости от того, какие теги вы хотите использовать. GPS-теги XMP будут принимать отрицательные координаты, но GPS-теги EXIF ​​​​принимают только положительные числа и требуют, чтобы тег направления был точным.

Во-первых, должны быть некоторые изменения в CSV. Первая строка должна быть "SourceFile,XMP:GPSLongitude,XMP:GPSLatitude". Дата не потребуется, если только вам не нужно изменить дату. Первый столбец должен быть полным путем к исходному файлу. Таким образом, ваш файл csv должен быть изменен на что-то вроде

SourceFile,XMP:GPSLongitude,XMP:GPSLatitude
C:/full/path/to/IMG_3672.JPG,-93.6325489,35.39918169
C:/full/path/to/IMG_3673.JPG,-93.6322368,35.39960017
C:/full/path/to/IMG_3674.JPG,-93.6322159,35.39984365
C:/full/path/to/IMG_3675.JPG,-93.6322203,35.39991498

Оттуда команда будет такой же простой, как

ExifTool -csv="/path/to/csvfile.csv" /directory/path/

Это загрузит теги GPS XMP. Если вам также нужны геотеги EXIF, вы можете продолжить с

ExifTool "-GPS:all<XMP-exif:all" "-GPS:GPSLongitudeRef<Composite:GPSLongitudeRef" "-GPS:GPSLatitudeRef<Composite:GPSLatitudeRef"  /directory/path/ 
Это сработало отлично, спасибо! Программное обеспечение, которое я использую, по-видимому, считывает данные GPS из тегов XMP, поэтому я не проверял последний шаг, копируя широту/долготу из тегов XMP в теги EXIF.
вторая часть, которую Дэн не использовал, тоже работает отлично. Спасибо!
Я попробовал этот метод, но безрезультатно. Я думаю, что делаю что-то не так i.stack.imgur.com/y80Wy.png i.stack.imgur.com/hZ81V.png Как именно мне писать код?