De la simplification des traces enregistrées
Bonsoir,
Il est parfois, souvent, question de la simplification des traces enregistrées. En particulier, du travail qui consiste à supprimer les points aberrants, les "perruques" (c'est accumulations de petits segments autour d'un point fixe, en général lors d'un arrêt prolongé) : ceci ce réalise avec un éditeur de trace GPX, par exemple Twonav Land.
Mais une fois ce travail de "nettoyage" effectué, avec une trace enregistrée, il reste que celle-ci est très souvent, voire toujours, erratique, au moins sur certaines portions. Cela est du au fait que les relevés de positions sont tous effectués avec une certaine erreur, le GPS (nos GPS de poche) est un appareil qui est précis à environ 3m/5m en terrain dégagé, moins sinon.
Il est possible d'effectuer une simplification de la trace, destinée à faire un "lissage" afin de la rendre plus harmonieuse, voire plus collée au trajet réel effectué. Cette simplification a aussi l'intérêt de diminuer le nom de points de celle-ci, ce peut être un avantage pour par exemple la partager ou la publier sous une forme plus épurée et moins longue à charger sur un autre appareil. Elle permet aussi de d'obtenir un dénivelé cumulé plus exact car moins sujet à altitudes de points trop à l'écart, mais qui sont comptées (il faut recalculer les altitudes après simplification évidement).
C'est aussi une étape presque indispensable si, comme je le fait souvent, on enregistre avec une cadence très élevée afin de disposer d'un maximum de points pour justement pouvoir faire un postraitement à façon selon l'usage voulu plutôt que s'en tenir à une trace enregistrée et déjà "dégradée" d'une certaine façon. On peut pour cela en particulier sur certains matériels (pas avec un GPS Twonav malheureusement) enregistrer un fichier log au formet NMEA, à la cadence de 1Hz. C'est plus volumineux, mais on peut faire bien plus de traitements ensuite (un peu comme la différence entre un fichier photo en JPEG plutôt que RAW).
Pour faire cetet simplification, avec Twonav Land, il n'y a qu'un seul moyen, c'est la fonction "Réduire le nombre de points" (clic droit sur la trace ou son nom, outils -> réduire le nombre de points).
Je vais montrer ici qu'on peut / pourrait faire mieux (et j'invite les équipes de Twonav à intégrer cette fonction dans Land, ce serait un ajout très intéressant).
Voici un exemple (une petite portion de trace pour que ce soit lisible) de trace (il y a exactement 100 points sur cette trace) :
Elle est relativement bonne, terrain dégagé, mais (je ne le fais pas là), en zoomant dessus, on voit quand même que ça zig-zag un peu.
Si on demande à Land de réduire le nom de points, ça peut donner cela (deux réductions, une à 19 points, en jaune, et une à 26 points, en rouge) :
On voit sans difficulté, même sans zoomer fortement, que les traces simplifiées deviennent très dégradées en particulier lors des changements de direction (virages coupés). C'est peu satisfaisant, en particulier pour la fournir ou la publier.
Il existe d'autres méthodes, dont une dont j'ai déjà parlé (😉), et qui donne d'excellent résultat. Elle est facile à programmer, et ce serait bien que Twonav l'incorpore à Land à mon avis. C'est l'algorithme de Douglas-Peucker (cliquer sur le nom pour documentation Wikipedia).
Appliqué à cette même trace, voici ce que cela donne, avec la même réduction de points (19 en rouge, 26 en bleu).
A cette échelle de zoom, la trace d'origine cyan disparait sous les autres, la bleu est un peu moins précise. Avec 5 fois moins de points !
A savoir qu'avec cet algorithme, on ne choisi pas le nombre de points final, mais un écart maximum entre la trace d'origine et les segments de la nouvelle trace (c'est pourquoi en fait, étant tombé sur 19 et 26 points pour les deux exemples, soient des écarts de 3m et 2m, j'ai ensuite reporté les mêmes valeurs pour la réduction dans Land, pour que ce soit comparable).
Où cela devient plus intéressant, c'est en zoomant mieux, et en regardant ce qui se passe avec plus de détails. Voici des extraits (avec réduction à 19 points, le cas le plus défavorable) (original en cyan, réduction Land en jaune, réduction DP en bleu) :
Il apparait très évident que la réduction effectuée par Land s'écarte très franchement de la trace originale, et accessoirement de la route ou du sentier ! La façon dont elle s'écarte est imprévisible à priori en terme de distance d'éloignement. Celle réduite pas DP colle à l'original, et reste sur la route et le sentier au mieux. Et elle ne s'écarte pas de plus de 3m puisque c'est le paramétrage de l'algorithme. Et, caractéristique essentielle de cet algorithme, la qualité des changements de direction est conservée !
A noter (je ne le montre pas ici), que même avec une réduction de seulement moitié (50 points), la réduction de Land est moins exacte que celle de DP à 19 points, les virages sont déjà très coupés.
Il est également interessant de regarder ce que cela implique en terme de longueur de trace :
Où l'on voit bien que pour une distance originale de 853m, les deux réduction DP restent très proche à quelques mètres (un peu moins, normal), alors que les réduction Land perdent jusqu'à près de 6%.
Malheureusement, cette réduction, bien plus efficace, n'est pas disponible dans Land, elle l'est dans d'autres logiciels, comme par exemple RouteConverter (gratuit, open-source) qu'on peut éventuellement n'utiliser que pour cela.
Cordialement,
-
Bonjour,
"comme par exemple RouteConverter (gratuit, open-source) qu'on peut éventuellement n'utiliser que pour cela."
Pour ma part, je traite systématiquement mes traces avec gpsbabel.
Je ne me suis pas préoccupé de la méthode utilisée pour la réduction des points (il y a plusieurs options disponibles), mais ça semble très performant.
Cordialement
-
Bonjour,
Autre solution, pour nettoyer et obtenir une trace bien "propre" il y a "aussi" un moyen rapide et relativement simple à la portée de tous qui consiste a "Re router" la trace avec un bon routeur.
Aux intersections cette trace "sortie du routeur" ira bien chercher la jonction des chemins.
Pour ceux qui importe un "fichier.gpx" sur internet (pratique plus répandue pour cyclisme et VTT), cette étape devient de plus en plus indispensable, car "maintenant" ces fichiers ont bien souvent des "patés pauses" ou des "traces de pauses spécifiques" voir des passages en zone privée. Le routeur élimine toutes ces incohérences rapidement, ce qui évite de se retrouver sur une impasse durant la sortie.
L'effet du "bruitage" ou "type Trace d'un GPS chargé à 3 gramme d'alcool" s'applique surtout (presque exclusivement) aux randonneurs (marche) des que le porteur du GPS courre ou roule (Vitesse > 5 km/h), on constate que cet effet de bord disparait. Un petit sous échantillonnage de la trace l'élimine totalement. Dans la rubrique "truc & astuces" le menu des GPS propose d'ajuster le sous échantillonnage par pas de temps ou de distance, l'utilisation d'un PC et d'un éditeur de texte permet de régler cette valeur à la résolution de 1 mètre ou 1 seconde, donc d'être plus précis. Idem pour le seuil de vitesse qui avec cette méthode est paramétrable au pas de 1cm / seconde.
Cordialement
-
Tit exemple,
"on" pourrait croire que la trace "déraille" mais non elle est parfaite, la boucle est un évitement terrain, pour éviter une barrières le long de la route. La pause sous la canopée (après montée d'un escalier) est propre. C'est une trace légèrement sous échantillonnée avec un seuil bas de vitesse adapté.
La preuve en photo:
En sortie du GPS c'est "parfait" le reflet exact du trajet. Ce n'est pas de la marche vitesse moyenne 15 km/h ce qui change beaucoup de chose.
-
Cela étant, un "test" amusant, c'est l'exemple de Bernard "re router" et je le pose sur trois fonds cartographiques différents OSM / IGN / IGN et voila
Parfait sur un fond et pas sur l'autre..d'ou la probabilité de passer du temps a limer la planète.
"Le mieux restera toujours l'ennemi du bien"
Bon WE
-
Bonjour,
Autre solution, pour nettoyer et obtenir une trace bien "propre" il y a "aussi" un moyen rapide et relativement simple à la portée de tous qui consiste a "Re router" la trace avec un bon routeur.
Oui, bien sûr, mais ce n'est pas mon propos ici : élaborer sur carte (avec ou sans router), c'est ce que je fais avant une randonnée, ici, je ne souhaite que comparer le travail fait avec les logiciels pour simplifier une trace enregistrée de façon automatique, en particulier Land et une autre méthode (en souhaitant que Land améliore sa méthode).
Accessoirement, si le routage est performant en voiture ou VTT, en randonnée, il se heurte au fait que de nombreux sentiers sont absents des logiciels de routage (ou mal référencés), sans parler de tous les passages hors sentier. Mais une fois de plus, ce n'est pas mon propos ici. Ma faute, j'aurais du être plus précis dans le titre de ce fil, en écrivant "De la simplification des traces enregistrées" : je modifie donc ce titre immédiatement pour corriger cette imprécision.
Cordialement,
Please sign in to leave a comment.
Comments
5 comments