Membres de l'équipe
            Gwendal Bolle - Antoine Klein - Loris Martinez - Tien Dat Phan - Viviane Qian
        
        
            Présentation
            
                Ce site présente des visualisations autour de l'usage du pétrole dans le monde. L'objectif est de mettre
                en avant les différences entre les pays et les évolutions au cours du temps ainsi que l'importance du
                pétrole dans le mix énergétique mondial. Cela permettra de montrer l'évolution de la consommation, de la
                production et des réserves de pétrole au cours du temps et voir l'enjeu majeur qu'est le pétrole dans la
                lutte contre le réchauffement climatique.
            
        
        
            Source des données
            
                Energy Institute met à disposition un classeur Excel qui recense les données énergétiques dans le monde.
                Nous exploitons les feuilles “Oil: Proved reserves - Barrels (from 1980)”, et “Oil: Production -
                Tonnes (from 1965)” et “Oil: Consumption - Tonnes (from 1965)” pour les données pétrolières. Nous
                utilisons également les données de consommation des autres sources d'énergie pour faire ressortir la
                part du pétrole dans le mix énergétique mondial et par pays. La source est disponible sur le lien
                suivant :
                https://www.energyinst.org/statistical-review/resources-and-data-downloads
            
            
                Nous utilisons l'évolution de la population par pays 1860-2021 pour calculer les données par habitant
                :
                https://ourworldindata.org/grapher/population?time=1860..latest
            
        
        
            Traitements opérés
            
                Nos données étaient séparées en 5 fichiers CSV différents. Dans ces fichiers, il manquait parfois des
                données pour certaines années, comme par exemple les réserves de pétrole où nous avons des données qu'à
                partir de 1980. Afin d'avoir seulement les données qui nous intéressent pour nos visualisations, nous
                avons décidé de faire un traitement en Python pour regrouper ces données intéressantes dans un seul
                fichier json. Les données en json sont regroupées d'abord par année puis par code de pays, cela nous
                permet de pouvoir facilement effectuer les calculs nécessaires aux graphiques relatifs à une certaine
                année. Cela permet également de faciliter le mapping entre nos données et les graphes proposés par la
                bibliothèque d3.js. Dans ce fichier JSON, nous retrouvons pour chaque année et chaque code pays : le nom
                complet du pays, la production de pétrole en TWh, la consommation de pétrole en TWh, les réserves de
                pétrole en barils, la part du pétrole dans le mix énergétique mondial (en pourcentage) ainsi que la
                population du pays. Lors de l'exécution, ces données sont agregées en fonction de l'année et des pays
                sélectionnés par l'utilisateur.
            
        
        
            Architecture
            
                L'image suivante présente une vue d'ensemble de notre projet :
                
            
            
                Elle est organisée en trois points :
            
                - 
                    Traitement unique des données : il s'agit du travail effectué en Python sur les CSV de départ pour
                    aboutir aux JSON utilisés par notre page web.
                
 
                - 
                    Réalisation du site web : celle-ci est réalisée en HTML, CSS et JavaScript, ainsi que les
                    bibliothèques externe Pico.css et D3.js.
                
 
                - 
                    Hébergement statique du site web et des fichiers JSON : il est effectué grâce aux GitHub Actions et
                    à GitHub Pages qui ont permis respectivement de minifier notre code source et de l'héberger.
                
 
            
            
            
                L'image suivante présente l'organisation du code source de notre site web :
                
            
            
                Voici une courte de description du rôle de chacun :
            
                - 
                    index.html : il contient tous nos graphes.
                
 
                - 
                    rapport.html : il contient le rapport ici présent.
                
 
                - 
                    picoCustom.css : il permet de personnaliser certaines variables CSS de la bibliothèque Pico.css.
                
 
                - 
                    style.css : il contient les éléments de style de notre site.
                
 
                - 
                    map.js : il contient le code de la carte choroplèthe du monde.
                
 
                - 
                    mix.js : il contient le code du graphe de mix énergétique.
                
 
                - 
                    pie_chart.js : il contient le code du graphe en camembert.
                
 
                - 
                    curve.js : il contient le code du graphe en courbe.
                
 
            
            
        
        
            Choix des technologies
            Les données sont extraites et traitées une fois en Python puis stockées dans un fichier JSON de manière à
                faciliter la
                lecture et l'affichage.
            La page web est écrite en HTML, CSS et JavaScript. On utilise également la bibliothèque minimaliste
                https://picocss.com/ pour gagner du temps sur le style des éléments de notre interface et la
                bibliothèque d3.js pour créer les
                graphes.
            
            
                En ce qui concerne le déploiement, nous avons choisi de le faire en deux étapes via un Github Actions :
            
        
            Les graphes
            
                Notre page comporte 4 graphes :
            
                - 
                    Carte choroplèthe du monde : ce graphe permet de visualiser la consommation, la production et les
                    réserves de
                    pétroles (au choix de l'utilisateur) pour chaque pays. Un dégradé de couleur permet de mettre en
                    avant les pays qui consomment/produisent/possèdent le plus de pétrole. La carte permet par ailleurs
                    de
                    sélectionner/déselectionner des pays pour se concentrer dessus dans les autres graphes. Cette
                    sélection est également possible via le menu déroulant Countries présent au-dessus de la
                    cart.
                
 
                - 
                    Courbe : on trouve, en dessous de la carte, une courbe qui permet de visualiser l'évolution de la
                    consommation, procuction, ou des réserves de pétrole au fil du temps. Ce graphe est le seul qui ne
                    dépend pas de l'année sélectionnée puisque son rôle est de montrer l'évolution au cours du temps,
                    afin
                    d'avoir une vue plus macroscopique. À noter qu'il faut bien faire attention aux échelles et aux
                    unités car on aurait tendance à penser, par exemple, que les réserves évoluent de la même manière
                    que la production lorsqu'on bascule d'un graphe à l'autre.
                
 
                - 
                    Mix : situé en bas à droite, ce graphe permet de visualiser la part du pétrole dans le mix
                    énergétique mondial ou des pays sélectionnés. C'est le seul graphe qui ne dépend pas de la catégorie
                    sélectionnée
                    (consommation, production, réserves). Les données de mix énergétique sont effet liées uniquement à
                    la consommation. Ce graphe permet de maintenir une vue sur la consommation de pétrole tout en
                    analysant la production par exemple. Ce graphe peut être analysé comme le pendant de la courbe
                    présentée plus haut. En effet, une baisse de la part du pétrole dans le mix énergétique mondial
                    n'implique pas forcément une baisse de la consommation de pétrole, mais plutôt une augmentation
                    globale de la consommation d'énergie.
                
 
                - 
                    Camembert : situé en haut à droite, ce dernier graphe permet de recenser les pays qui
                    consomment/produisent/possèdent le plus de pétrole en fonction de l'année sélectionnée. Il permet
                    d'avoir une vue plus fine que la carte qui ne fait pas de distinction claire entre les pays les plus
                    concernés.
                
 
            
            
        
        
            Analyse GreenIT
            
                L'analyse GreenIT est basée sur l'EcoIndex.
                Cet indice permet de prendre conscience de l'impact écologique d'un site web au travers de métriques
                définies sur le site d'EcoIndex :
            
                - 
                    La performance environnementale : représentée par un score sur 100 et une note de A à G. Une note
                    élevée est synonyme de bonne performance. Notre page web obtient une note de 63.71, ce qui
                    correspond à une note de C.
                
 
                - 
                    L'empreinte environnementale : elle comprend les émissions de gaz à effet de serre et la
                    consommation d'eau générées par la page. Notre page web génère 1.73 g de CO2 et consomme 2.59 cl
                    d'eau.
                
 
                - 
                    La complexité de la page : représenté par la taille du DOM (Document Object Model). Plus cette
                    taille est importante, plus la page est complexe à déchiffrer et à afficher. Le DOM de notre page
                    web comporte 586 éléments.
                
 
                - 
                    Le poids des données transférées : dans l'EcoIndex, ce poids correspond à la taille de la page
                    web puisque ce sont les données qui sont transférées du serveur vers le client. La taille de
                    notre page web est de 1635 Ko.
                
 
                - 
                    Le nombre de requêtes http : l'objectif est de limiter le nombre de requêtes http pour limiter
                    le nombre de connexions au serveur. Notre page web effectue 11 requêtes http trois seulement sont
                    liées à la bibliothèque d3.js. Le reste étant des requêtes vers des fichiers locaux. Une idée
                    d'amélioration serait de
                    regrouper les fichiers locaux en un seul fichier. Mais cela rendrait le code moins lisible.
                
 
            
            
            
                Voici le rapport complet de l'analyse GreenIT de notre page web : 
                
            
            
                L'analyse des bonnes pratiques montre plusieurs points d'amélioration :
            
                - 
                    Ressources cachées : certaines ressources utilisées par notre page web ne comporte pas de gestion de
                    cache. Cela signifie que le comportement du navigateur vis-à-vis de ces ressources n'est pas
                    déterminé. Il est donc possible que le navigateur ne les mette pas en cache et donc qu'il les
                    recharge à chaque fois qu'elles sont utilisées. À noter que les deux ressources concernées sont
                    liées à la bibliothèque d3.js. Nous n'avons donc pas la main sur ces ressources. La seule option
                    pour
                    corriger cela serait d'utiliser une autre bibliothèque qui gère mieux le cache.
                
 
                - 
                    Validation du JavaScript : l'analyse montre une erreur dans le fichier map.js. Or, après validation
                    du code, nous ne constatons pas d'erreur. Une analyse plus détaillée nous aurait permis de
                    comprendre la source du problème. Mais sans information supplémentaire, nous ne pouvons pas corriger
                    ce point.
                
 
                - 
                    Minification des ressources : la minification consiste à supprimer les espaces, les commentaires et
                    à réduire la taille des noms de variables. Cela permet de réduire la taille des fichiers et donc de
                    réduire le temps de chargement de la page. L'analyse montre que 7 fichiers JavaScript et CSS n'ont
                    pas été minifiés. Parmi ces fichiers, 6 sont des fichiers locaux. Nous pouvons donc améliorer notre
                    empreinte grâce à cette action rapide.
                
 
                - 
                    Print CSS : les feuilles de style print permettent de définir le style de la page lorsqu'elle est en
                    mode impression. Cela permet de supprimer les éléments inutiles et de mettre en avant les éléments
                    importants. Notre page web ne comporte pas de feuille de style print. Cela n'a pas beaucoup d'impact
                    car notre page n'est pas destinée à être imprimée. Mais cela peut être une amélioration intéressante
                    si l'on souhaite améliorer notre empreinte.
                
 
            
            Comme indiqué, seule la minification des ressources était réalisable en un temps raisonnable, et réellement
            utile dans l'optique de réduire notre empreinte. Après minification, voici le rapport de l'analyse GreenIT :