Traces GPS et photos dans GoogleEarth et GoogleMaps
Je me propose dans ce billet de vous expliquer ma méthode pour obtenir dans GoogleEarth ou GoogleMap vos traces GPS agrémentées des photos géolocalisées.
Pour ce faire, nous allons utiliser principalement GpsBabel, un couteau suisse en ligne de commande des fichiers Gps. Pour plus d'infos, je vous renvoi vers la doc ubuntu-fr, ou le site officiel. Nous utiliserons aussi un petit script en python que j'ai développé pour mon usage personnel.
Tout au long de ce billet nous prendrons comme exemple une journée d'une croisière aux Scilly que j'ai faite l'an dernier.
Note: si vous voulez pouvoir clicker sur les fichiers pour GoogleEarth sans l'ouvrir 50 fois, je vous conseille d'aller lire cet autre billet sur Google Earth.
Récupérer la trace GPS
De nombreuses méthodes existent pour cela. J'utilise principalement QGis et son plugin gps ou GpsBabel. Vous trouverez plus d'infos dans la doc. Mon GPS est un Garmin, connecté en USB. Avec GpsBabel, on récupère les traces au format GPX ainsi :
gpsbabel -t -i garmin -f /dev/ttyUSB0 -o gpx -F trace_all.gpx
Les options sont :
- -i pour le format d'entrée ;
- -f pour le fichier d'entrée ;
- -o pour le format de sortie ;
- -F pour le fichier de sortie ;
- -t pour indiquer que l'on travaille sur les traces (tracks).
Ensuite, nous n'allons garder que les points correspondant à une journée :
gpsbabel -i gpx -f trace_all.gpx -x track,pack,split,title="ACTIVE LOG # %Y%m%d" -o gpx -F trace_split.gpx gpsbabel -i gpx -f trace_split.gpx -x track,start=200708280000,stop=200708290000 -o gpx -F 20070828.gpx
La première commande regroupe (pack) puis sépare par jour (split) la trace gps. La deuxième ne conserve que les points du 28 aout 2007.
Enfin, nous allons en faire un fichier KML lisible par les applications de Google :
gpsbabel -i gpx -f 20070828.gpx -o kml,points=0 -F 20070828.kml
l'option points=0 permet de n'afficher que la trace mais pas les points qui la composent. Plus de détails dans la doc de GpsBabel
Vous pouvez dors et déjà afficher celui-ci dans GoogleMap ou Earth.
Géolocaliser les photos
Si votre appareil photo ne dispose pas d'un GPS, vous pouvez quand même associer des coordonnées géographique à chaque photo grâce à votre trace GPS[1]. Le principe consiste simplement à corréler l'heure de prise de vue avec votre position enregistrée par le GPS à ce moment précis. Pour découvrir toutes les méthodes possibles, je vous renvoi encore une fois vers la doc ubuntu-fr.
Personnellement, j'utilise digiKam pour faire cela. Rien de bien sorcier ici. Pensez quand même que les traces Gps sont généralement en UTC et vos photos en heure locale (UTC+2 pour la France en été)
Une fois ceci fait, lorsque l'on ajoute les photos à un album PicassaWeb, des miniatures des photos sont directement placées sur une carte. Il est alors possible de télécharger un fichier kml pour les voir dans GoogleEarth[2].
Combiner les fichiers KML
Maintenant, nous avons deux fichiers kml :
- la trace gps ;
- les photos positionnées.
Il ne reste plus qu'a combiner ces deux fichiers. GpsBabel est capable de le faire.
gpsbabel -i kml -f 20070828.kml -f photos.kml -o kml,points=0 -F 20070828_tout_gpsbabel.kml
Malheureusement, il pert les miniatures et les liens vers les photos, ce qui rend l'opération peut intéressante :(
J'ai donc écrit quelques lignes de python pour faire l'opération. Vous pouvez télécharger le fichier à partir du dépot svn[3] : addPicassaToKml
Son usage est des plus simple :
./addPicassaToKml.py 20070828.kml photos.kml
il produit alors un fichier merge.kml contenant le meilleur des deux autres[4]. Et voila !
Agrandir le plan
Si vous voulez jouer, tous les fichiers sont ici