♻️ Reproductibilité¶
🖥️ Environnement¶
- ✅ Python 3.12
- ✅ Dépendances : pandas, geopandas, pyrosm, pyogrio, shapely, tqdm, matplotlib
⚙️ Configurations¶
- ✅ Paramètres d’ETL :
configs/config.yaml - ✅ Exemple :
bash make etl python tools/compare_quick.py --in-dir data/ref/roadinfo python tools/compare_nearest.py --in-dir data/ref/roadinfo
📊 Résultats¶
- ✅ Export CSV + figures →
data/ref/roadinfo/ - ✅ Documentation MkDocs →
mkdocs build
🔧 Contrôle de version¶
- Le projet utilise Git pour le contrôle de version.
- Le code source est hébergé sur GitHub avec des workflows GitHub Actions configurés pour l’intégration continue (CI).
- Des hooks pre-commit sont mis en place pour garantir la qualité du code avant chaque commit (formatage, linting, tests unitaires).
📂 Provenance des données¶
- Les données sources proviennent principalement de OpenStreetMap (OSM) et de l’IGN BDTopo.
- Les fichiers bruts et transformés sont stockés dans le répertoire
rs3-data/avec une organisation claire par source et version. - Chaque dataset est versionné et documenté pour assurer la traçabilité des modifications et faciliter la comparaison entre versions.
🔄 Reproductibilité du pipeline¶
- Le pipeline de traitement est orchestré via un Makefile avec des cibles dédiées (
make etl,make clean, etc.). - Des graines aléatoires fixes sont utilisées dans les scripts pour assurer la reproductibilité des résultats.
- Le traitement est conçu pour être déterministe, évitant les dépendances sur des états externes ou variables.
🐍 Reproductibilité de l’environnement¶
- Un environnement Python isolé est fourni via un virtualenv dans le dossier
.venv. - Les dépendances sont gérées avec un fichier
pyproject.tomlet/ourequirements.txt. - Pour recréer l’environnement, il suffit d’exécuter :
bash python -m venv .venv source .venv/bin/activate pip install -r requirements.txt
📌 Bonnes pratiques¶
- Documenter précisément tous les paramètres utilisés dans les traitements (fichiers de config, scripts).
- Stocker toutes les figures et sorties dans un dossier dédié
out/pour faciliter la revue et l’archivage. - Maintenir les scripts et le pipeline aussi déterministes que possible pour éviter les variations non souhaitées.
- Intégrer des vérifications automatiques via CI/CD pour assurer la qualité du code et la validité des résultats à chaque mise à jour.