Journal Géolocalisation de photos

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
35
16
jan.
2013
Ce journal a été promu en dépêche : Géolocalisation de photos.

Sommaire

Chers linuxfriens

comme beaucoup d'entre vous, je suppose, je suis photographe amateur. Sévissant essentiellement en milieu naturel (montagne pour l'essentiel), j'aime que mes photos soient géolocalisées, c'est-à-dire contiennent latitude et longitude dans les données exif. Ceci me permet de voir leur position sur une carte dans mes albums sous Piwigo.

Pour géolocaliser ses photos, il y a 3 solutions :

  • disposer d'un APN (appareil photo numérique) avec GPS intégré. Ce n'est pas mon cas.
  • prendre une trace de sa randonnée avec un GPS et la rapprocher de ses photos en utilisant l'horodatage. C'est ce que j'utilise le plus fréquemment.
  • faire appel à sa mémoire et à une cartographie en ligne pour copier les coordonnées. Quand on a oublié le GPS, qu'on n'a plus de pile ou tout simplement pour les photos d'intérieur.

Corrélation données GPS - photos

Pour taguer à partir de données GPS, il existe plusieurs programmes :

  • Digikam, (lourd, 3 plombes pour charger, pas la patience…)
  • Geotag, écrit en java, bien complet…
  • GPicSync, pas dans les dépôts arch, pas testé
  • GPSCorrelate, que je voudrais vous présenter ici.
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 10 secondes.

Trace sur un GPS 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).

Voyons maintenant gpscorrelate. Ce programme existe en 2 versions, ligne de commande et interface graphique, installées par le même paquet du dépôt AUR (archlinux) ou 2 paquets distincts (gpscorrelate et gpscorrelate-gui, dépôt universe) pour Ubuntu.

gpscorrelate est l'œuvre de freefoote, aka Daniel Foote. La première version date de 2005 et la version actuelle est la 1.6.1.

Dépendances :

  • GTK+ 2.0
  • libxml2
  • Exiv2

Documentation :

Daniel Foote a lâché récemment le projet et c'est Dan Fandrich (dan à coneharvesters point com) qui a repris le développement depuis l'été dernier. Sur ma proposition, il envisage son internationalisation et je viens de finir la traduction française.

Si quelqu'un est volontaire pour une autre langue, le fichier gpscorrelate.pot est ici (traduire la doc est également une bonne idée). Renvoyer le fichier traduit directement à Dan (merci de me mettre en copie, vgay à vintherine point org). Pour les néophytes en traduction (s'il y en a ici…), voir poedit.

Voici une capture d'écran de l'interface graphique :

GPSCorrelate-Gui

Géolocalisation a posteriori

Pour une géolocalisation a posteriori, on trouvera également de nombreuses solutions. Mais aucune ne me satisfait vraiment et j'ai préféré développer un petit script en bash, que j'ai intégré dans mes navigateurs de fichier (Nautilus, Nemo ou Thunar) et surtout dans ma visionneuse d'images (gthumb).

Le script

Disponible ici sous licence WTFPL.
Ne vous moquez pas de mon code, je ne suis qu'un simple utilisateur et pas un programmeur !
Présentation sur mon blog ici et .

Intégration graphique

  • Nautilus : lien dans ~/gnome2/nautilus-scripts/
  • Nemo : lien dans ~/gnome2/nemo-scripts/
  • Thunar : action personnalisée
  • GThumb : Outil -> Personnaliser -> ajouter une commande
  • Dolphin : pfff… je sais qu'il faut créer un fichier.desktop quelque part, mais je n'ai pas trouvé où.
Principe
  • Pointer son navigateur sur un site de cartographie en ligne (voir liste ci-dessous)
  • Sélectionner les coordonnées du point (latitudes et longitudes, séparées par une virgule) avec la souris. On peut sélectionner toute la ligne (triple clic) puisque le texte inutile sera supprimé par le script. Pas besoin de CTRL-C, sélectionner suffit.
  • Sélectionner la ou les images ou même un répertoire, dans le navigateur de fichier ou la visionneuse
  • appeler le script (bouton droit ou menu, selon le programme)
  • il est évidemment possible d'appeler le script dans une console : passer alors les fichiers / répertoires en paramètre.
  • si gtkdialog est trouvé, il sera utilisé
Les sites qui vont (plus ou moins) bien
  • GoogleMap, qui a l'avantage de couvrir le monde entier, mais dont le fond de carte (relief) est lamentable. Pour avoir les coordonnées clic droit -> plus d'info sur cet endroit
  • OpenStreetMap avec la couche Cycle Map. Le fond de carte est à peine meilleur par contre je ne sais pas comment copier les coordonnées d'un point précis. Inutilisable donc, pour l'instant.
  • Le portail de l'IGN avec un bon fond de carte (évidemment) mais c'est du flash et c'est d'un lourd ! En outre, il faut prendre une inscription pour bénéficier des outils. Couvre également la Suisse et l'Espagne.
  • MapWonderland pour la Suisse
  • Norgeskart pour la Norvège
  • Peter Robins's Maps et ses visionneurs intégrés (Allemagne, Belgique, Espagne, France, Grande-Bretagne, Italie, Pologne, Portugal, Suisse, Tchéquie). Il dispose des fonds de cartes nationaux qui sont bien supérieurs à ceux des susnommés et un simple clic gauche permet d'obtenir les coordonnées d'un point. Par contre, le nombre de pays couverts est limité. Malheureusement, la France n'en fait plus partie depuis peu, sans explication :'( Faudra que je revoie mon script
Screenshots

Voici un exemple qui montre une sélection sur une carte IGN dans le visualiseur de Peter Robins :

Sélection de coordonnées

l'action dans Thunar

Action dans Thunar

La fenêtre de dialogue

La fenêtre de dialogue

  • # coordonnées dans OpenStreetMap

    Posté par  (site web personnel) . Évalué à 10. Dernière modification le 16 janvier 2013 à 22:13.

    Dans OpenStreetMap, tu peux facilement obtenir les coordonnées d'un point :

  • # Digikam?

    Posté par  . Évalué à 4.

    Tu as mentionné Digikam, mais ne l'aimes apparemment pas ;-)
    Pourtant, il fait tout ça sans script perso :
    - selectionne les photos à géolocaliser
    - menu Image->Géolocalisation
    - corrélateur GPS va utiliser un fichier GPX, avec décalage horaire s'il le faut
    - sinon la carte Marble va te proposer OSM pour définir à la main l'endroit de tes photos, il n'y a plus qu'à choisir "coller les coordonées"
    - on peut aussi choisir une autre carte genre Google Maps dans le menu…

    Bonus : tu peux chercher par nom dans OSM plutôt que par la carte
    Bonus : le géocodage inversé permet d'ajouter des étiquettes EXIF à tes photos d'après leur coordonnées, genre country=france , town=auch ;-)

    Après c'est sûr qu'il est plus gourmand que gthumb!

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: Digikam?

      Posté par  . Évalué à 2.

      Gourmand, pas rapport à tout ce qu'il permet de faire, c'est très relatif !
      De toute façon, chez moi, Digikam est ouvert en permanence.

    • [^] # Re: Digikam?

      Posté par  (site web personnel) . Évalué à 5.

      Effectivement, je ne l'aime pas. Sans doute parce-que, d'une manière générale, je n'aime pas les logiciels qui ont besoins de gérer des collections dans des bases de données, je sais très bien ranger mes documents dans des répertoires, sous-répertoires etc… C'est vrai pour la photo, mais aussi pour la musique.

      Je sais que ce genre d'approche n'est plus dans l'air du temps, qu'aujourd'hui les tags permettent de tout mettre en vrac n'importe où, mais pour ma part je pense que je perdrai plus de temps ainsi.

      Les premières choses que je fais quand je récupère des photos sur mon appareil :
      - créer le répertoire qui va bien dans l'arborescence et les ranger dedans
      - renommer les photos avec exiv2 -r %Y%m%d_%H%M%S_lieux_:basename: mv *.JPG

      Ensuite mon gestionnaire de photos (ou de musique) c'est mon gestionnaire de fichiers

      • [^] # Re: Digikam?

        Posté par  . Évalué à 5.

        Effectivement, je ne l'aime pas. Sans doute parce-que, d'une manière générale, je n'aime pas les logiciels qui ont besoins de gérer des collections dans des bases de données, je sais très bien ranger mes documents dans des répertoires, sous-répertoires etc…

        Tu sais que beaucoup de logiciels savent combiner les deux de manière très efficace ? Et encore mieux ils gèrent parfaitement le renomage et les répertoires à l'import.

      • [^] # Re: Digikam?

        Posté par  . Évalué à 5. Dernière modification le 17 janvier 2013 à 10:14.

        cykl a raison.

        Les tags ajoute une possibilité de recherche en plus de l'arborescence, c'est complémentaire.

      • [^] # Re: Digikam?

        Posté par  . Évalué à 2.

        je n'aime pas les logiciels qui ont besoins de gérer des collections dans des bases de données

        Je pense que tu as raté l'option "enregistrer les étiquettes directement dans les images" de Digikam…

        Digikam est pensé pour le rangement par dossier tel que tu le décris, la BDD est un plus optionnel pour accélérer les recherches.
        Par exemple, quand tu importes tes photos avec Digikam, il les renomme directement avec le modèle que tu veux… %date_%nom pour ton cas.

        ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

        • [^] # Re: Digikam?

          Posté par  (site web personnel) . Évalué à 2.

          Perso je n'aime pas que l'application vienne toucher aux fichiers images. Je préférerais de loin la création d'un fichier texte structuré de même nom que le fichier image avec une extension en plus (un truc bête lisible, réparable) et contenant les informations extra que l'on veut associer à la photo.

          L'inconvénient de l'écriture des données supplémentaires directement dans les fichiers images, est qu'en cas de sauvegarde incrémentale c'est tout le fichier qui est considéré modifié, pour quelques octets.

          AMA la BDD doit être un plus géré par l'application pour optimiser les recherches, et pouvoir être reconstruite à partir des fichiers image + extra associé. Si en plus c'était standardisé et partagé par toutes les applications de gestion de photos…

          Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

          • [^] # Re: Digikam?

            Posté par  . Évalué à 3.

            C'est juste le principe du XMP en sidecar file. Je connais pas Digikam mais a ma connaissance tout les logiciels le supportent.

            Tu peux choisir de toujours écrire les XMP, de pouvoir faire une synchro DB -> XMP ou d'importer depuis les XMP. Mais la ca commence à beaucoup dépendre de l'application pour pouvoir être moins vague.

          • [^] # Re: Digikam?

            Posté par  (site web personnel) . Évalué à 2.

            Parmi les archivistes, il y a un petite guéguerre entre ceux pour les meta à l'intérieur "embedded" (ne pas perdre des infos en route et ne pas se coltiner 2x plus de fichiers) et ceux pour les fichier "sidecar" (ne pas modifier le fichier au risque de le corrompre). L'avantage pour toi est que tu as les deux (comme en parle cykl, XMP tend à être la "norme", d'ailleurs ça marche pour les deux possibilités sur certains formats : embedded ou sidecar), choisi ton camp!

    • [^] # Re: Digikam?

      Posté par  . Évalué à 1.

      Une question en passant, j'ai voulu rajouter le nom de ma rue sur OSM et après création du compte il m'affiche une interface flash très lourde et très lente (Firefox 17, peut-être est-ce mon pc m'enfin un processeur à 1.6Ghz avec 2Go de ram je pensais que ça suffirait …).
      Il y a un autre moyen ?

      • [^] # Re: Digikam?

        Posté par  . Évalué à 3.

        La liste des outils est longue, si tu n'aime pas Flash, je te conseille JOSM, et si tu n'aime ni Flash ni Java, je te conseille Merkaartor.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # GPSPrune

    Posté par  . Évalué à 4. Dernière modification le 17 janvier 2013 à 09:39.

    GPSPrune permet également de "géotaguer" des photos à partir d'une trace gps

    • [^] # Re: GPSPrune

      Posté par  (site web personnel) . Évalué à 2.

      Je viens de le regarder, installable depuis AUR. Pas encore testé à fond mais au premier abord bien sympathique, rapide, fluide… et le positionnement sur la carte c'est un plus. Bon, le look n'est pas terrible, mais on ne peux pas tout avoir.

      En tous cas merci du renseignement

  • # À propos de Peter's Maps Viewers

    Posté par  (site web personnel) . Évalué à 2.

    J'ai demandé à Peter Robin pourquoi la France ne figurait plus dans la liste des cartes disponibles avec son visionneur. Réponse (qui était sur son site mais que je n'avais pas vu) :

    French IGN and Swisstopo maps are also no longer available, as they were too popular, and were exceeding the free access limits.

    Arf… Si vous connaissez une autre manière simple et agréable de consulter les cartes IGN sans passer par le bousin de géoportail, ce serait sympa de me le faire savoir.

    Je sais que l'on peut utiliser des API (http://api.ign.fr/accueil) mais c'est bien trop compliqué pour moi.

  • # Journey2web

    Posté par  (site web personnel) . Évalué à 5.

    Merci pour ce sujet très intéressant !

    Juste en lisant cela, j'ai pensé à Journey2web : http://dev.filyb.info/journey2web
    Un journal/article avait été mis sur LinuxFr pour en parler. Ça rapproche pas mal je trouve.
    Sinon pour un fond de carte qui a un bon rendu de dénivelé, j'utilise celui de francetopo.fr

  • # Gottengeography

    Posté par  (site web personnel) . Évalué à 2.

    Pour la corrélation d'une trace gpx et d'un ensemble de photos, il m'est arrivé d'utiliser GottenGeography qui m'a paru suffisant.

    Pour le geotagging a posteriori, avant de connaître gottengeography, je faisais un peu différemment : j'uploadais les photos sur picasa, je les localisais là-bas, puis je téléchargeais le fichier kml obtenu et un petit script lançait exiftool sur chaque fichier pour ajouter les données comme il faut. C'est une façon de faire qui me semble moins hachée que de faire des copier/coller des coordonnées pour chaque image.

    Par contre, je ne suis satisfait par aucun des logiciels que j'ai essayés pour afficher mes photos géolocalisées sur une carte !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.