Skip to content

lou-heraut/safran-fairy

Repository files navigation

                                                    _ ,       
 ʁ₊                            . ʁ       âŠč₊         ,- -      âŠč . ʁ     ₊ 
 ____  ₊ ʁ.._   ⟡ _____  ____      _     _   _    _||_    _    '             
/ ___|₊ âŠč / \   |  ___||  _ \. ʁ₊ / \ ⟡ | \ | |  ' ||    < \, \\ ,._-_ '\\/\\ 
\___ \   / _ \  | |_   | |_) |  / _ \  |  \| |    || âŠč  /-|| ||  || ₊. || ;' 
 ___) | / ___ \ |  _|  |  _ < âŠč/ ___ \ | |\  |    |,   (( || ||  ||    ||/   
|____/ /_/   \_\|_|  ʁ .|_| \_\/_/   \_\|_| \_|  _-/     \/\\ \\  \\,   |/  
SAFRAN Fairy                                     . ʁ. ʁ       âŠč ₊.      (      
                                                                       -_-

SAFRAN Fairy

MADE WITH AI Lifecycle: stable Contributor Covenant

Pipeline automatisé de téléchargement, traitement et publication des données SAFRAN-ISBA-MODCOU (SIM2) au format NetCDF pour chaque variable disponible pour l'ensemble de la période de réanalyse depuis meteo.data.gouv.fr vers un bucket S3 public avec catalogue STAC et vers Recherche Data Gouv.

Raison d'ĂȘtre

Afin d'améliorer la réutilisabilité et en raison d'une accessibilité et d'une interopérabilité technique limitées des données dans leur format d'origine (CSV volumineux), ce projet automatise les étapes de :

  1. Téléchargement des fichiers CSV depuis l'API Météo-France
  2. Décompression des archives .csv.gz
  3. Découpage par variable climatique
  4. Conversion en NetCDF avec métadonnées
  5. Reconstruction des séries temporelles (historical/previous/latest)
  6. Publication sur un bucket S3 public avec génération d'un catalogue STAC pour la découvrabilité et l'interopérabilité des données
  7. Publication sur un dépÎt de données de l'entrepÎt Recherche Data Gouv

in dev – Ce projet ajoute aux donnĂ©es d'origine l'Ă©vapotranspiration calculĂ©e selon la mĂ©thode de Hargreaves Ă  partir des tempĂ©ratures minimales et maximales de la rĂ©analyse SAFRAN afin de continuer de rĂ©pondre au besoin exprimĂ© dans le cadre du projet Explore2.

Stratégie de mise à jour

Trois fichiers NetCDF par variable pour optimiser la performance et la fraßcheur des données :

Type Description Période couverte Fréquence MAJ Stabilité
historical Chronique historique stable 1958 → N-10 ans Jamais ✅ Stable
previous DĂ©cennie en cours (mois complets) N-10 ans → mois dernier Mensuelle 🔄 Mise Ă  jour mensuelle
latest DonnĂ©es les plus rĂ©centes N-10 ans → aujourd'hui Quotidienne ⚡ Mise Ă  jour quotidienne

Variables disponibles

26 variables climatiques quotidiennes sur grille Lambert II étendu (8 km) :

Variable Description Unité
PRENEI Précipitations solides mm
PRELIQ Précipitations liquides mm
T Température moyenne °C
TINF_H Température minimale °C
TSUP_H Température maximale °C
FF Vent moyen m/s
HU Humidité relative %
... ... ...

Voir resources/safran_variables.csv pour la liste complĂšte.

Installation locale

Prérequis

  • Python 3.10+
  • NCO (NetCDF Operators) : sudo apt install nco

Installation

# Cloner le dépÎt
git clone https://github.com/lou-heraut/safran-fairy.git
cd safran-fairy

# Installation
python -m venv .python_env
source .python_env/bin/activate
pip install -r requirements.txt

Voir INSTALL.md pour l'installation détaillée sur serveur Linux.

Utilisation

Exécution manuelle

# Pipeline complet
make run-all

# Étapes individuelles
make run-download    # Télécharger les nouvelles données
make run-decompress  # Décompresser
make run-split       # Découper par variable
make run-convert     # Convertir en NetCDF
make run-merge       # Fusionner temporellement
make run-upload      # Publier sur S3
make run-ui          # Générer et uploader le catalogue STAC
make run-clean       # Nettoyer les anciennes versions

# Configuration du bucket S3 (une seule fois)
make run-setup

Service systemd (production)

# Installation du service
sudo make install-service

# Vérifier le statut
make service-status

# Suivre les logs en temps réel
make service-logs

Le service s'exécute quotidiennement à 02:00 UTC.

Monitoring

# Logs en temps réel
make service-logs

# Statut du service
make service-status

# Logs de la derniÚre exécution
make service-logs-last-run

# Statistiques sur les données
make data-stats

Architecture

safran_fairy/
├── download.py      # TĂ©lĂ©chargement depuis meteo.data.gouv.fr
├── decompress.py    # Extraction des .csv.gz
├── split.py         # DĂ©coupage par variable
├── convert.py       # Conversion CSV → NetCDF
├── merge.py         # Fusion temporelle
├── upload.py        # Publication S3
├── catalog.py       # GĂ©nĂ©ration catalogue STAC
└── clean.py         # Nettoyage des anciennes versions

Structure des données

00_data-download/     # Fichiers .csv.gz bruts téléchargés
01_data-raw/          # Fichiers .csv décompressés
02_data-split/        # Fichiers .parquet par variable
03_data-convert/      # Fichiers .nc individuels
04_data-output/       # Fichiers .nc fusionnés (historical/previous/latest)
05_catalog/           # Fichiers JSON du catalogue STAC

AccÚs aux données

Les données sont accessibles via le catalogue STAC :

https://radiantearth.github.io/stac-browser/#/external/https://s3-data.meso.umontpellier.fr/safran-fairy-data/stac-data/catalog.json

Contact

Maintenu par Lou Heraut (INRAE, UR RiverLy, Villeurbanne, France)

About

đŸŒŠïž Pipeline de traitement des donnĂ©es SAFRAN-ISBA-MODCOU (SIM) : tĂ©lĂ©chargement, conversion NetCDF, et publication automatisĂ©e + ajout de l'ET0 Hargreaves

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors