Skip to content

noejala/EcoWatch

Repository files navigation

🌿 EcoWatch — Agent de Monitoring Environnemental

EcoWatch est un agent autonome de surveillance environnementale qui monitore la qualité de l'air et la production d'énergies renouvelables en France, détecte des anomalies et génère des rapports HTML automatiques.

Données fraîches à chaque exécution via le MCP data.gouv.fr — pas de données statiques.


Architecture

ecowatch/
├── agent/          # Orchestration (scheduler, monitor, alerting)
├── pipelines/      # Collecte et nettoyage des données (ATMO, ENR, météo)
├── ml/             # Modèles ML (anomaly detection, forecasting, evaluation)
├── dashboard/      # App Streamlit multi-pages
├── reports/        # Templates Jinja2 et rapports générés
├── notebooks/      # EDA et prototypage
└── tests/          # Tests unitaires pytest

Installation

Prérequis

  • Python 3.11+
  • pip

1. Cloner le projet

git clone <votre-repo>
cd EcoWatch

2. Créer un environnement virtuel

python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# ou
.venv\Scripts\activate  # Windows

3. Installer les dépendances

make install
# ou
pip install -r requirements.txt

4. Configurer l'environnement

cp .env.example .env
# Éditez .env si nécessaire (optionnel pour commencer)

Utilisation

Dashboard interactif

make run-dashboard
# ou
streamlit run dashboard/app.py

Ouvre sur http://localhost:8501

Agent de monitoring (exécution unique)

make run-agent
# ou
python -m agent.scheduler --once

Agent en mode scheduling (15h chaque jour)

python -m agent.scheduler
# Personnaliser l'heure :
python -m agent.scheduler --hour 8 --minute 30

Notebooks

make notebook
# ou
jupyter lab notebooks/

Tests

make test
# ou
pytest tests/ -v --cov=.

Qualité de code

make format

Sources de données

Source Dataset Fréquence Couverture
ATMO France Indice qualité de l'air quotidien Quotidienne Communes France métropolitaine
ODRE/RTE Production ENR régionale annuelle Annuelle 13 régions
Infoclimat Stations météo (géolocalisation) Statique France entière

Dataset IDs (data.gouv.fr)

  • Qualité de l'air : 6149925a2ff0ab6cebdd6fe8
  • Énergies renouvelables : 5b90b88306e3e7417c2ffd33
  • Stations météo : 628e0500943ff94edb9275f9

Pages du Dashboard

Page Description
Accueil KPIs du jour, résumé qualité de l'air
Qualité de l'air Distribution ATMO, top communes polluées, évolution temporelle
Énergies renouvelables Production par région/filière, taux de croissance, animation annuelle
Anomalies Timeline des anomalies, scores IsolationForest, Z-score baseline

Notebooks

Notebook Contenu
01_eda_air_quality.ipynb À ouvrir en premier — EDA complète ATMO
02_eda_energy.ipynb Exploration ENR, mix énergétique, croissance
03_anomaly_detection.ipynb Prototypage IsolationForest et Z-score
04_forecasting.ipynb Prévision Prophet par commune

Commandes disponibles

make install        # Installer les dépendances
make run-agent      # Exécuter l'agent une fois
make run-dashboard  # Lancer le dashboard Streamlit
make test           # Lancer les tests pytest
make format         # Formater le code (black + ruff)
make notebook       # Ouvrir JupyterLab
make clean          # Nettoyer les fichiers temporaires

Roadmap

  • NLP : Génération de rapports textuels automatiques via LLM
  • API REST : Endpoint FastAPI pour exposer les données traitées
  • Notifications Slack : Alertes temps réel via webhook
  • Données temps réel : Intégration API ATMO pour des mises à jour horaires
  • Carte interactive : Choroplèthe par département avec GeoPandas
  • CI/CD : Pipeline GitHub Actions avec tests et déploiement automatique
  • Dockerisation : Image Docker pour déploiement cloud

Stack technique

Catégorie Outils
Data science Pandas, NumPy, SciPy
Machine Learning Scikit-learn, Prophet, Statsmodels
Dashboard Streamlit, Plotly, Folium
Scheduling APScheduler
Templating Jinja2
Validation Pydantic
Logging Loguru
Tests Pytest
Qualité Black, Ruff

About

Test integration MCP DataGouv

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors