Skip to content

Alex-code-lab/LABeCO2

Repository files navigation

📝 LABeCO2 Copiright © 2025 Alexandre Souchaud : tous droits reservés

Contact

Pour toutes questions ou informations concernant le logiciel et ses droits, veuillez contacter : labeco2.contact@gmail.com

Auteur

Alexandre Souchaud labeco2.contact@gmail.com

Date de création de la version 1

1er Octobre 2024

Date de création : 01/10/2024

Date de la dernière version : 10/04/2025

Version Actuelle V2.1

DOI: 10.5281/zenodo.15243498

Description

Ce calculateur de Bilan Carbone LabeCO2 est une application interactive développée en Python utilisant PyQt5 pour l’interface graphique. Elle permet de calculer et de visualiser les émissions de CO₂e (équivalent CO₂) liées aux activités de laboratoire. L’objectif est de sensibiliser les utilisateurs à leur empreinte carbone et de les aider à identifier les postes les plus énergivores pour adopter des pratiques plus durables.

Fonctionnalités

  • Interface intuitive : SĂ©lectionnez des catĂ©gories, sous-catĂ©gories et sous-sous-catĂ©gories pour calculer vos Ă©missions.
  • Gestion des machines personnalisĂ©es : Calculez les Ă©missions liĂ©es Ă  l’utilisation de machines spĂ©cifiques (puissance, temps d’utilisation, type d’électricitĂ©).
  • Visualisation graphique :
    • Graphiques en camembert interactifs.
    • Graphiques en barres empilĂ©es et proportionnelles.
    • Analyse par codes NACRES (4 premiers caractères affichĂ©s).
  • Gestion des donnĂ©es :
    • Historique complet des calculs avec possibilitĂ© de modification.
    • Exportation et importation des donnĂ©es (CSV, Excel, HDF5).
  • CompatibilitĂ© avec les codes NACRES : Analyse des consommables avec une prĂ©cision accrue.
  • RĂ©fĂ©rences transparentes : IntĂ©gration des bases de donnĂ©es scientifiques pour garantir la fiabilitĂ© des rĂ©sultats.

Ajout de capture d’écran

Prérequis

  • Python : Version 3.7 ou supĂ©rieure
  • Bibliothèques Python :
    • pandas
    • PySide6
    • matplotlib
    • numpy
    • adjustText

Pour installer les dépendances :

pip install -r requirements.txt

requirements.txt et autres se retrouvent dans le dossier "instalation".

Installation

  • 1. Cloner le RĂ©pertoire
            
    git clone https://github.com/votre-utilisateur/calculateur-bilan-carbone.git
    cd calculateur-bilan-carbone
    
            
  • 2. CrĂ©er un Environnement Virtuel (Optionnel mais RecommandĂ©)
            
    python -m venv venv
    source venv/bin/activate  # Pour macOS/Linux
    venv\Scripts\activate     # Pour Windows
            
            
  • 3. Installer les DĂ©pendances
            
    pip install -r requirements.txt
    
            

    Note : Si le fichier requirements.txt n’est pas présent, installez manuellement les bibliothèques nécessaires :

            
    pip install pandas PySide6 matplotlib numpy adjustText
    
            
  • 4. TĂ©lĂ©charger les DonnĂ©es
    • Assurez-vous que le fichier de donnĂ©es data_base.hdf5 est prĂ©sent dans le dossier data_base_GES1point5.
    • Ce fichier contient les facteurs d’émission nĂ©cessaires au calcul du bilan carbone.
  • 5. VĂ©rifier les Ressources
    • Le dossier images doit contenir :
      • Logo.png : Le logo de l’application.
      • icon.png : L’icĂ´ne de l’application.

