There is a newer version of the record available.

Published July 18, 2025 | Version v1.6
Workflow Open

Script de génération automatique du réseau hydrographique et du bassin versant principal à partir d'un point WGS84, en utilisant ALOS AW3D30, GRASS GIS 8.4 (via OSGeo4W) et GDAL/QGIS.

Description

Description : Pipeline automatisé de génération du réseau hydrographique et du bassin versant à partir d’une coordonnée WGS84
Auteur : Zo Rasoanaivo – Dernière mise à jour : 18 juillet 2025 – Version : 1.6 – Langage : Python 3.12 – Outils : GRASS GIS 8.4, GDAL 3.11.1, rasterio, pyproj, Tkinter – Type de MNT utilisé : ALOS AW3D30 téléchargé depuis l’API OpenTopography
1. Objectif
Ce pipeline sert à automatiser, à partir d’un ensemble de scripts Python, l’extraction du bassin versant principal et du réseau hydrographique depuis une paire de coordonnées géographiques en WGS84. Il s’appuie sur GRASS GIS pour les traitements hydrologiques, GDAL pour la reprojection, et intègre une interface graphique pour faciliter la configuration.
2. Résumé du flux
    A [Coordonnée (lat/lon)] --> B [Téléchargement MNT (AW3D30)]
    B --> C [Prétraitement (GDAL + Rasterio)]
    C --> D [Import dans GRASS GIS]
    D --> E [Remplissage puits + accumulation flux]
    E --> F [Extraction réseau + bassin versant]
    F --> G [Export GeoPackage + GeoTIFF]
3. Modules et fonctions principales
•    calculate_bbox_wgs84(lat, lon, size_km) : Calcule les coordonnées de la boîte englobante en WGS84.
•    telecharger_mnt(bbox, temp_dir, api_key) : Télécharge le MNT AW3D30 depuis OpenTopography.
•    pretraiter_mnt(raw_path, temp_dir, epsg_target, nodata) : Reprojette et nettoie le MNT avec GDAL et rasterio.
•    initialiser_grass(gisdb_path, location, mapset, epsg) : Initialise la localisation GRASS.
•    analyse_hydro_grass(dem_path, lat, lon, seuil_km², epsg_src, epsg_target) : Exécute l’analyse hydrologique sous GRASS.
•    export_grass_results(output_dir) : Exporte les couches vers un GeoPackage et le DEM masqué en GeoTIFF.
4. Entrées et paramètres
Entrée principale :
•    Latitude, longitude (WGS84)
•    Taille de la boîte englobante (en km)
•    Seuil d’extraction du réseau hydrographique (km²)
•    Code EPSG cible
•    Valeur NoData
•    Clé API OpenTopography

Configuration :
•    Interface Tkinter
•    Ou en ligne de commande / fichier .json (optionnel)
5. Dépendances
•    Python ≥ 3.8
•    Modules : rasterio, numpy, pyproj, requests, tkinter
•    GRASS GIS 8.4 installé via OSGeo4W
•    GDAL / PROJ accessibles via QGIS ou standalone
6. Résultats générés
•    hydro_results.gpkg :
o    rivieres : réseau hydrographique
o    main_basin : bassin versant principal
o    exutoire : point exutoire projeté
•    MNT_decoupe_bassin_versant.tif : MNT nettoyé et masqué
•    outlet_point_swat.csv : point formaté pour les modèles SWAT+
7. Interface utilisateur
L’interface Tkinter permet :
•    La saisie interactive des paramètres géographiques et techniques
•    Le choix des répertoires de sortie et de travail
•    L’exécution du pipeline avec affichage des logs en temps réel
•    Une option « mode développeur » pour conserver les fichiers temporaires
8. Reproductibilité
Le code est conforme aux standards PEP 8 et encapsule l’ensemble des traitements dans des fonctions documentées. Il permet une reproductibilité complète à partir de la seule paire de coordonnées et assure la traçabilité des données géographiques en sortie.
9. Licence
Le pipeline est proposé sous licence MIT (modifiable selon besoin), librement réutilisable avec attribution.
10. Références
•    GRASS GIS https://grass.osgeo.org
•    ALOS AW3D30 https://www.eorc.jaxa.jp/ALOS/en/aw3d30
•    OpenTopography API https://portal.opentopography.org

Files

README.md

Files (47.6 kB)

Name Size Download all
md5:96701db8d9fd175f22f8eeade9bfde95
43.7 kB Download
md5:b5f54c4991938123e49ce07ea42d1996
1.1 kB Download
md5:3aa8dd433edee7d84127efcbb1baeaa0
2.9 kB Preview Download

Additional details

Dates

Issued
2025-07-18

Software

Repository URL
https://github.com/zoras85/pipeline_hydro_grass
Programming language
Python
Development Status
Active