<aside> <img src="/icons/arrow-right_gray.svg" alt="/icons/arrow-right_gray.svg" width="40px" /> Enjeu
<aside> <img src="/icons/new-alert_gray.svg" alt="/icons/new-alert_gray.svg" width="40px" /> Problématique
<aside> <img src="/icons/bullseye_gray.svg" alt="/icons/bullseye_gray.svg" width="40px" /> Objectif
Les problèmes (et solutions !) se situent à plusieurs niveaux : à la fois du côté du modèle NGC, des modèles importés mais également au sein du moteur Publicodes lui-même.
Certaines erreurs étaient directement liées à des erreurs dans l'écriture du modèle (certaines unités possédaient un s, d'autres non, certaines règles n'avaient pas d'unité). Elles sont corrigées dans une PR côté modèle NGC.
De nombreuses erreurs étaient liées à l'amortissement dans NGC. A titre d'exemple, l'empreinte d'un appareil est défini comme l'empreinte de sa fabrication, divisée par sa durée de vie : le calcul donne donc des kgCO2e/an. Or le résultat dans NGC est donné en kgCO2e car la deuxième partie de l'unité /an est implicite ! C'est également le cas pour la notion de personnes (habitant et voyageur). Pour être tout à fait correct on devrait avoir dans NGC une unité finale en kgCO2e/an/personne.
Afin de simplifier le calcul et la gestion des unités, il a été décidé pour le moment de supprimer les unités de durée de vie et de personne pour avoir directement des kgCO2e à l'issue des calculs d'empreinte.
<aside>
👉 Attention: l'unité d'une règle est également, par défaut, l'unité affichée dans le test. Ainsi, en enlevant les “s” ou en supprimant les unités an
ou personne
, on perd une information. Pour les unités qui sont définies, une table de conversion existe déjà. En revanche, il faudra trouver une solution pour les règles qui n'en possède pas (pour le nombre d'habitants ou voyageurs par exemple). On pourrait définir un nouvel attribut dans le modèle : unité à afficher
.
</aside>
Les modèles importés ne doivent pas comporter d'erreurs d'unités, au même titre que le modèle NGC. Une PR a donc été ouverte pour corriger ces erreurs :)
Petit point d'attention sur l'unité kgCO2e et kgCO₂e qui devraient faire partie d'une table d'équivalence (cf 3) ✴️ Les tables de conversion et d'équivalences).
La version optimisée ne gère pas les unités. Au moment du chargement du modèle NGC qui charge d'abord la version optimisée, on aura donc toujours des dizaines d'avertissement (ce qui est normal). Un premier patch pourrait être de désactiver l'affichage des avertissements lors du chargement de la version optimisée. Une deuxième étape sera de faire en sorte que l'optim prenne en compte les conversions d'unités.
Les erreurs d'unités s'affichent uniquement à l'évaluation d'une règle. On a donc en premier lieu dans NGC les erreurs associées à l'évaluation de bilan
et ses valeurs par défaut. Par exemple, les erreurs d'unités s'il y en a ne s'afficheront pas pour la piscine
qui n'est pas applicable par défaut. Il faudrait donc trouver un moyen de vérifier les unités pour l'arbre de décision complet. Ce serait aussi un moyen de tester l'évaluation des règles pour l'ensemble de l'arbre de décision et éviter les erreurs (une division par 0 dans une règle inactive par exemple !).