Calculateur de bilan carbone pour laboratoires de recherche.
- Auteur : Alexandre Souchaud — labeco2.contact@gmail.com
- Version actuelle : V3.0 du 29/05/2026
- DOI : 10.5281/zenodo.15240634
- Licence : GNU GPL v3 (ou ultérieure)
- Date de création : 1er octobre 2024
Copyright © 2024-2026 Alexandre Souchaud. Pour toute question concernant le logiciel et ses droits : labeco2.contact@gmail.com
LABeCO₂ est une application graphique (PySide6) permettant aux laboratoires de recherche de calculer et visualiser leurs émissions de CO₂e. L'objectif est de sensibiliser à l'empreinte carbone et d'identifier les postes les plus émetteurs pour adopter des pratiques plus durables.
Depuis la V3.0, l'ensemble des facteurs d'émission, consommables et historiques est
stocké dans une base SQLite unifiée, avec un workflow contributeur (proposition,
validation, dépréciation) et un outil d'administration dédié (lab_admin).
- Sélection par catégorie / sous-catégorie / code NACRES.
- Calcul d'émissions par masse, prix ou code NACRES selon les données disponibles.
- Calcul de la fin de vie (incinération) intégré au total pour les consommables solides : routage automatique du consommable vers la filière DASRI ou DIS selon son code NACRES, facteurs ADEME par matériau pour les emballages. Voir Méthodologie fin de vie.
- Panneau « Détail du calcul » sous l'historique : sélectionner une ligne pour voir la décomposition production / fin de vie par composant, avec avertissement qualité contextuel (DASRI : ±50 %).
- Gestion des machines personnalisées (puissance × temps × mix électrique).
- Historique complet des calculs avec modification, suppression, export (JSON / CSV / Excel).
- Bouton 🌐 fiche fournisseur pour ouvrir directement la page du produit chez son fournisseur.
- Saisie de manips types pour automatiser des scénarios récurrents.
- ~10 visualisations interactives (camembert, barres empilées, agrégation NACRES, transport, couverture par catégorie, Pareto…).
⚠️ Outil destiné aux contributeurs et administrateurs, pas aux utilisateurs finaux du calculateur.
lab_admin sert à préparer, vérifier et fusionner les données qui alimentent
la base de référence partagée entre tous les utilisateurs. Il ne calcule pas
d'empreinte carbone.
Cinq onglets :
- Validation : passage en revue des entrées en attente, attribution des codes NACRES (suggestion automatique, application en masse), validation ou rejet.
- Fusion / Conflits : import d'un fichier de contribution (SQLite ou JSON), détection des doublons, résolution des conflits avant fusion.
- Qualité : audit complet de la base (entrées sans source, codes NACRES obsolètes, composants orphelins, etc.).
- Catalogue fournisseurs : édition des produits et de leur lien fournisseur.
- Import Scraping : import d'observations issues du scraper en statut
pending, pour validation manuelle.
Crawler poli (délai configurable, cache HTML, respect de robots.txt) qui collecte
des références produit chez des fournisseurs publics (Fisher Scientific, VWR, etc.).
Les observations sont stockées dans une base privée puis importées vers la base
principale via lab_admin.
Depuis la v3.1, chaque consommable solide se voit attribuer une contribution incinération en fin de vie, ajoutée au calcul de production.
| Composant | Filière de fin de vie | Facteur appliqué |
|---|---|---|
| Consommable principal/secondaire/tertiaire | DASRI ou DIS selon NACRES | Facteur filière uniforme |
| Emballage secondaire | Filière triée par matériau | Facteur EoL du matériau |
| Conditionnement primaire | Filière triée par matériau | Facteur EoL du matériau |
Routage NACRES (préfixe 2 caractères) :
| Préfixe | Domaine | Filière | Facteur (kgCO₂e/kg) | Source |
|---|---|---|---|---|
NA, NL, NM |
Chimie / solvants / matières premières | DIS | 0,844 (±20 %) | ADEME BC v23.10 |
NB, NC, ND, NE |
Biologie / bio-matériel / maintenance | DASRI | 0,943 (±50 %) | ADEME BC v23.10 |
| Autres / inconnu | — | DASRI (conservatif) | 0,943 | — |
Facteurs EoL par matériau (extraits) — ADEME Base IMPACTS v3.0 (qualité 5/5, peer-reviewed thinkstep/GaBi) :
| Matériau | kgCO₂e/kg |
|---|---|
| PE, PP, PB, PS | 3,04 |
| PET | 2,14 |
| PVC | 2,25 |
| Plastiques génériques (PC, PMMA, PTFE…) | 2,27 |
| Carton, Papier | 0,120 |
| Verre | 0,054 |
| Acier inoxydable, Aluminium | — (mâchefers récupérés) |
Cross-check : Rizan et al. 2021 (J. Cleaner Production) donne 1,074 kgCO₂e/kg pour l'incinération haute température de déchets cliniques en milieu hospitalier britannique, cohérent à 12 % près avec le facteur ADEME DAS retenu (0,943).
À noter sur la qualité ADEME : les fiches Base Carbone DAS et DIS sont formellement notées 1/5 et 3/5 par l'ADEME (validité expirée en mars 2024). Elles restent la seule référence française officielle. L'application affiche un avertissement contextuel quand la filière DASRI est appliquée.
Pour la table de référence complète des 60 fiches ADEME analysées (valeurs,
indicateurs DQR, justification du choix retenu pour LABeCO₂), voir
private/incineration/facteurs_emission_incineration_ademe.xlsx (hors-repo).
Trois rôles distincts :
| Rôle | Outil | Que peut-il faire ? |
|---|---|---|
| Utilisateur | main.py |
Calculer son bilan, ajouter ses propres consommables / facteurs en local via Enrichir le consommable, Ajouter un facteur d'émission, Ajouter un consommable. |
| Contributeur | main.py puis envoi du fichier |
Enrichir sa base locale puis envoyer son labeco2.sqlite à un administrateur pour partage avec la communauté. |
| Administrateur | tools/lab_admin.py |
Recevoir plusieurs contributions, fusionner, contrôler la qualité, valider, publier une base de référence enrichie dans la prochaine release. |
- Vous (utilisateur ou contributeur) ajoutez vos consommables et facteurs
manquants dans le calculateur. Ils sont marqués en statut
pending/draftdans votre base locale. - Vous envoyez votre fichier
labeco2.sqliteà un administrateur du projet (cf. Contact en bas du README). Vos ajouts n'écrasent rien chez les autres : ils restent locaux tant qu'ils ne sont pas validés. - Les administrateurs utilisent
lab_adminpour fusionner les bases reçues, vérifier la cohérence (sources, codes NACRES, valeurs hors plage), et valider les entrées qui méritent d'entrer dans la base officielle. - La base enrichie est redistribuée dans la prochaine release de LABeCO₂.
C'est ce processus qui permet à la base de référence de grandir et de s'affiner avec l'usage, tout en gardant un contrôle qualité centralisé.
-
Python 3.11 ou supérieur
-
Dépendances Python listées dans
pyproject.tomletrequirements.txt(PySide6, pandas, matplotlib, numpy, …) -
Linux (Ubuntu/Debian) : l'interface graphique nécessite une bibliothèque système supplémentaire, requise par Qt 6.5+ mais absente par défaut (vérifié sur Ubuntu 24.04, voir issue #2) :
sudo apt install libxcb-cursor0
Sans elle,
python main.pyéchoue au lancement (plugin d'affichage « xcb » impossible à charger).
git clone https://github.com/Alex-code-lab/LABeCO2.git
cd LABeCO2
# Environnement virtuel recommandé
python -m venv venv
source venv/bin/activate # macOS / Linux
# venv\Scripts\activate # Windows
pip install -r requirements.txtTrois fichiers requirements coexistent :
requirements.txt— dépendances de l'application ;requirements-dev.txt— outils de développement en plus (pytest, coverage, …) ;requirements-brew.txt— environnement de compilation des binaires (PyInstaller).
Le fichier pyproject.toml à la racine est la « carte d'identité » standard du
projet (nom, version, Python requis, dépendances). C'est l'équivalent officiel
et normalisé de requirements.txt, que tous les outils Python modernes savent
lire. Avec uv, un gestionnaire qui remplace le
duo venv + pip, l'installation tient alors en deux commandes :
uv sync # crée .venv/ et installe les dépendances du pyproject.toml
uv run python main.py # lance l'application dans cet environnementAu premier lancement, l'application initialise une copie de travail SQLite à partir
de data/labeco2_reference.sqlite :
- Mode dev : dans
private/labeco2.sqlite. - Mode compilé : dans
~/Library/Application Support/LABeCO2/data/(macOS),%APPDATA%/LABeCO2/data/(Windows),~/.labeco2/data/(Linux).
La variable d'environnement LABECO2_SQLITE_PATH permet de surcharger ce chemin.
python main.py- Choisissez une catégorie (Achats, Machine, Transport…).
- Affinez par sous-catégorie, code NACRES, consommable.
- Renseignez la quantité, le prix ou la masse selon le mode disponible.
- Cliquez Calculer le Bilan Carbone : la ligne est ajoutée à l'historique.
- Visualisez les résultats via les boutons de graphiques.
- Exportez ou importez votre bilan (JSON / CSV / Excel).
python tools/lab_admin.py # ouvre la base par défaut
python tools/lab_admin.py --db PATH # cible une autre basepython -m tools.supplier_scraper.main --config tools/supplier_scraper/config.yaml
# Mode dry-run actif par défaut ; les observations sont collectées
# dans private/supplier_scraping_lab.sqlite.LABeCO2/
├── main.py # Point d'entrée du calculateur (PySide6)
├── CHANGELOG.md
├── README.md
├── LICENCE # GNU GPL v3
├── requirements.txt
│
├── data/
│ ├── labeco2_reference.sqlite # Base SQLite de référence (read-only)
│ ├── nacres_codes/ # Référentiel NACRES
│ ├── ges1point5/ # Facteurs Labos 1point5
│ ├── mass_factors/ # Facteurs d'émission massique
│ └── catalogues/ # Catalogues fournisseurs
│
├── ui/ # Interface PySide6 et logique calcul
│ ├── main_window.py # Fenêtre principale du calculateur
│ ├── carbon_calculator.py # Logique métier du calcul CO₂e
│ ├── data_manager.py # Chargement des données depuis SQLite
│ ├── data_mass_window.py # Saisie / enrichissement de consommable
│ ├── edit_calculation_dialog.py
│ ├── user_manip_dialog.py # Gestion des manips types
│ ├── validate_window.py # Widget de validation (réutilisé par lab_admin)
│ ├── validation_ops.py # Opérations SQLite de validation
│ ├── validation_details.py
│ ├── quality_check.py # Audit qualité d'une base SQLite
│ ├── sqlite_schema.py # Schéma SQLite officiel
│ ├── sqlite_legacy_adapter.py # Compatibilité avec l'ancien format DataFrame
│ ├── sqlite_writer.py
│ ├── nacres_metadata.py
│ ├── display_utils.py
│ └── charts/ # ~10 visualisations matplotlib
│ ├── pie_chart.py
│ ├── bar_chart_consumables.py
│ ├── bar_chart_price_mass.py
│ ├── bar_chart_proportional.py
│ ├── nacres_bar_chart.py
│ ├── nacres_proportional.py
│ ├── coverage_overview.py
│ ├── coverage_by_category.py
│ ├── pareto_chart.py
│ ├── transport_chart.py
│ └── …
│
├── tools/ # Outils d'admin et contribution
│ ├── lab_admin.py # Application d'administration (validation, fusion, qualité)
│ ├── admin/ # Modules métier (workflow, suggestions NACRES, fusion…)
│ ├── contribution_io.py # Lecture/écriture des fichiers de contribution
│ ├── import_contribution.py
│ ├── export_contribution.py
│ ├── export_excel.py
│ ├── validate_entries.py
│ ├── migration/ # Scripts de migration de schéma
│ └── supplier_scraper/ # Scraper fournisseur (crawler poli + import)
│
├── utils/ # Helpers transverses (chemins, couleurs, graphes…)
├── styles/ # Feuilles de style Qt (QSS)
├── assets/ # Logo, icônes, captures
├── scenarios/ # Manips types et historiques utilisateur
│ └── manips_type.sqlite
├── docs/ # Documentation technique
├── tests/ # Tests pytest
└── private/ # Données utilisateur locales (non versionnées)
├── labeco2.sqlite
└── supplier_scraping_lab.sqlite
Les contributions sont les bienvenues — corrections de bugs, nouvelles données, nouveaux fournisseurs, améliorations UX :
git checkout -b ma-fonctionnalite
# travail, tests, commits
git push origin ma-fonctionnaliteOuvrez ensuite une Pull Request sur github.com/Alex-code-lab/LABeCO2.
Pour proposer de nouveaux facteurs d'émission ou consommables, utilisez l'outil
lab_admin : il exporte un fichier de contribution qu'un validateur pourra
fusionner dans la base de référence.
Distribué sous GNU GPL v3 ou ultérieure (utilisation libre, non commerciale). Voir le fichier LICENCE pour le texte complet. Détails : https://www.gnu.org/licenses/gpl-3.0.fr.html.
Souchaud, A. LABeCO₂ — Calculateur de bilan carbone pour laboratoires de recherche. Version V3.0, 2026. DOI : 10.5281/zenodo.15240634.
- Labos 1point5 — Collectif pour la réduction de l'empreinte carbone dans les laboratoires de recherche. Données téléchargées initialement en octobre 2024 ; mises à jour avec la nomenclature NACRES 2026.
- Base Carbone® / ADEME — Facteurs d'émission officiels de l'Agence de la Transition Écologique.
- PlasticsEurope — Données industrielles plastiques.
- OCDE — Indicateurs environnementaux.
- 440 Megatonnes — Analyse de l'empreinte carbone du plastique.
- Ansell – Reducing the impact of disposable glove manufacturing — Impact environnemental des gants jetables.
- Ragazzi, I. (2023). Using life cycle assessments to guide reduction in the carbon footprint of single-use lab consumables. PLOS Sustainability and Transformation. DOI : 10.1371/journal.pstr.0000080.
- Reed, S. et al. (2021). The environmental impact of personal protective equipment in the UK healthcare system. Journal of the Royal Society of Medicine. DOI : 10.1177/01410768211001583.
PySide6, Matplotlib, Pandas, NumPy.
Alexandre Souchaud — labeco2.contact@gmail.com
Ensemble, réduisons notre empreinte carbone et agissons pour un avenir durable. 🌍