Rapport

Objectif

L'objectif de ce projet étant de représenter de façon originale et efficace un ensemble de données sur les thèmes du développement durable et de la responsabilité sociale, nous avons choisi de représenter les émissions de gaz CO₂, methane, N₂O et l'ensemble des gaz polluants (à effet de serre), au fil des dernières décennies par pays et secteur d'activité. Nos visualisations doivent permettre de répondre à la question suivante :

Ces dernières décennies, quelles sont les responsabilités des pays et des secteurs économiques sur les émissions de gaz polluants ?

Le but est, à l'aide de ces représentations graphiques interactives, de pouvoir déterminer quels sont les pays qui émettent le plus, quels sont les secteurs dont les émissions sont prépondérantes mais aussi quels sont les secteurs d'activité dont les émissions sont prépondérantes dans chaque pays, et le tout entre 1990 et 2016.

Données et licences de réutilisation

Nous avons utilisé trois jeux de données différents parmi lesquels :

Librairies utilisées

La présente application est réalisée sans framework Javascript et est mise en page à l'aide de Boostrap 4.5 et de quelques feuilles de styles CSS complémentaires.

Les graphiques sont réalisés à l'aide de D3.js pour réaliser la carte, le diagramme en barres et le diagramme de Sankey tandis que le diagramme circulaire à plusieurs niveaux est implémenté à l'aide de FusionCharts.

Traitement des données

Les données brutes sont proposées par Our World in Data via l'intermédiaire de plusieurs fichiers CSV. Chaque fichier contient de nombreuses données sur les émissions pour un même gaz. Des scripts Python (avec la librairie pandas) ont été developpés pour les fusionner en un seul fichier CSV ainsi que pour effectuer des regroupements de données par continents. Nous avons également supprimé les colonnes de données inutiles ou parcellaires pour notre projet. Enfin, il a fallu transformer les codes ISO 3166 des pays afin de passer d'un code à trois lettres à un code à deux lettres identique à celui présent dans les données GeoJSON permettant de tracer la carte. Autrement, il n'aurait pas été possible de mettre en lien la carte avec les données d'Our World in Data.

Nous avons également appliqué un autre script afin de convertir nos données du format CSV à une représentation adaptée au format JSON dans plusieurs documents, permettant d'accéder plus facilement aux données et rendre le tracé des diagrammes plus aisé. En particulier, les pays ont été regroupées par continent en regroupant les pays puis en additionnant leurs valeurs tandis que pour le diagramme de Sankey, les données sont organisées en nœuds et liens.

→ Accès aux scripts de traitement des données : ChallengeOpenData_2020_groupe9.ipynb.

Architecture du projet

Notre application est directement disponible à la racine du projet en ouvrant le fichier index.html dans un navigateur web récent. Cette application appelle plusieurs autres fichiers afin de gérer les différentes représentations graphiques et leurs animations.

L'application est structurée selon l'architecture Modèle-Vue-Contrôleur (MVC).

Visualisation des données

Le but tout au long du projet a été de créer une interface simple, intuitive et capable de répondre à la question posée au début de ce rapport. L'utilisateur se retrouve face à un écran avec une carte, trois graphiques en dessous et un filtre en haut à gauche pour selectionner le type de gaz qui sera présenté. Un slider permet de choisir en fin de page l'année pour laquelle l'utilisateur souhaite visualiser les données (la courbe des émissions par secteur ne varie pas en fonction du temps) ou même démarrer une animation faisant défiler les années.

Carte

La carte des émissions des pays permet, pour une année et un type de gaz donnés, de visualiser à l'aide d'une échelle de couleurs variant du vert au violet les niveaux d'émissions de gaz polluants des différents pays. L'utilisateur peut zoomer et faire translater la carte notamment pour accéder aux plus petits pays. Il est également possible de cliquer sur un pays pour zoomer dessus et afficher ses frontières.

En passant le curseur sur un pays, une tooltip s'affiche avec le nom du pays, la quantité d'émissions du gaz considéré par le pays ainsi qu'un diagramme en barres présentant la répartition par secteur des émissions de gaz polluants en millions de tonnes équivalent CO₂.

Courbes d'émissions de gaz suivant les secteurs

Nous traçons dans un module les courbes de l'évolution des émissions de gaz au cours de la période considérée (de 1990 à 2016) et en fonction des secteurs d'activité. Il permet de montrer, à l'échelle mondiale, que les émissions de gaz polluants croissent et augmentent de manière substancielle dans certains secteurs comme celui de l'électricité.

Diagramme circulaire hiérarchique

Le diagramme circulaire hiérarchique présente, dans sa première couronne, les secteurs les plus émetteurs du gaz polluants choisi par l'utilisateur (CO₂, méthane, N₂O ou à plus généralement tous les gaz à effet de serre). On trouve en deuxième couronne les continents les plus émetteurs pour chaque secteur de la première couronne. Pour plus de lisibilité, les données sont limitées aux sept secteurs les plus importants dans les émissions de gaz à effet de serre. Nous avons également choisi de regrouper les pays par continents pour obtenir un affichage plus synthétique et lisible, quitte à devoir passer le curseur sur le pays en question pour connaître les pays qui émettent le plus par rapport à la paire (continent, secteur) ciblée.