Utilisation

  • 1. Lancer l’Application
            python main.py
            
  • 2. Interagir avec l’Interface
    • • SĂ©lection de CatĂ©gories : Choisissez une catĂ©gorie dans la liste dĂ©roulante pour commencer.
    • • Sous-catĂ©gories et Recherches : Affinez votre sĂ©lection en choisissant une sous-catĂ©gorie ou en utilisant la barre de recherche.
    • • Saisie des Valeurs : Entrez les valeurs demandĂ©es (par exemple, la quantitĂ© en kg, le nombre de jours, etc.).
    • • Calculer le Bilan Carbone : Cliquez sur le bouton “Calculer le Bilan Carbone” pour ajouter le calcul Ă  l’historique.
    • • Ajouter une Machine : Si vous souhaitez calculer les Ă©missions d’une machine spĂ©cifique, sĂ©lectionnez la catĂ©gorie “Machine” et renseignez les informations demandĂ©es.
    • • Visualiser le Graphique : Une fois vos calculs effectuĂ©s, cliquez sur “Valider” pour gĂ©nĂ©rer le graphique en camembert.
    • • Exporter/Importer des DonnĂ©es : Utilisez les boutons correspondants pour sauvegarder ou charger vos calculs.
  • 3. Modifier ou Supprimer des Calculs
    • • Modifier : Double-cliquez sur un Ă©lĂ©ment de l’historique pour modifier les valeurs.
    • • Supprimer : SĂ©lectionnez un Ă©lĂ©ment et cliquez sur “Supprimer le calcul sĂ©lectionné”.

Structure du projet

LABeCO2/                          # Racine du projet
├── CHANGELOG.md                  # Historique complet des versions et correctifs
├── LICENCE.md                    # Licence MIT appliquée au projet
├── README.md                     # Documentation principale (présentation, install…)
├── requirements.txt              # Dépendances Python minimales (pip)
├── structure.txt                 # Arbre exhaustif généré automatiquement
├── main.py                       # Point d’entrée CLI/GUI : lance l’app PySide6
│
├── data_base_GES1point5/         # Base officielle Labo 1point5 (facteurs d’émission)
│   ├── data_base_GES1point5.csv  # Version CSV de la base consolidée
│   ├── data_base_GES1point5.hdf5 # Version HDF5 (chargement plus rapide)
│   ├── data_base.hdf5            # Dump minimal pour l’exe packagé
│   └── data_initiales/           # Données sources mises à jour (07 nov 2024)
│       ├── GES1point5_electricity_factors_20241107.tsv   # Électricité
│       ├── GES1point5_purchases_factors_20241107.tsv     # Achats
│       ├── GES1point5_ractivities_factors_20241107.tsv   # Activités de recherche
│       ├── GES1point5_transports_factors_20241107.tsv    # Transports
│       ├── GES1point5_vehicles_factors_20241107.tsv      # Véhicules
│       ├── make_table_data_1point5.py  # Script de fusion/clean des TSV
│       ├── table_unique.{csv,h5,xlsx}  # Table agrégée prête à l’import
│
├── data_masse_eCO2/              # Facteurs d’émission exprimés « au kg » (matériaux…)
│   ├── code_NACRES/              # Ressources pour le mapping NACRES (codes achats FR)
│   │   ├── NACRES_list.csv       # Liste nettoyée des codes NACRES
│   │   └── *.ipynb / *.numbers   # Notebooks & tableurs de construction
│   ├── data_base_masse_consommable/
│   │   ├── masses_consommable.xlsx   # Données brutes de masse des consommables
│   │   └── ajout_data_masse.py       # Ajout/enrichissement dans la base
│   ├── data_base_materiaux/      # Scripts pour matériaux spécifiques
│   │   └── materiau_eCO2-kg.py
│   ├── empreinte_carbone_*.h5    # HDF5 : matériaux, solvants, consommables
│   ├── mock_consumables_100.*    # Jeu de données factice pour tests UI
│   └── nacres_2022.h5            # Mapping NACRES → catégories 2022
│
├── images/                       # Ressources graphiques
│   ├── Logo.png                  # Logo affiché dans l’interface/README
│   ├── icon.png                  # Icône standard (Windows/Linux)
│   ├── icon.icns                 # Icône macOS (.app)
│   └── LABeCo2.pdf               # Flyer ou documentation marketing
│
├── installation/                 # Guides d’installation et scripts systèmes
│   ├── requirements-brew.txt     # Tap Homebrew : libs système nécessaires
│   ├── installation_and_usage_*  # Tutoriels détaillés (Conda, Homebrew…)
│   └── setup_labeco2_env.txt     # Pas‑à‑pas pour créer un venv prêt à l’emploi
│
├── manips_types/                 # Gestion des « types de manip » (scénarios d’usage)
│   ├── manips_type.sqlite        # DB SQLite : types + paramètres par défaut
│   ├── example_history.csv       # Exemple d’historique utilisateur
│   ├── a_manips_type_db.py       # CRUD sur la base SQLite
│   ├── b_create_manip_type_file.py   # Export CSV/HDF5 depuis la DB
│   └── c_manage_manips_type.py       # IHM PySide6 de gestion des types
│
├── styles/                       # Feuilles de style Qt (QSS)
│   └── styles.qss
│
├── utils/                        # Fonctions utilitaires transverses
│   ├── data_loader.py            # Abstraction d’accès aux HDF5/CSV
│   ├── color_utils.py            # Génération de palettes & conversions
│   ├── graph_utils.py            # Helpers matplotlib (couleurs cohérentes, labels)
│   └── readme_utils.md           # Notes dev sur les utils
│
└── windows/                      # Interface graphique (PySide6)
    ├── main_window.py            # Fenêtre principale : navigation + graphes
    ├── carbon_calculator.py      # Logique métier du calcul CO₂e
    ├── data_manager.py           # Cache et opérations CRUD sur l’historique
    ├── data_mass_window.py       # IHM dédiée aux facteurs « masse »
    ├── edit_calculation_dialog.py# Popup d’édition d’une ligne historique
    ├── UserManipDialog.py        # Gestion des scénarios « manips »
    └── graphiques/               # 6 types de graphiques interactifs
        ├── graph_1_pie_chart.py          # Camembert
        ├── graph_2_bar_chart.py          # Barres empilées (prix vs masse)
        ├── graph_3_proportional_bar_chart.py
        ├── graph_4_stacked_bar_consumables.py
        ├── graph_5_nacres_bar_chart.py   # Agrégation par code NACRES
        └── graph_6_proportional_bar_chart_mass.py

