R Roam Obtenir Roam

Pourquoi le dénivelé GPS est faux, et ce qu’un baromètre corrige

La verticale est ce qu’un récepteur satellite mesure le plus mal, et la façon dont le dénivelé positif est totalisé transforme cette faiblesse en une erreur importante et toujours positive. Pourquoi un capteur de pression est le meilleur instrument, et où lui aussi échoue.

Vous faites une boucle plate le long d’un canal. L’app vous annonce quatre cents mètres de dénivelé positif. Votre sortie n’avait rien d’anormal ; c’est le chiffre qui a été assemblé d’une manière qui garantit qu’il sort trop haut.

La verticale est l’axe faible

Un récepteur satellite calcule votre position à partir de la géométrie des satellites qu’il entend, et cette géométrie est fondamentalement déséquilibrée. À l’horizontale, les satellites vous entourent, si bien que les erreurs venues de directions opposées se compensent en partie. À la verticale, tous les satellites sont au-dessus de vous — la terre fait obstacle à ceux qui seraient en dessous — et il n’y a rien de l’autre côté pour compenser. Il en résulte une règle empirique qui tient depuis des décennies : l’erreur verticale vaut environ deux à trois fois l’erreur horizontale.

Il existe un second problème, distinct du premier. Le GNSS rapporte nativement une hauteur au-dessus d’un ellipsoïde mathématique, et non au-dessus du niveau de la mer, et l’écart entre les deux varie de plusieurs dizaines de mètres selon l’endroit du globe. Les récepteurs appliquent une correction de géoïde, et les modèles diffèrent, ce qui explique en partie que deux appareils posés sur la même colline ne s’accordent pas sur son altitude.

Pourquoi la somme aggrave les choses, et dans un seul sens

Le dénivelé positif n’est pas une mesure. C’est une somme : on parcourt les échantillons d’altitude et on additionne chaque montée. Cette opération a une propriété fâcheuse — le bruit y contribue, et toujours positivement.

Supposons que l’altitude réelle soit parfaitement plate et que vos échantillons oscillent de quelques mètres dans les deux sens. Chaque oscillation vers le haut est comptée comme de la montée. Chaque oscillation vers le bas est comptée pour rien, parce que la descente ne se soustrait pas du dénivelé positif. Échantillonnez une fois par seconde pendant deux heures, et un capteur simplement bruité aura fabriqué des centaines de mètres d’ascension sur un chemin de halage parfaitement horizontal.

C’est pour cela que les apps appliquent un seuil et ignorent les variations inférieures à un certain nombre de mètres. Cela aide, et cela introduit sa propre erreur : montez le seuil assez haut pour étouffer le bruit, et vous cessez aussi de compter les vraies petites montées qui font une route vallonnée.

Ce que le baromètre fait autrement

Tout iPhone récent contient un capteur de pression. La pression de l’air diminue avec l’altitude selon une loi bien connue — très grossièrement un hectopascal pour huit ou neuf mètres près du niveau de la mer — et le capteur est assez sensible pour résoudre des variations bien inférieures au mètre.

Surtout, c’est un instrument complètement indépendant. Ses erreurs n’ont rien à voir avec la géométrie des satellites, les canyons urbains, le couvert forestier ou le modèle de géoïde, et son bruit à court terme est bien plus faible que le bruit vertical du GNSS. Pour la tâche précise qui consiste à détecter « suis-je en train de monter en ce moment », qui est la seule question que pose réellement le dénivelé positif, c’est de loin le meilleur capteur.

Roam lit le capteur de pression, stocke l’altitude barométrique à côté de l’altitude GPS sur chaque point, et utilise la valeur barométrique dès qu’il y en a une. Les deux colonnes sont conservées : rien n’est jeté.

Là où le baromètre échoue

Il mesure une pression, pas une hauteur, et la pression change pour des raisons qui n’ont rien à voir avec vous.