L'objectif de ce graphique est de pouvoir visualiser, en fonction des années, quel(s) secteur(s) ont une responsabilité prépondérante dans l'émission des gaz considérés, et de quels continents, puis pays, sont issues ces émissions. Les continents, dans la deuxième couronne, sont désignés par leurs sigles (à défaut de pouvoir les discriminer par une couleur ou une texture) : AS (pour l'Asie), NA/SA (pour l'Amérique, nord et sud compris), AF (pour l'Afrique), OC (pour l'Océanie) et EU (pour l'Europe). Une tooltip s'affiche en passant le curseur sur chaque continent. Elle permet d'afficher le nom complet du continent, le pourcentage d'émissions du continent par rapport au secteur ainsi que les trois pays les plus polluants du continent pour le secteur considéré.

À noter que le graphique présente les données fournies par chaque année, de 1990 à 2016, et du coup, c'est possible de bien remarquer l'évolution de chaque secteur et la contribution de chaque continent en utilisant la barre de temps.

Diagramme de Sankey

Le diagramme de Sankey, en tant que diagramme de flux, permet de visualiser efficacement les relations entre continents, secteurs d'activité et types de gaz en matière de quantité de gaz émis. Contrairement au diagramme circulaire hiérarchique, on voit en premier plan l'émission de chaque continent et sa contribution pour les secteurs. Ce graphique permet d'obtenir une vue d'ensemble des relations entre les différents paramètres de l'étude (pays - par l'intermédiaire du regroupement par continents -, type de gaz à effet de serre et secteurs d'activité).
Le détail du volume des flux (i.e. des quantités de gaz émis) peut être obtenu en passant le curseur sur les liens entre les éléments du diagramme.

Limites du projet

Par rapport aux données

Avant 1990 et à partir de 2016, les données étaient incomplètes, ce qui nous a conduit à sélectionner la plage d'années 1990-2016 afin de réaliser des comparaisons plus complètes et intéressantes, tout en gardant la possibilité d'évaluer dans le temps l'évolution des émissions sur la fin du XXème siècle et le début du XXIème siècle.
Cela nous a également permis de limiter le poids de l'archive en ne conservant que des données significatives.

Il aurait pu être judicieux de représenter les niveaux d'émissions avec une échelle logarithmique pour également distinguer les variations des pays faiblement émetteurs. Malheureusement, nous n'avons pas pu car plusieurs pays ont des valeurs d'émissions de gaz négatives, dont nous ne sommes pas sûrs d'avoir compris la signification physique. Il est possible que ces pays absorbent plus de gaz polluants qu'ils n'en émettent, auquel cas les supprimer modifierait le sens des données réutilisées. Pour cette raison, nous utilisons simplement une échelle linéaire.

De plus, les données sont intégralement en Anglais alors que notre interface est en Français. Il aurait été judicieux de traduire les données, au moins à l'affichage.

Contraintes techniques

Au niveau technique, si le découpage par fichiers nous a permis de concevoir de manière modulaire nos différents diagrammes et la gestion des événements, il s'avérerait judicieux de regrouper l'ensemble des fichiers .js dans un seul fichier, voire de le minifier, afin de limiter le nombre de requêtes au chargement de la page ainsi que le poids final des scripts dans l'archive. Néanmoins, les fichiers Javascript sont laissés comme tels à des fins de lisibilité pour l'examinateur.

Afin de limiter le poids de l'archive du rendu final, les librairies et les données, autant que possible, sont chargées directement depuis Internet, ce qui génère parfois un grand nombre de requêtes dont le nombre aurait pu être limité autrement. Cela a un impact direct sur le temps de chargement de la page.
Les données sont stockées dans des fichiers Javascript directement dans des variables en tant qu'objets Javascript (donc au format JSON). En effet, les restrictions CORS nous empêchent de charger directement en local un fichier JSON dans nos scripts.

Choix de conception de la visualisation

Pour améliorer la lisibilité, nous aurions pu définir une vraie tooltip sur le diagramme de Sankey pour afficher les données relatives aux liens entre les éléments. Toujours dans une recherche de lisibilité, il aurait été judicieux de traduire l'ensemble des données (notamment les noms de pays) afin d'avoir un affichage parfaitement cohérent.
Sur le diagramme circulaire hiérarchique, nous avons choisi de colorer la sélection courante en bleu clair. Il est possible que ce ne soit pas le plus judicieux, dans le sens où cela peut porter confusion avec les différents secteurs angulaires (considérés par rapport au premier anneau) déjà eux-mêmes différenciés par leur couleur. Nous aurions également aimé utiliser des textures pour différencier les continents dans le second anneau du diagramme, mais nous n'avons pas trouvé d'option pour le faire avec la librairie FusionCharts.