Graphiques disponibles

1. Diagrammes en secteurs

Description :
Permet d’analyser la répartition des émissions de CO₂e par catégorie. Chaque segment du diagramme représente une proportion des émissions totales, facilitant l’identification des catégories les plus impactantes.
Utilisation typique :
Pour avoir une vue d’ensemble de la contribution des différentes catégories au bilan carbone global.


2. Graphiques en barres empilées - Consommables (Quantité > 0)

Description :
Affiche un graphique en barres empilées pour les consommables ayant une quantité supérieure à 0. Compare les émissions calculées en fonction du prix et de la masse des consommables.
Utilisation typique :
Pour évaluer l'empreinte carbone des consommables et identifier les consommables avec le plus d'impact.


3. Graphiques en barres proportionnelles - Distribution par catégorie

Description :
Montre une distribution proportionnelle des émissions de CO₂e par catégorie. Chaque barre est proportionnelle au total des émissions pour cette catégorie, avec une répartition interne par sous-catégorie.
Utilisation typique :
Pour comparer l'impact total des catégories tout en visualisant leurs proportions internes.


4. Graphiques en barres empilées - Masse vs Monétaire

Description :
Compare les émissions de CO₂e des consommables calculées selon leur coût monétaire et leur masse. Affiche des barres empilées pour chaque consommable, permettant une comparaison directe entre les deux approches de calcul.
Utilisation typique :
Pour comprendre les différences entre les calculs basés sur le coût monétaire et la masse des consommables.


5. Graphiques en barres proportionnelles - Masse selon les codes NACRES

Description :
Affiche un graphique en barres proportionnelles basé sur la masse des consommables, regroupés par leurs codes NACRES (les 4 premiers caractères). Les proportions internes reflètent la répartition des sous-catégories.
Utilisation typique :
Pour analyser l’impact des consommables regroupés par code NACRES, selon leur empreinte carbone basée sur la masse.


6. Graphiques en barres empilées - Monétaire selon les codes NACRES

Description :
Affiche un graphique en barres empilées pour les consommables regroupés par leurs codes NACRES, montrant leur empreinte carbone calculée selon leur coût monétaire.
Utilisation typique :
Pour visualiser l’impact des consommables par code NACRES, en se basant sur leurs coûts.



Détails du Code

1. Fichier Principal

main_window.py
Contient la logique principale de l’application, y compris les classes et méthodes suivantes :

  • MainWindow : Gère l’interface utilisateur principale, les interactions utilisateur, et le calcul des Ă©missions de carbone. Elle intègre des fonctionnalitĂ©s comme l'historique des calculs, la gestion des consommables, et les graphiques interactifs.

