Rapport du projet
Notre projet a pour but d'illustrer à quel point certains pays émettent plus de CO2 que d'autres.
Cependant, le simple tonnage par pays n'est pas très significatif, il convient de prendre en compte
le nombre d'habitants au sein du pays. De plus, ce projet a pour objectif d'illustrer la forte
évolution des émissions de CO2 au cours des 60 dernières années.
Nous nous sommes également intéressés au lien entre le PIB d'un pays et ses émissions de CO2, et nous
avons trouvé des courbes ayant globalement la même allure, notamment pour des pays ayant connu un fort
développement industriel (ex : Chine), cette tendance est moins vraie en Europe, qui commence à faire
des efforts pour réduire ses émissions, efforts visibles sur les courbes.
Le fonctionnement de cette page est très simple, il y a :
- Une carte du monde affichant l'une des 3 informations (population, émissions de CO2, émission
par habitant), pour une année donnée.
- Un sélecteur d'années en dessous de la carte, et un selecteur pour le type de données affichées.
- Un graphe affichant l'évolution de la donnée sélectionnée pour le pays sélectionné sur la carte
(il suffit de cliquer sur un pays), et le PIB. Il est possible d'afficher :
- La donnée sélectionnée
- Le PIB
- Les deux (dans ce cas il y a deux échelles verticales, pour optimiser l'affichage)
Jeu de données
On utilise les jeux de données suivantes.
Traitement sur les données
Les jeux de données issus de deux sources différentes présentaient des incohérences (par exemple des code
pays différents pour les pays disparus, typiquement ceux de l'URSS, et des zones autres que des pays
(ex : "Christmas Island", "Europe"...)). Nous avons donc opéré un pré traitement, en
remplaçant les codes pays numériques par des vrais alpha codes suivant la norme ISO-3166-1 alpha-3
(alpha code à 3 lettres).
Pour cela nous avons réalisé un script qui récupérait les pays avec des incohérences de alphacode entre
les deux jeux de données, et nous avons corrigé ces codes.
Concernant les pays disparus (par exemple l'URSS), nous avons décidé de ne prendre en compte que les
données des pays actuels, notamment car nous avions des contraintes liées à l'affichage sur la
carte.
Pour les données de PIB, il a fallu effectuer un traitement plus poussé, pour suivre la même architecture
de données que les deux autres.
Nous avons donc utilisé un premier algorithme pour formatter le cvs sous la même forme que les deux
autres, et ensuite suivi le même principe.
Le choix a été fait de prétraiter les données, afin de tout avoir directement, y compris de données
redondantes (le rapport CO2/population), pour des raisons de performances et de simplicité, la taille
n'étant pas problématique dans ce cas.
Principe de l'algorithme de traitement :
Architecture
- Deux fichiers python :
dataBuilder.py
: prend les données prétraitée (correction des alphacode,
suppression des données autres que des pays...), et crée le fichier data.csv
avec toutes les informations nécessaires pour l'affichage.
dataFixer.py
: contient les différentes fonctions qui ont permis le
prétraitement :
- Une fonction pour détecter les pays présents dans un fichier et pas l'autre.
- Une fonction pour détecter les alphacode qui n'étaient pas des bons alpha codes
(ceux des pays disparus dans le fichier avec les données de population).
- Une fonction pour prétraiter les données de PIB, pour qu'elles suivent le même
format que les deux autres fichiers de données.
- app.js : utilise les différentes blibliothèques javascript pour construire les intéractions avec
l'utilisateur. La carte intéractive, les graphes par pays en fonction de la visualisation
choisie (population, emissions de CO2, ...).
- world.geojson : contient les données pour rendre la carte du monde interactive.
Choix des technologies
- Javascript
- D3.js : bibliothèque javascript pour récupérer les données des csv
ainsi que dessiner la carte
- Chart.js : bibliothèque javascript qui permet de produire des
graphiques
- Python3 : utilisé pour prétraiter les
données
- VueJS : framework javascript permettant de produire une interface
utilisateur
- HTML/CSS : permet de structurer et la mise en page
Groupe
- Guillaume de BIGAULT de GRANRUT
- Medric DJEAFEA SONWA
- Léo DUPONT
- Tanguy MICHARDIERE
- Alexian SERRANO