Introduction
Les fichiers photo regorgent de mĂ©tadonnĂ©es. Cela peut poser de nombreux problĂšmes de vie privĂ©e lorsque ces fichiers sont partagĂ©s largement sur les internets, mais cela peut aussi ĂȘtre utile tant qu’ils sont gardĂ©s dans un cadre restreint.
C’est tout particuliĂšrement le cas des donnĂ©es de gĂ©olocalisation.
Votre smartphone peut (par dĂ©faut ou pas) gĂ©olocaliser l’ensemble des photos (ou vidĂ©os d’ailleurs) qu’il prend. Et cela permet de pouvoir les retrouver facilement sur une carte :

Cependant, lorsque vous prenez des photos avec un appareil photo numĂ©rique, Ă moins que celui-ci ne dispose d’un GPS, vous ne disposerez sans doute pas de la gĂ©olocalisation de vos photos.
Cet article vise à montrer comment lire et modifier les métadonnées associées.
Prérequis
Pour manipuler les mĂ©tadonnĂ©es, nous aurons besoin de l’outil ExifTool.
Le comment
Lire
Voici la commande pour lire les donnĂ©es de gĂ©olocalisation d’une photo :
exiftool -api geolocation "-geolocation*" test.jpg
Ăcrire
Ajouter depuis une ville ou village
exiftool -xmp:iptc:geolocate="paris,fr" test.jpg
Ajouter des coordonnées précises
exiftool -GPSLatitudeRef=N -GPSLatitude=48.85341 -GPSLongitudeRef=E -GPSLongitude=2.3488 photo.jpg
Ou la commande suivante pour Ă©craser le fichier d’origine :
exiftool -overwrite_original -GPSLatitudeRef=N -GPSLatitude=48.85341 -GPSLongitudeRef=E -GPSLongitude=2.3488 photo.jpg
Depuis les métadonnées
Comme il peut ĂȘtre fastidieux d’aller chercher les mĂ©tadonnĂ©es de l’ensemble de ses photos, particulierement lorsque vous souhaitez ajouter les informations pour un album oĂč toutes les photos ne sont pas prises au mĂȘme endroit, il est possible d’utiliser Darktable.
Cet outil de traitement d’image proposer une interface pour ajouter les donnĂ©es de gĂ©olocalisation.
Pour cela,
-
Aller dans la vue carte (en haut Ă droite),

-
et glisser-dĂ©poser les photos Ă l’endroit oĂč vous le souhaitez.

Cependant les donnĂ©es ne sont pas inscrites dans le fichier lui-mĂȘme, mais dans un fichier de mĂ©tadonnĂ©es annexe (.xmp - on retrouve souvent le terme sidecar file sur les internets).
Il faudra donc dans un second temps utiliser exiftool pour modifier les fichiers en allant chercher les informations dans le fichier annexe.
Pour cela, nous faciliter la tĂąche (et simplifier les lignes de commande), nous allons utiliser un fichier d’argument mis Ă disposition par les dĂ©veloppeurs d’exiftool :
#------------------------------------------------------------------------------
# File: xmp2gps.args
#
# Description: Argument file for copying GPS information from XMP to EXIF
#
# Usage: exiftool -tagsFromFile SRCFILE -@ xmp2gps.args DSTFILE
#
# Requires: ExifTool version 10.96 or later
#
# Revisions: 2009/01/09 - P. Harvey Created
# 2018/05/07 - PH Handle GPSDestLatitude/LongitudeRef tags
#
# Notes: 1) Most of the GPS tags are copied by the first argument, but
# the coordinate references and date/time values are stored
# separately in EXIF, so they must be handled separately.
# A bit of magic is employed by ExifTool to extract the date
# and time parts respectively when writing date-only and
# time-only tags with a date/time value.
#
# 2) These arguments will not delete existing GPS tags which are
# missing from the XMP. The GPS tags should be deleted with
# "-gps:all=" first if required.
#------------------------------------------------------------------------------
-GPS:all < XMP-exif:all
-GPS:GPSLatitudeRef < Composite:GPSLatitudeRef
-GPS:GPSLongitudeRef < Composite:GPSLongitudeRef
-GPS:GPSDestLatitudeRef < Composite:GPSDestLatitudeRef
-GPS:GPSDestLongitudeRef < Composite:GPSDestLongitudeRef
-GPS:GPSDateStamp < XMP-exif:GPSDateTime
-GPS:GPSTimeStamp < XMP-exif:GPSDateTime
# end
Il sera donc possible d’utiliser la commande suivante pour copier les donnĂ©es du fichier xmp vers le fichier cible :
exiftool -overwrite_original -tagsFromFile SRCFILE.xmp -@ ~/xmp2gps.args DSTFILE.jpg
Il est également possible de réaliser cette opération pour un répertoire entier :
exiftool -overwrite_original -TagsFromFile %f.JPG.xmp -@ ~/xmp2gps.args -ext JPG .
Depuis une trace GPS [draft]
Il est Ă©galement possible d’importer les mĂ©tadonnĂ©es directement depuis une trace GPS enregistrĂ©e par une montre ou un smartphone.
Je n’ai pas encore expĂ©rimentĂ© cette option.
Cette section sera mise Ă jour dĂšs que cela sera le cas.
Bonus
Par dĂ©faut, exiftool utilise une base de donnĂ©es de villes supĂ©rieure Ă 2000 habitants. Si vous souhaitez qu’il puisse vous indiquer de villes entre 500 et 2000 habitants, il faudra la tĂ©lĂ©charger et ajuster la configuration.
La base de donnĂ©es est disponible sur le site d’exiftool.
$ wget https://exiftool.org/Geolocation500-20241021.zip
$ mv Geolocation500-20241021.zip DESTFOLDER/
$ unzip Geolocation500-20241021.zip
Créer le fichier de configuration :
cp /usr/share/perl-image-exiftool/config_files/example.config ~/.ExifTool_config
Ajuster la configuration en ajoutant la ligne suivante juste avant la fin :
$Image::ExifTool::Geolocation::geoDir = '/PATH/TO/Geolocation500';