Géolocalisation avec gpscorrelate

Géolocaliser ses photos est un truc amusant, cela permet d'afficher sur une carte le lieu où elles ont été prises. Dans nos albums photos par exemple, on peut voir la carte en cliquant sur l'icône représentant une mappemonde dans la barre d'outil en haut à droite.

Géolocalisation

Un des (nombreux) avantages de notre solution Piwigo (associé au plugin RV Maps & Earth) par rapport à PicasaWeb est de pouvoir utiliser les tags de géolocalisation contenus dans les données exif. Ainsi plus besoin de positionner les photos une par une sur une carte, il suffit :

  • d'une trace gps
  • du logiciel gpscorrelate
  • d'un peu d'organisation

Sur le terrain :

La première chose à faire est évidement de prendre une trace de sa promenade. La procédure dépendra du matériel utilisé (gps, smartphone...), sur mon Garmin il suffit d'appeler le menu Traces, de positionner le bouton radio sur On pour démarrer, sur Off pour terminer et sur le bouton Svgder pour l'enregistrer. Dans les réglages j'ai choisi de prendre un point toutes les 30 secondes.

Garmin

Dans le même temps il peut être intéressant de prendre immédiatement une photo : cela permettra par la suite de caler les dates/heures des photos sur celles de la trace (voir l'option Photo Offset).

À la maison

Récupérer les photos et la trace gps sur son ordinateur. La trace doit être au format gpx, si ce n'est pas le cas vous pouvez la convertir avec gpsbabel, installable depuis les dépôts community (archlinux) et universe (ubuntu).

Lançons maintenant gpscorrelate. Ce programme existe en 2 versions, ligne de commande et interface graphique, installés par le même paquet du dépôt AUR (archlinux) ou 2 paquets distinct (gpscorrelate et gpscorrelate-gui, dépôt universe) pour Ubuntu. Désolé pour les anglophobes, ce logiciel n'est pas traduit. Voici une capture d'écran de la version graphique.

gpscorrelate-gui

Principe : le fichier trace contient une suite de coordonnées latitude - longitude horodatées. Par exemple :

<trkpt lat="45.934590" lon="6.054540">
<ele>540.368</ele>
<time>2012-09-30T14:51:16Z</time>
</trkpt>

On reconnaît ici un format de balisage xml. La première ligne indique les coordonnées proprement dites (en degrés décimaux), la deuxième l'altitude (en mètres), la troisième la date et l'heure et la quatrième la fin du point de trace.

Deux points importants sur lesquels nous reviendrons:

  • Les coordonnées sont normalement indiquées selon le système WGS 84, peu importe la manière dont est réglé le gps. Si vous êtes en Suède et utilisez le SWEREF 99, ou en Suisse avec le CH1903, la trace sera quand même en WGS 84.
  • L'heure est donnée en GMT, alors que votre appareil photo est certainement réglé en fonction de l'heure locale (GMT + 2 l'été en France, GMT +1 l'hiver)

Le panneau de gauche comporte plusieurs cadres.

  • Dans le premier vous pouvez ajouter (add...) ou enlever (remove) des photos.
  • Dans le second vous choisirez votre fichier trace (au format gpx)
  • Le troisième permet le réglage des options (détail ci-dessous).
  • Le quatrième contient le bouton pour lancer la corrélation
  • Le cinquième permet inversement de supprimer les balises de géolocalisation des données exif des photos sélectionnées.

Revenons sur le troisième panneau, celui des options :

  • Interpolate : permet de préciser le mode de calcul des coordonnées. S'il est coché (valeur par défaut) celle-ci seront interpolées, c'est à dire calculées en fonction des deux points situés avant et après. Sinon elles prendront la valeur du point le plus proche dans le temps.
  • Don't Write : calculer les coordonnées mais ne pas les écrire dans les données exif
  • Don't change mtime : si coché la mise à jour des données exif n’entraînera pas de mise à jour des dates de modification des fichiers jpeg.
  • Between segments : s'il vous arrive d'éteindre votre GPS en trace on, ou de perdre le signal, ou même d’arrêter la trace pendant un temps, la reprise de l'écriture se fera dans un nouveau segment compris entre des balise <trackseg> et </trackseg>. L'option Between segments, si elle est cochée, permet de calculer l'interpolation entre deux points de deux segments différents.
  • Write DD MM SS.SS : écriture des coordonnées en Degré - Minutes - Secondes.décimales si coché (valeur par défaut) ou en Degré - Minutes.décimales si décoché.
  • Max Time Gap : écart de temps par rapport à un point de la trace au delà duquel aucune interpolation ne sera faite. 0 = pas de maximum (valeur par défaut)
  • Time Zone : différence entre l'heure locale (indiquée sur les données exif des photos) et l'heure GMT. Par exemple +2:00 pour l'heure d'été d'Europe centrale.
  • Photo Offset : il se peut que, outre l'écart normal de zone horaire, il y ait un décalage entre l'horloge de l'appareil photo et celle du GPS, ce qui peut entraîner des erreur de géolocalisation. D'où l’intérêt d'une photo témoin correspondant au début de la trace du GPS. Éditez votre fichier gpx et recherchez la balise <time> à l'intérieur du premier bloc <trackpt>. Corrigez cette valeur du décalage horaire correspondant à votre zone (voir ci-dessus) et calculez l'écart en secondes avec le tag Date Heure originel des données exif de la photo. C'est cet écart qu'il faudra porter ici. Exemple : <time>2012-10-06T10:07:34Z</time> dans le fichier gpx et 06/10/2012 12:06:38 dans les données exif de la photo. Il faut donc indiquer +56 dans Photo Offset pour faire correspondre les enregistrements.
  • GPS Datum : sauf si vous savez ce que vous faites, laissez WGS 84 (voir plus haut)

Sur un site photos Piwigo

Il faut d'abord installer et activer le plugin RV Maps & Earth. Dans la page de configuration il est possible de cocher la case "Automatically sync from exif" ce qui permettra de prendre en compte la géolocalisation lors de l'ajout de nouvelles photos. Ou de synchroniser manuellement, au global ou album par album.

Vus : 687
Publié par Vincent Gay : 38