La pratique raisonnable consiste à utiliser le baromètre pour le dénivelé et à traiter toute altitude absolue isolée comme approximative. Sur iOS, le capteur se trouve en outre derrière l’autorisation Mouvement et forme, ce qui veut dire qu’une app peut en perdre l’accès sans que rien ne casse visiblement.

Le mode de défaillance que personne ne remarque

Le bug intéressant n’est pas un chiffre faux. C’est un chiffre absent qui ressemble à un chiffre normal. Si la colonne barométrique est vide pour toute une sortie, une app qui se contente de retomber sur l’altitude GPS annoncera un résultat plausible, et rien à l’écran n’indiquera que le bon capteur n’a jamais été impliqué.

C’est arrivé dans l’histoire de cette app : l’altitude barométrique était nulle sur les neuf mille points d’une sortie, et il n’y avait aucun moyen de savoir laquelle de cinq raisons possibles s’appliquait — le capteur n’avait tout simplement jamais été construit, et un capteur absent est indiscernable d’un capteur muet. Le correctif a consisté à donner un nom à chaque raison et à la consigner au moment où elle survient : pas de matériel sur cet appareil, autorisation jamais demandée, autorisation refusée, restriction imposée par un profil de gestion ou un contrôle parental, désactivation dans les réglages de l’app, ou démarrage suivi d’un échec. Les remèdes ne sont pas les mêmes, et deux de ces raisons relèvent d’un interrupteur qui appartient au cycliste.

Que faire de vos propres chiffres

  1. Faites un parcours plat et regardez le dénivelé annoncé. Au-delà de quelques dizaines de mètres en une heure sur un terrain réellement plat, c’est du bruit que l’on additionne.
  2. Comparez deux appareils sur la même sortie. Attendez-vous à ce que les totaux diffèrent ; attendez-vous à ce que le total barométrique soit plus bas et plus stable.
  3. Ne comparez pas le dénivelé d’une app à l’autre comme s’il s’agissait d’une grandeur mesurée. Des seuils et des lissages différents produisent des réponses différentes à partir de données identiques.
  4. Considérez l’altitude absolue comme un ordre de grandeur et le dénivelé comme le chiffre fiable, ce qui est l’inverse de l’intuition de la plupart des gens.

Questions fréquentes

Pourquoi mon dénivelé GPS est-il si élevé ?

Parce que le dénivelé est une somme de variations vers le haut, et que le bruit vertical du GPS n’y contribue que vers le haut. Chaque oscillation vers le haut est comptée comme de la montée et chaque oscillation vers le bas ne compte pour rien : une heure d’échantillons bruités fabrique donc de la montée sur du plat.

L’altitude barométrique est-elle plus précise que le GPS ?

Pour le dénivelé, nettement : elle résout des variations inférieures au mètre et ses erreurs sont sans rapport avec la géométrie des satellites. Pour l’altitude absolue, elle ne vaut que son étalonnage, puisque la météo déplace la pression qu’elle mesure.

La météo influe-t-elle sur l’altitude barométrique ?

Oui. Le passage d’un front peut déplacer la pression au niveau de la mer assez pour se lire comme cent mètres ou plus en une journée. Sur une courte sortie, la dérive est mineure ; sur un voyage de plusieurs jours, elle compte, et c’est pourquoi on fait confiance au capteur pour la variation relative plutôt que pour la hauteur absolue.

Pourquoi deux apps annoncent-elles un dénivelé différent pour la même sortie ?

Capteurs différents, seuils de bruit différents, lissages différents. Le dénivelé n’est pas une mesure mais le résultat d’un algorithme : la même sortie brute produit donc légitimement des totaux différents, et les comparer d’une app à l’autre ne veut pas dire grand-chose.

Un enregistreur qui ne perd pas la sortie

Roam valide chaque point GPS sur le téléphone à l’instant où il arrive, marque les coupures de signal au lieu d’y tracer une ligne droite, et lit le dénivelé au baromètre plutôt que dans l’altitude GPS. Ni compte, ni connexion, ni synchronisation. Enregistrer une sortie, la consulter et la rejouer sont gratuits.

Télécharger dans l’App Store

Guides liés

Tous les guides