2. Fonctionnalités Clés

  • Chargement des DonnĂ©es :
    Utilise la classe DataManager pour lire et gérer les données issues des fichiers, y compris les facteurs d’émission, les consommables, et les machines.
  • Interface avec PySide6 :
    Crée une interface graphique intuitive avec des widgets, des layouts, et des signaux connectés aux actions de l’utilisateur.
  • Graphiques avec Matplotlib :
    Intègre plusieurs types de graphiques interactifs (diagramme en secteurs, barres empilées, barres proportionnelles, etc.) directement dans l’interface utilisateur.
  • Gestion des Machines :
    Permet de calculer les émissions liées à l’utilisation de machines spécifiques en fonction de leur puissance, temps d’utilisation, et type d’électricité.
  • Exportation/Importation des DonnĂ©es :
    Sauvegarde l’historique des calculs dans différents formats (CSV, Excel, HDF5) et permet de charger des données existantes pour reprise ou comparaison.
  • Gestion des Consommables :
    Fournit une interface dédiée à la gestion et à la sélection des consommables, incluant un filtrage basé sur les codes NACRES.

3. Exemple Visuel des Classes Principales

Classe Description
MainWindow Gère l'interface utilisateur principale, les sélecteurs de catégories, les calculs et l'affichage des résultats.
PieChartWindow Affiche un diagramme en secteurs pour la répartition des émissions.
BarChartWindow Affiche des graphiques en barres empilées pour les comparaisons de données.
ProportionalBarChartWindow Montre une distribution proportionnelle des émissions par catégorie.
StackedBarConsumablesWindow Compare les consommables en fonction des calculs basés sur leur prix ou leur masse.
NacresBarChartWindow Analyse les consommables selon leur code NACRES et leurs émissions carbone.

4. Fonctionnalités Clés

Fonctionnalité Détail
Chargement des Données Gestion des données via DataManager, incluant les facteurs d'émission et les consommables.
Interface PySide6 Création de widgets, gestion de signaux et événements pour une interface fluide et intuitive.
Graphiques Matplotlib Génération de graphiques interactifs intégrés directement dans l'application.
Gestion des Machines Calcul précis des émissions pour des machines personnalisées, basé sur leur puissance et leur temps d’utilisation.
Exportation/Importation CSV Sauvegarde ou reprise de l’historique dans des formats flexibles comme CSV, Excel, ou HDF5.
Consommables et Codes NACRES Analyse des consommables avec des graphiques spécifiques pour leurs coûts carbone basés sur leur prix ou leur masse.

Contribuer

Les contributions sont les bienvenues ! Si vous souhaitez améliorer cette application : 1. Forkez le Projet 2. Créez une Branche pour Votre Fonctionnalité

git checkout -b ma-nouvelle-fonctionnalite
3.	Commitez Vos Modifications
git commit -m "Ajout d'une nouvelle fonctionnalité"
4.	Pushez vers la Branche
git push origin ma-nouvelle-fonctionnalite
5.	Ouvrez une Pull Request

Licence

Ce projet est sous licence MIT. Veuillez consulter le fichier LICENSE pour plus de détails.


Remerciements

Données et Contributions

  • Labo 1point5 : Les donnĂ©es utilisĂ©es proviennent de la base de donnĂ©es fournie par le collectif Labo 1point5, visant Ă  rĂ©duire l'empreinte carbone dans les laboratoires de recherche.
  • Bibliothèques Open Source :

Sources et Références

Sources

  • Base Carbone®
    Source officielle pour les données de l'ADEME (Agence de la Transition Écologique).

  • Labo 1point5
    Plateforme collaborative pour la réduction de l'empreinte carbone dans les laboratoires de recherche. Les données ont été téléchargée en Octobre 2024 et était les dernières alors mise en ligne par le collectif.

  • PlasticsEurope
    Organisation représentant les fabricants de plastiques en Europe, fournissant des données sur l'industrie.

  • OCDE
    Organisation de Coopération et de Développement Économiques, base de données sur les indicateurs environnementaux.

  • 440 Megatonnes
    Analyse des impacts carbone du plastique.

  • Ansell - Reducing the impact of disposable glove manufacturing on the environment
    Article d'Ansell discutant des mesures pour réduire l'impact environnemental de la fabrication des gants jetables.


Articles Scientifiques


Contact

Pour toute question ou suggestion, veuillez contacter Alexandre Souchaud à l’adresse souchaud@bio.ens.psl.eu

Ensemble, réduisons notre empreinte carbone et agissons pour un avenir durable ! 🌍

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors