Natixar / natixar-frontend

The static front end of the Natixar SaaS platform
0 stars 5 forks source link

Main Dashboard Scope filter is not about scopes #5

Open lepeuvedic-natixar opened 3 months ago

lepeuvedic-natixar commented 3 months ago

The scope filter doesn't allow scopes, instead it offers a multiple choice between own operations, upstream and downstream (note that this is not the same since own operations match scope 1, scope 2 is in fact intermediate between scope 1 and scope 3 as it is directly connected with operations, but emissions are actually the responsibility of "locally clean" energy suppliers, and scope 3 concernes both upstream and downstream emissions.

Scopes are not always 1/2/3 and the filter should offer to select by the top level classification of categories, whatever it is. BEGESv5 has 6 top level categories bearing distinct names, and does not make any reference to scopes. Some people subdivide scope 3 in scope 3/4/5, with scope 4 related to indirect emissions caused by the use phase of the product (like road construction for cars), and scope 5 being the upstream and downstream emissions of such (it's a never ending chase since more cars cause more roads, but more roads cause more cars).

astowny commented 2 months ago

"Dans les data detectors, il y a un détecteur pour les "scopes" et il me semble correct; il doit détecter les bonnes catégories. La question n'est pas vraiment de détecter les groupes de catégories correctement mais de comprendre pourquoi seulement deux groupes sont affichés en mode BEGESv5, au lieu de 6."

lepeuvedic commented 2 months ago

C'est moche: j'ai du refuser la PR #68 ! A cause de ça, il n'est pas possible de travailler ici sur la base résolue de l'issue #61.

Je propose les couleurs de base suivantes:

Purple-Blue: #5656d8 Blue-Green (leaning blue): #56add8 Blue-Green (leaning green): #56d8ad Green: #56d856

Il suffit de mettre les numéros de 1 à 6 dans les cases à raison d'un seul par ligne, et vous aurez une combinaison unique de couleurs.

Colours

astowny commented 2 months ago

Est-ce que ça c'est bon ? image

lepeuvedic commented 2 months ago

Je ne vais pas répondre "oui" parce que l'idée est que ça soit robuste au nombre de groupes, pas codé en dur en fonction du seul code, or ce que vous me présentez n'est qu'un résultat pour un jeu de données particulier (BEGESv5). Je ne peux pas donner un accord sur la formule de calcul sur la base d'un résultat. Il pourrait être correct par pure chance.

Je propose que les colonnes correspondent dans l'ordre à "O", "U", "", "D" parce que seule BEGESv5 a du "D" et parce que "" est souvent U + D et les couleurs étant espacées pareil, le colonne 3 est pile au milieu entre 2 et 4 en termes de couleur.

Le graphiques sont sur fond blanc: j'aurais favorisé les couleurs les plus claires pour les taxonomies qui n'ont que 3 groupes, donc fait plutôt l'inverse en plaçant 1,2,3 sur les 3 lignes du bas.

Ensuite il faut calculer l'assombrissement fonction du "code de catégorie". Les codes me sont imposés réglementairement. Il se pourrait qu'il n'y en ait pas (par exemple dans GHG Protocol, les groupes intermédiaires Upstream et Downstream n'en ont pas. Au lieu du code, il vaudrait mieux s'assurer que les calculs de hiérarchie respectent l'ordre de la réponse du serveur, et se baser sur l'ordre des scopes dans le vecteur "state", plutôt que sur l'attribut "code" qui sera peut-être non numérique demain matin.

Pour le moment ces deux informations coincident pour toutes les taxonomies, mais il ne faut pas utiliser "code" pour ce calcul. Si les couleurs ne sont pas optimales, je pourrai facilement tester des variantes en changeant l'ordre de présentation des catégories par le serveur, sans changer les "id" ni les codes.

En admettant néanmoins qu'on ait un index de 1 à 3 ou 1 à 6, avec une présentation dans l'ordre de "code", ça donnerait ceci:

- - 6 -  1 * 0,96 * 0,92 * 0,88 * 0,84 * 0,8 = 0,5223
- - - 5  1 * 0,96 * 0,92 * 0,88 * 0,84       = 0,6529
- 4 - -  1 * 0,96 * 0,92 * 0,88              = 0,7772
- - 3 -  1 * 0,96 * 0,92                     = 0,8832
- 2 - -  1 * 0,96                            = 0,96
1 - - -  1                                   = 1

En termes de coefficients d'assombrissement, il faut des coefficients compris entre 0 et 1, décroissants en fonction du "code". On peut faire un calcul en deux étapes:

  1. Calculer les valeurs d'une droite allant du point (1,1) au point (max(code), 4/5) . Le coefficient 4/5 est ajustable: cette valeur n'assombrit que de 50%, mais les écrans ne sont pas très linéaires, donc il faut tester un peu.
  2. Calculer les facteurs d'assombrissement en multipliant les coefficients issus de la droite comme dans le tableau ci-dessus. Ca donne un assombrissement plus net pour les couleurs plus sombres, parce que l'oeil les distingue naturellement moins bien et ne voit pas la couleur quand c'est sombre.
lepeuvedic-natixar commented 2 weeks ago

A clean color assignation function must be implemented.