Le site internet de ce projet est disponible à l'URL suivante: https://guibouland.github.io/GroupProject.
Le projet consiste à construire un site web en utilisant Quarto et Github dans le but d'étudier la pollution en Occitanie au cours des dernières années. Pour cela nous utilisons des jeux de données de pollution de Atmo Occitanie et des données météorologiques de SYNOP.
Pour utiliser correctement notre projet, nous vous invitons à créer un environnement virtuel contenant les dépendances présentes dans le fichier requirements.txt. Il contient les librairies python que nous avons utilisées :
- pandas
- geopandas
- folium
- branca
- numpy
- seaborn
- plotly
Cependant, pour une visualisation simple de notre site internet, aucun télechargement n'est nécessaire au bon fonctionnement de celui-ci.
Le site se divise en 4 parties:
-
Visualisation géographique de la pollution au cours de cette année avec l'utilisation de
foliumet de cartes de températures.
Utilisation degeopandaspour décrire les départements à partir d'un fichiergeojsonet depandaspour manipuler les dataframes. Pour légender la carte, l'utilisation debrancafut nécessaire; -
Évolution départementale qui, sur plusieurs périodes, analyse la pollution à l'échelle départementale pour les 5 polluants suivants: NO, NOX, O3, PM10, PM2. Etudes des départements séparées, une analyse intra-départementale, et une autre inter-départementale. Analyse uniquement sur 10 des 13 départements en Occitanie par manque de données. Dans les graphiques restants, pour chaque valeur manquante, la valeur 0 est associée. Téléchargement des 2 bases de données sur le dépôt github afin d'éviter d'utiliser une commande qui les appelle à chaque fois. La première correspond aux moyennes mensuelles des quantités de chaque polluant sur l'année actuelle et la seconde aux moyennes annuelles des quantités sur les 5 dernières années. Chaque graphique regroupe l'évolution d'un polluant pour une base de données choisie. Le module
expressdeplotlyest utilisé pour générer les points, et le modulegraph_objectsdeplotlypermet d'ajouter les traces qui relient les points, pour obtenir les graphiques; -
Comparatif entre villes de différentes populations au cours de cette année, en utilisant
pandaspour manipuler ce dataframe. Avec le nombre de données disponibles dans certaines grandes villes telles que Montpellier et Toulouse, nous avons aussi réalisé un comparatif entre stations de prélèvements de ces villes, le tout présenté sous forme de graphe en utilisant le modulegraph_objectsdeplotly, permettant un minimum d'interactivité grâce à des groupes de légendes (par polluants) cliquables; -
Mise en évidence de l'influence de facteurs météorologiques sur la concentration de pollution via l'utilisation de
pandaspour la manipulation des dataframes ainsi que degraph_objectsetexpressdeplotlypour un affichage interactif de graphes à coordonnées cartésiennes comme polaires. Un sous-modulemeteodemodulesest créé spécifiquement pour la mise en page et l'ajout de courbes sur les graphes.
- A l'aide du package
memory-profiler, il est possible de surveiller la consommation en temps et en mémoire d'une fonction python. Cependant, il n'est pas possible de vérifier de tels critères sur des fichiersQuarto. Les tests des fichierscarte.pyetmeteo.py(avec la commandemprof run) donnent ainsi:
| carte | meteo |
|---|---|
![]() |
![]() |
L'utilisation de la mémoire est de l'ordre de 50 mébioctects (environ 50 Mo) par fichier python, ce qui reste convenable.
- Avec la fonction
time(), il est possible de déterminer le temps nécessaire pour chaque cellule python d'un fichier quarto.
| fichier quarto | Execution time |
|---|---|
| carte | 0.21710 s |
| départements | 0.50733 s (par départements) * 13 = 6.59529 s |
| villes | 0.09505 s + 0.17805 s + 0.28116 s = 0.55426 s |
| météo | 0.31670 s + 0.14615 s + 0.13853 s = 0,60138 s |
Pour l'efficacité temporelle, la partie départementale est la plus longue. Tandis que les autres s'effectuent en moins d'une seconde, cette partie du site prend du temps à s'afficher.
Pour remédier à cela, des outils comme dash ou Tkinter ont été abordé mais abandonné car incompatibles avec Github. Le choix d'importer directement les bases de données au lieu de les appeler avec requests est aussi un parti pris pour améliorer la vitesse d'exécution.
Une amélioration possible serait d'augmenter la dépendance des fichiers .qmd aux fonctions python.
Nous avons opté pour une licence MIT, octroyant à tout le monde les droits sur notre projet, avec très peu de contraintes.
Ce projet a été réalisé par 4 élèves de l'Université de Montpellier:

