Résumé exécutif
Quand j’analyse un parcours, je cherche trois choses : (1) où le temps se gagne/se perd (segments clés), (2) où le risque augmente (descentes techniques, dévers, exposition, visibilité), (3) comment traduire cela en stratégie (pacing, nutrition, matériel).
Je ne fais pas confiance à un seul chiffre de D+ : il dépend des traitements (lissage et seuils). Strava explique lisser l’altitude et appliquer des seuils (10 m sans baro, 2 m avec baro) avant d’ajuster le D+. ([support.strava.com](https://support.strava.com/hc/fr/articles/115001294564-FAQ-concernant-l-altitude?utm_source=chatgpt.com))
Pour estimer le temps, j’utilise au minimum deux modèles transparents (Naismith, Tobler, modèle empirique calibrable). Et je me construis toujours une fenêtre (temps + marges + stop-time), pas un chrono unique.
Pourquoi analyser un trail change tout
bashLe trail n’est pas un 10 km route : le relief et la technicité font varier le coût énergétique et la biomécanique d’un segment à l’autre. Une référence majeure (Minetti et al.) mesure le coût énergétique de la marche et de la course sur des pentes extrêmes, et montre que ce coût varie fortement avec la pente. ([journals.physiology.org](https://journals.physiology.org/doi/10.1152/japplphysiol.01177.2001?utm_source=chatgpt.com))
Donc si je lis mal le parcours (ou si je le lis trop “globalement”), je fais des erreurs de pacing, de nutrition, et de gestion du risque. À l’inverse, une analyse bien faite rend le jour J plus simple : je sais à l’avance où je marche, où je mange, et où je garde de la marge.
Profil altimétrique : ce que ça montre (et ce que ça cache)
Ce que le profil altimétrique montre bien
Un profil altimétrique montre la structure globale : grandes montées, grandes descentes, altitude maximale, distribution du dénivelé. C’est excellent pour décider de la logistique (frontale ? météo en altitude ?).
Pente instantanée vs pente moyenne
Une pente moyenne peut masquer des “murs” et des replats. J’utilise donc : (1) une pente fenêtrée (50–200 m) pour réduire le bruit, (2) une distribution des pentes (quantiles / histogramme), (3) la plus longue montée continue.
Formules : pente instantanée et pente fenêtrée
Pente (%) = 100 * Δh / Δd_horiz
Pente fenêtrée (plus stable) : pente_% = 100 * (ele[j] - ele[i]) / dist_horiz(i->j) où dist_horiz(i->j) ≈ 50–200 m (selon densité de points) Pour calculer des pentes depuis un MNT avec un SIG, QGIS documente l’analyse de terrain et le calcul de pente sur raster. (docs.qgis.org)
Le vrai piège : le lissage (smoothing) et la qualité altitude
La “pente” dépend de l’altitude. Or l’altitude est bruitée (GPS), peut dériver (baro), et peut être corrigée via MNT. Strava explicite un mécanisme de lissage et de seuils avant de compter le D+. ([support.strava.com](https://support.strava.com/hc/fr/articles/115001294564-FAQ-concernant-l-altitude?utm_source=chatgpt.com))
Si je veux un profil “référence” en France, je peux recalculer des altitudes via les services altimétriques IGN (API REST) et/ou utiliser un MNT comme RGE ALTI (pas 1 m/5 m selon produit). ([geoservices.ign.fr](https://geoservices.ign.fr/documentation/services/services-geoplateforme/altimetrie?utm_source=chatgpt.com)) ([geoservices.ign.fr](https://geoservices.ign.fr/rgealti?utm_source=chatgpt.com))
Segments clés : comment segmenter
Mon objectif : transformer un tracé continu en segments “décisionnels”. Un bon segment est homogène (pente + terrain + courbure) et se termine là où je change de stratégie.
| Critère | Repère | Pourquoi | Sortie |
|---|---|---|---|
| Changement de pente | Seuils (ex. -10 / -5 / +5 / +12 %) | Pacing différent (course/marche, sécurité) | Segments pente-homogènes |
| Longueur | 200 m–1 km (souvent) | Assez long pour lisser le bruit, assez court pour décider | Liste segments |
| Technicité | Zones racines/pierriers/épingles | Plafond de vitesse + risque | Segments “prudence” |
| Points clés | Ravitos, barrières, passages exposés | Décision logistique et sécurité | Segments alignés sur roadbook |
| Transitions | Relances fréquentes / “marches” | Coût caché (freinage/relance) | Buffer spécifique |
Le coût de la pente et son effet sur la locomotion justifient cette segmentation : la marche/course change de coût selon le gradient. ([journals.physiology.org](https://journals.physiology.org/doi/10.1152/japplphysiol.01177.2001?utm_source=chatgpt.com))
Pièges terrain : descentes, dévers, pierriers, virages
Un parcours “bien lu” n’est pas celui où je connais le D+. C’est celui où j’ai marqué les pièges qui plafonnent la vitesse et augmentent le risque : descentes cassantes, dévers glissants, pierriers, épingles serrées, visibilité faible.
| Piège | Comment je le repère | Impact | Contre-mesure |
|---|---|---|---|
| Descente technique | Carte + photos/reco + sinuosité | Vitesse plafonnée, fatigue quadri | Cadence ↑, contrôle, marge temps |
| Dévers | Topo + traces OSM + retours | Risque cheville/genou | Stabilité, bâtons si maîtrisés |
| Pierrier / instable | Satellite + topo + reco | Appuis instables → vitesse ↓ | Trajectoire, marge, chaussures adaptées |
| Épingles / virages | Trace GPX (angle/km), carte | Freinage-relance coûteux | Segmenter, buffer “transitions” |
| Visibilité (nuit/brouillard) | Horaires + météo | Risque & vitesse ↓ | Frontale, marge 5–15% |
Les descentes augmentent les forces de freinage et d’impact : une étude rapporte des hausses importantes en descente par rapport au plat (ex. à −9°). ([pubmed.ncbi.nlm.nih.gov](https://pubmed.ncbi.nlm.nih.gov/15652542/?utm_source=chatgpt.com))
Transitions : l’épuisement invisible
bashLes transitions, ce sont les changements rapides (pente, rythme, appuis) qui “cassent” l’économie : marcher/courir/marcher, relances après épingles, replats courts, escaliers naturels. Elles coûtent surtout parce qu’elles ajoutent du freinage, de la relance, et du stress neuromusculaire.
Ma règle : je segmente les transitions et j’ajoute un buffer spécifique (temps ou %) plutôt que de les diluer dans une moyenne globale.
Stratégie : pacing, nutrition, matériel, reconnaissance, crew
Pacing (principe)
Je vise une intensité durable en montée et je protège les descentes. Au lieu de courir “tout ce qui monte”, je décide où je marche activement (pour éviter une marche subie plus tard). Ce principe est cohérent avec le coût énergétique variable de la pente. ([journals.physiology.org](https://journals.physiology.org/doi/10.1152/japplphysiol.01177.2001?utm_source=chatgpt.com))
Nutrition : traduire le temps estimé en g CHO/h
Un temps estimé devient un plan d’apports : l’INSEP mentionne des repères de glucides pendant l’effort (30–60 g/h et jusqu’à 90 g/h sur efforts plus longs selon contexte). ([books.openedition.org](https://books.openedition.org/insep/1212?lang=en&utm_source=chatgpt.com))
Matériel et sécurité
J’adapte chaussures, bâtons, frontale, couches au terrain et à la météo. Je traite les zones exposées et les descentes techniques comme des zones de sécurité, même si “ça coûte” une minute.
Reconnaissance et crew
Si je ne peux pas reconnaître tout le parcours, je reconnais au moins : (1) la descente la plus technique, (2) la montée la plus longue, (3) l’accès aux ravitos. Et je partage au crew des fenêtres de passage (pas une heure unique).
Workflow GPX → DEM → segments → temps → plan
[Diagramme interactif disponible dans la version web]
Exemples outils SIG (ogr2ogr / gdaldem)
# Convertir GPX -> GeoJSON (track_points)
ogr2ogr -f GeoJSON track_points.geojson trace.gpx track_points
Calculer pente depuis un MNT/DEM
gdaldem slope mnt.tif slope_percent.tif -p OGR lit GPX et expose des couches (waypoints, routes, track_points). (gdal.org) L’outil ogr2ogr est documenté comme convertisseur vectoriel. (gdal.org) gdaldem slope calcule des pentes à partir d’un raster. (gdal.org)
Snippet GPX parsing (gpxpy pseudocode)
import gpxpy
with open("trace.gpx", "r", encoding="utf-8") as f: gpx = gpxpy.parse(f)
Exemple : itérer points
for trk in gpx.tracks: for seg in trk.segments: for pt in seg.points: lat, lon = pt.latitude, pt.longitude ele = pt.elevation # peut être None t = pt.time # peut être None gpxpy : bibliothèque Python pour parser/manipuler GPX. (github.com)
Exemple chiffré : 20 km / +800 m (segmenté)
Je prends un exemple plausible (non spécifié, car sans GPX réel) : 20 km, +800 m, et environ -800 m (boucle). Je segmente de manière “lisible” pour illustrer Naismith, Tobler, et un modèle empirique.
| Segment | Distance | Δh | Pente moyenne |
|---|---|---|---|
| Montée 1 | 5 km | +500 m | +10% |
| Descente 1 | 3 km | -400 m | -13,3% |
| Roulant | 7 km | 0 | 0% |
| Montée 2 | 3 km | +300 m | +10% |
| Descente 2 | 2 km | -400 m | -20% |
Méthodes : Naismith, Tobler, empirique
Naismith (métrique) - calcul pas à pas
T_naismith (heures) = (D_km/5) + (Dplus_m/600)
D = 20 km ; D+ = 800 m
T = (20/5) + (800/600) = 4.000 + 1.333 = 5.333 h = 05h20 Formulation métrique Naismith : 1 h/5 km + 1 h/600 m D+. (ukhillwalking.com)
Tobler (pente→vitesse) - calcul segmenté
v(S) = 6 * exp(-3.5 * abs(S + 0.05))
S = dh/dx (m/m), v en km/h Temps segment = distance / v(S)
Segments :
+10% => S=+0.10 -> v≈3.549 km/h -> t=5/3.549=1.409 h = 01h25
-13.3% => S=-0.133 -> v≈4.426 km/h -> t=3/4.426=0.678 h = 00h41
0% => S=0 -> v≈5.037 km/h -> t=7/5.037=1.390 h = 01h23
+10% => v≈3.549 -> t=3/3.549=0.845 h = 00h51
-20% => S=-0.20 -> v≈3.739 km/h -> t=2/3.739=0.535 h = 00h32
Total ≈ 4.857 h = 04h51
Tobler (1993) : “hiking function”, souvent reprise sous cette forme. ([escholarship.org](https://escholarship.org/uc/item/05r820mz?utm_source=chatgpt.com))
Modèle empirique calibrable (p0/c_up/c_down) - 3 profils
Je propose trois profils (exemples) : sans calibration, ce n’est pas une vérité, c’est un modèle pédagogique. Conversion pente→%VMA : non spécifié (pas de standard universel).
| Profil | p0 (min/km) | c_up (min/100 m) | c_down (min/100 m) |
|---|---|---|---|
| Lent | 7,5 | 10 | 4 |
| Moyen | 6,25 | 8 | 2 |
| Rapide | 5,25 | 6,5 | 1 |
T (minutes) = D_km*p0 + (Dplus_m/100)*c_up + (Dminus_m/100)*c_down
D = 20 km ; D+ = 800 m ; D- = 800 m
Profil lent : 207.5 + 810 + 84 = 150 + 80 + 32 = 262 min = 04h22 Profil moyen : 206.25+ 88 + 82 = 125 + 64 + 16 = 205 min = 03h25 Profil rapide: 205.25+ 86.5+ 8*1 = 105 + 52 + 8 = 165 min = 02h45 | Méthode | Lent | Moyen | Rapide | Lecture |
|---|---|---|---|---|
| Naismith | 05h20 | 05h20 | 05h20 | Borne prudente “marche” |
| Tobler (segments) | 04h51 | 04h51 | 04h51 | Marche, sensible à pente |
| Empirique (p0/c_up/c_down) | 04h22 | 03h25 | 02h45 | Plan coureur (si calibré) |
À retenir : Naismith/Tobler sont orientés marche (rando) : je les utilise pour la prudence et la comparaison ; le modèle empirique est plus “plan de course” mais doit être calibré. Le coût énergétique de pente (Minetti) explique pourquoi une approche “distance seule” échoue. ([journals.physiology.org](https://journals.physiology.org/doi/10.1152/japplphysiol.01177.2001?utm_source=chatgpt.com))
Références
bash- IGN : RGE ALTI (MNT 1 m / 5 m). ([geoservices.ign.fr](https://geoservices.ign.fr/rgealti?utm_source=chatgpt.com))
- IGN : service altimétrique (API REST : altitude de points, profil le long d’une courbe). ([geoservices.ign.fr](https://geoservices.ign.fr/documentation/services/services-geoplateforme/altimetrie?utm_source=chatgpt.com))
- Strava Support (FR) : altitude, lissage et seuils D+. ([support.strava.com](https://support.strava.com/hc/fr/articles/115001294564-FAQ-concernant-l-altitude?utm_source=chatgpt.com))
- GPX 1.1 (Topografix) : format, metadata, tracks/routes/waypoints. ([topografix.com](https://www.topografix.com/gpx/1/1/?utm_source=chatgpt.com))
- GDAL/OGR : driver GPX, ogr2ogr, gdaldem. ([gdal.org](https://gdal.org/en/stable/drivers/vector/gpx.html?utm_source=chatgpt.com))
- QGIS (FR) : analyse de terrain, calcul de pente sur raster. ([docs.qgis.org](https://docs.qgis.org/2.8/fr/docs/training_manual/rasters/terrain_analysis.html?utm_source=chatgpt.com))
- gpxpy : parsing GPX en Python. ([github.com](https://github.com/tkrajina/gpxpy/blob/dev/README.md?utm_source=chatgpt.com))
- Naismith (métrique) : 1h/5 km + 1h/600 m D+. ([ukhillwalking.com](https://www.ukhillwalking.com/articles/skills/how_to_calculate_route_times_using_naismiths_rule-7777?utm_source=chatgpt.com))
- Tobler W. (1993) : “hiking function” (source primaire). ([escholarship.org](https://escholarship.org/uc/item/05r820mz?utm_source=chatgpt.com))
- Minetti AE et al. (2002) : coût énergétique marche/course selon pente. DOI 10.1152/japplphysiol.01177.2001. PMID 12183501. ([journals.physiology.org](https://journals.physiology.org/doi/10.1152/japplphysiol.01177.2001?utm_source=chatgpt.com))
- Praz C. (2011) : coût énergétique en montée/descente (SEMS, francophone). ([sems.ch](https://sems.ch/fileadmin/user_upload/Zeitschrift/59-2011-1/Cout_59_1_11_Praz.pdf?utm_source=chatgpt.com))
- Forces en descente (impacts/freinage) : Gottschall & Kram (2005). PMID 15652542. ([pubmed.ncbi.nlm.nih.gov](https://pubmed.ncbi.nlm.nih.gov/15652542/?utm_source=chatgpt.com))
- Nutrition endurance (France) : INSEP OpenEdition “La compétition” (repères glucides). ([books.openedition.org](https://books.openedition.org/insep/1212?lang=en&utm_source=chatgpt.com))
Note Altitracks : si vous mentionnez un outil de roadbook/estimation, vérifiez sa doc officielle. Si les algorithmes internes ne sont pas publics, marquez-les non spécifié.