¿Cómo puedo geoetiquetar imágenes con datos de ubicación en un archivo CSV?

Tengo algunas carpetas de imágenes .JPG que necesito etiquetar geográficamente. No tengo un archivo .GPX ni nada que me permita usar mis herramientas habituales (Geosetter o Photo Mechanic) para geoetiquetar las imágenes, pero sí tengo un archivo CSV de los nombres de archivo de las imágenes y sus latitudes y longitudes, como este :

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

Estoy en Windows 7. Obviamente, podría editar los metadatos EXIF ​​manualmente y copiar y pegar cada conjunto de coordenadas en las etiquetas EXIF ​​adecuadas, pero esperaba encontrar una manera de hacerlo automáticamente. Encontré la GUI de Exiftool, que tiene la capacidad de copiar metadatos de un archivo XMP al JPG apropiado, pero no sé cómo convertir mi tabla en un conjunto de archivos XMP para aprovechar eso. También podría crear un script por lotes para usar Exiftool desde la línea de comandos, que probablemente pueda resolver por mi cuenta a su debido tiempo, pero para alguien que no maneja datos EXIF ​​regularmente, la gran cantidad de etiquetas, argumentos de la línea de comandos y las opciones disponibles en Exiftool son un poco desalentadores.

Respuestas (1)

ExifTool podría hacer esto, pero el uso de coordenadas negativas podría convertirlo en un procedimiento de dos pasos según las etiquetas que desee usar. Las etiquetas GPS XMP tomarán coordenadas negativas, pero las etiquetas GPS EXIF ​​solo aceptan números positivos y necesitan que la etiqueta de referencia direccional sea precisa.

En primer lugar, tendría que haber algunos cambios en CSV. La primera fila tendría que ser "SourceFile,XMP:GPSLongitude,XMP:GPSLatitude". La fecha no sería necesaria, a menos que necesite cambiar la fecha. La primera columna tendría que ser la ruta completa al archivo fuente. Entonces, su archivo csv tendría que cambiarse a algo como

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

A partir de ahí, el comando sería tan simple como

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

Eso cargará las etiquetas GPS XMP. Si también necesita el conjunto de etiquetas geográficas EXIF, puede seguir con

ExifTool "-GPS:all<XMP-exif:all" "-GPS:GPSLongitudeRef<Composite:GPSLongitudeRef" "-GPS:GPSLatitudeRef<Composite:GPSLatitudeRef"  /directory/path/ 
Esto funcionó perfectamente, ¡gracias! El software que estoy usando aparentemente lee los datos GPS de las etiquetas XMP, así que no probé el último paso, copiando las latitudes y longitudes de las etiquetas XMP a las etiquetas EXIF.
la segunda parte que Dan no usó también funciona perfectamente. ¡Gracias!
Intenté este método pero ningún resultado. Creo que estoy haciendo algo mal i.stack.imgur.com/y80Wy.png i.stack.imgur.com/hZ81V.png ¿Cómo debo escribir el código exactamente?