Ceci est une ancienne révision du document !
GPSBabel
Attention gpsbabel ne permet pas de convertir ou gérer les cartes. (Il ne remplacera pas un logiciel tel que City Navigator)
Cette présente page vise à vous aider à installer et utiliser GPSBabel (les exemples sont réalisés sous ubuntu dapper avec un gps garmin etrex venture CX. Les différentes commandes devraient garder la même syntaxe avec d'autres gps.
Pré-requis
- Disposer des droits d'administration ;
- Disposer d'une connexion à Internet configurée et activée ;
- Avoir activé l'accès aux dépôts Universe et Multiverse ;
- Avoir installé les paquets libc6, libexpat1, libusb-0.1-4, geotoad.
Installation
L'installation est assez simple, puisque GPSbabel est présent dans les dépôts Universe. Il vous suffit, pour cela, d'installer les paquets gpsbabel.
Pour ce faire, vous pouvez soit passer par synaptic, rechercher gpsbabel, et l'installer.
Soit en console :
sudo apt-get install gpsbabel
Utilisation
Format général
L'utilisation des commandes gpsbabel suit toujours un même schéma de base qui renseigne :
- le format d'entrée : -i
- le fichier d'entrée et son chemin : -f
- le format de sortie : -o
- le fichier de sortie et son chemin : -F
Ce qui nous donne donc de manière générique :
gpsbabel -i formatdentrée -f fichierdentrée -o formatdesortie -F fichierdesortie
Conversion de formats
GPSBabel permet également la conversion de différents formats. Ainsi il est possible de convertir la liste des caches de votre région dans un autre format.
Pour connaître la liste des formats supportés par GPSBabel, il vous suffit de suivre ce lien : Formats supportés..
Je vais prendre comme exemple celui qui m'est le plus utile : la conversion du format geocaching.com-*.loc en format GPX compris par mon gps…
Comme dit précédement, GPSBabel fait toujours appel à la même structure (voir format général)
gpsbabel -i geo -f /tmp/geocaching.loc -o gpx -F /tmp/geocaching.gpx
Comme on peut le constater dans cet exemple, la seule difficulté va donc consister à connaître le nom à mettre dans la commande pour déterminer les formats. Il ne sont pas tous intuitif (*.loc et nommé geo dans notre exemple)
Communiquer avec le gps
Rappellons nous que dans Linux tout est fichier… un port usb aussi donc…
Retrouver le chemin de sa connexion usb
Une fois le GPS raccorder au port usb, il vous suffit d'éxécuter la commande dmesg pour voir apparaître des informations du style :
[4309364.676000] drivers/usb/serial/usb-serial.c: USB Serial support registered for Garmin GPS usb/tty [4309364.682000] garmin_gps 5-1:1.0: Garmin GPS usb/tty converter detected [4309364.726000] usb 5-1: Garmin GPS usb/tty converter now attached to ttyUSB0 [4309364.726000] usbcore: registered new driver garmin_gps [4309364.726000] drivers/usb/serial/garmin_gps.c: garmin gps driver v0.23
On remarque de suite que la gestion de la communication usb est gérée par le noyau et que le GPS se trouve donc lier à pseudo port série dénommé /dev/ttyUSB0.
C'est cette dernière information qui nous sera nécessaire :
- comme "fichier" de source : -f /dev/ttyUSB0
- ou de destination : -F /dev/ttyUSB0
Récupérer des données du gps
Attelons nous à rappatrier les données de notre gps. Ces informations sont les waypoints, les routes et les traces (log des déplacements).
Pour fonctionner avec les formats magellan et garmin, il faudra faire appel à des flags supplémentaire dans les commandes.
- Pour les tracks : -t
- Pour les routes : -r
- Pour les waypoints : -w
Voici donc un exemple pour récupérer la liste des waypoints enregistré dans le gps de marque garmin et de modèle etrex venture cx
gpsbabel -w -i garmin -f /dev/ttyUSB0 -o gpx -F blah.gpx
La liste des waypoints sera donc ici enregistrer, au format GPX, dans le fichier nommé blah.gpx
Nous pouvons naturellement récupérer l'ensemble des enregistrements (tracks, waypoints, routes) en combinant tous les flags dans la commande :
gpsbabel -t -r -w -i magellan -f /dev/ttyUSB0 -o gpx -F backup.gpx
Cette commande créera un fichier, au format gpx, nommé backup.gpx contenant toutes les traces, routes et waypoints d'un gps de type magellan.
A remarquer : passer d'un gps garmin à un gps magellan est donc assez simple avec gpsbabel, il suffit de spécifier le format (magellan ou garmin… simple non? )
Fournir des données au gps
Transférer la liste des waypoints ou la route de votre futur randonnée vers votre gps (afin de vous éviter des les entrer un à un sur le gps lui-même) est relativement simple si vous avez suivit jusque ici puisqu'il suffira d'inverser source et destination…
Les flagx -w, -r, et -t garde la même signification que dans le paragraphe précédent.
Un exemple pour éclaircir les idées??
Annonçons le tout de suite, on estime que vous disposez déjà d'un fichier - dans un format reconnu par GPSBabel - listant votre route…
Pour notre exemple ce fichier s'appellera rando1.gpx et sera "codé" au format GPX (format normalisé basé sur le XML)
Envoyons dons notre route pour cette futur randonnée vers notre GPS Garmin :
gpsbabel -r -i gpx -f rando1.gpx -o garmin -F /dev/ttyUSB0
Introduction au format GPX
Comme dit précédement, le GPX (pour GPS Exchange Format) est un format basé sur le XML conçus pour transférer des données GPS entres logiciel.
Cette partie n'a pour but que de vous inciter à connaitre le format gpx qui vous permettra d'encoder vos données…
Syntaxe de base
Voici la syntaxe de base tel que renseignée par wikipedia :
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx ...>
Metadata
<metadata> ... </metadata>
Data
Eg: Track Waypoint
<trk> <wpt lat="#" lon="#">
<trkseg> <ele>#</ele>
<trkpt lat="#" lon="#"> <name>...</name>
<ele>#</ele> ...
</trkpt> </wpt>
<trkpt ...> <wpt ...>
... ...
</trkpt> </wpt>
</trkseg>
<trkseg>
<trkpt ...>
...
</trkpt>
</trkseg>
...
</trk>
File end
</gpx>