Créer des champs personnalisés sur Sporttracks, et appliquer des formules avec Calculated Fields
|Les champs personnalisés sur Sporttracks sont un moyen de rajouter des champs de données manuels à ses sorties. Je m’en sers par exemple pour y rentrer les watts calculés par Strava.
Pour rajouter un champ, il suffit de cliquer sur la flèche de la barre du titre de l’activité du jour, et de choisir ‘Champs de données personnalisés’ (Custom Data Fields). Puis aller sur edition/edit et enfin ‘ajouter un champ’.
Les caractéristiques d’un champ sont : son nom, le type (nombre/texte), et la manière de le résumer (en faire une moyenne ou un total en fin de semaine ).
Chose intéressante: les plugins tel Training Load créent également des champs personnalisés. De cette manière j’ai pu configurer les TRIMPS de Training Load pour avoir un total hebdo, bien plus pratique pour évaluer sa charge d’entrainement qu’une moyenne.
Le plugin indispensable pour gérer les champs personnalisés est ‘Calculated Fields’. Ce dernier permet d’appliquer des formules sur un champ à partir non seulement de ses propres champs, mais également à partir de toutes les données relatives aux sorties ( vitesse moyenne, rythme cardiaque, durée, ainsi que des tonnes d’autres infos pratiques).
On peut également définir une condition d’application de la formule, par exemple pour éviter des divisions par zéro.
Pour créer sa formule avec Calculated Fields, rien de plus simple:
- choisir le champ personnalisé dans lequel sera stocké le résultat de la formule
- rentrer l’expression de la formule et sa condition (facultatif). Pour s’aider, le clic droit donne la liste de toutes les données utilisables, rangées par thématique.
- cliquer Add
- sélectionner sa formule dans la liste, puis cliquer ‘test selected rows’ pour tester la formule sur les dernières sorties afin de vérifier que tout est ok
- sélectionner sa formule dans la liste, cliquer ‘Calculate selected rows’ pour calculer sur l’ensemble du logbook. Attention, cela peut être un peu long, et en cas de soucis dans la formule sporttracks peu planter donc sauvegarder toute modif du logbook auparavant
- pour modifier la formule, la sélectionner, faire la modif et cliquer sur Update (sinon la modif ne sera pas prise en compte). Puis comme pour une nouvelle formule, ‘test’ ou ‘calculate selected rows’.
Je me suis par exemple créé une formule ‘% moyen’ qui me calcule la pente moyenne d’une sortie pour en évaluer la difficulté. La formule est simplement: {ASCENDING}/{DISTANCE}*100 avec la condition {DISTANCE}>0 .
J’ai également voulu me créer une formule pour calculer le facteur d’efficacité (rapport puissance/rythme cardiaque) ou Efficiency Factor, dont quelques explications sont données ici :http://srmtraining.blogspot.fr/2012/11/de-la-ppg-vers-le-foncier.html , et sur laquelle je reviendrais dans un prochain article.
Là j’ai pas mal galéré car la formule ne fonctionnait mystérieusement pas comme il le fallait. Elle est pourtant toute simple en théorie: {WattsStrava} / {AVGHR} avec la condition {AVGHR}>0.
Cela renvoyait toujours 0. En faisant quelques tests j’ai fini par en déduire qu’il y avait une incompatibilité de type de données (heureusement que j’ai quelques restes de mon école d’informatique!). Le champs Watt est un entier, le rythme moyen aussi, donc le résultat devait forcément l’être d’après l’algo de calcul. Tous mes résultats de l’ordre de 0.7/0.9 étaient tronqués à 0.
Pour y remédier, il faut forcer l’algo à considérer que l’on travaille en nombre réel, en faisant un typage explicite: {WattsStrava} / (float){AVGHR}. De cette manière on travaille en nombre réel, et j’obtiens le bon résultat.
Ouf! Il faut savoir que le calculateur de données de Calculated Field travaille directement en C#, donc toutes les instructions mathématiques de C# sont utilisables dans l’expression de la formule. Il y a de quoi faire!