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

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy