Filtrage de traces GPS de randonnées

C'est en voulant copier vers un site Web les fichiers GPX issus d'un petit tour dans l'Ubaye qu'il m'est apparu qu'ils avaient une taille qui me semblait démesurée de respectivement 498 et 312 Ko. Alors, je décidais de mener une enquête un peu approfondie pour voir ce qu'ils contenaient.

Je passe sur le fait que le GPX n'est pas un format économe, avec environ 150 octets occupés par point enregistré, mais c'est du XML, donc aisément lisible, et surtout bien structuré (je sais, c'est bien une remarque digne d'un informaticien).

Le nombre de points semblait cohérent, 3.182 points pour le Bric de Rubren, et 1.993 pour la Tête de la Fréma, soit environ un point par 10 mètres, qui semble être la fréquence d'enregistrement en randonnée en montagne pour un Garmin Oregon 450t configuré avec "Méthode d'enregistrement" sur "Auto" et "Intervalle d'enregistrement" sur "Normal".

Mais la distance totale parcourue semblait exagérée. Le calcul donnait 31,6 km pour le Bric de Rubren au départ du parking de Maljasset, avec retour par le Lac du Loup. Une estimation rapide et un peu sous la réalité, en mesurant la distance par quelques dizaines de points sur Geoportail.fr, m'avait donné 25 km.

Mon logiciel habituel, Basecamp de Garmin, n'étant pas très performant dans la visualisation et l'édition de fichiers GPX, je me suis tourné vers GPS Track Editor, bel outil simple et performant, même s'il est surtout destiné à des traces à plat (aucun outil pour traiter les altitudes).

En agrandissant le tracé, voici à quoi il ressemble sur la Tête de la Fréma, alors que votre serviteur profitait pendant 30 minutes d'un sandwich poulet crudités pesto, immobile sur son caillou. Le GPS semble se promener tout seul sur le sommet, souvent à 4-5 mètres du sandwich, et parfois jusqu'à 10 mètres. Rien que cette danse sur le sommet représente déjà 420 points et 200 mètres ajoutés inutilement à la trace, comme nous le verrons un peu plus bas.

GPS Track Editor

Quelques mots sur ces imprécisions : le GPS est bien en mode "WAAS/EGNOS" (seul le terme barbare EGNOS nous intéresse ici, le WAAS étant pour nos amis américains), mais les fameux satellites EGNOS correcteurs de précision (numérotés par Garmin 33, 37 et 39) ne sont pas toujours reçus, même à 3.151 mètres, sans rien autour, et par un parfait beau temps. Et si au moins l'un n'est pas présent, l'on observe en quelques secondes une dérive de plusieurs mètres. Et puis nous n'avons affaire ici qu'à un GPS grand-public, rien à voir en précision et stabilité avec les outils professionnels 10 ou 100 fois plus chers.

Après avoir étudié plusieurs solutions techniques pour corriger la trace, qui passaient par GPSBabel ou des implémentations de filtres de Kalman, un petit essai avec le filtre "Local inconsistencies" (traduisible en "Incohérences locales") de GPS Track Editor a produit un résultat au-delà de mes espérances : tous les points non souhaités avaient disparus, mais les points d'arrivés et de départ du sommet étaient préservés. En examinant le reste de la (longue) trace, même résultat, toutes les "sorties de route" du GPS étaient gommées, et restaient alors une belle trace épurée. Restait juste alors, pour diminuer encore le nombre de points, à effectuer un classique filtrage sur la distance (fonction de filtre "By value…") pour arriver à un fichier plus compact.

Sur l'exemple du Bric de Rubren, nous sommes passés de 3.182 points pour 31,6 km, à un plus réaliste 28,7 km avec seulement 1.886 points, et un résultat visuellement bien plus proche de la réalité de la balade …

En résumé, pour obtenir de belles traces GPX, il suffit de se procurer GPS Track Editor (il est gratuit), de faire un premier filtrage "Local inconsistencies", puis un second "By value…" (par exemple avec 30 mètres), et terminer par "Delete filtered points".

A lire, un autre article sur le sujet, par Luc Gential