Ajout d'un script pour simplifier le rafraichissement des données
This commit is contained in:
parent
da6c15d6b0
commit
9fdf9b4268
@ -115,6 +115,17 @@ python "docs/02 - Préparation des données/scripts/make_minutely_dataset.py"
|
|||||||
|
|
||||||
Le script produit `data/weather_minutely.csv`. Pensez à définir `STATION_LATITUDE`, `STATION_LONGITUDE` et `STATION_ELEVATION` dans votre `.env` pour permettre le calcul de la position du soleil ; sinon, seule la colonne `season` sera ajoutée.
|
Le script produit `data/weather_minutely.csv`. Pensez à définir `STATION_LATITUDE`, `STATION_LONGITUDE` et `STATION_ELEVATION` dans votre `.env` pour permettre le calcul de la position du soleil ; sinon, seule la colonne `season` sera ajoutée.
|
||||||
|
|
||||||
|
## Pipeline simplifié
|
||||||
|
|
||||||
|
Un script tout simple permet de faire automatiquement tout ce qu'on vient de voir.
|
||||||
|
Il supprime **tous** les fichiers CSV existants : il faudra donc relancer la génération des images dans les étapes suivantes pour qu'elles intègrent les nouvelles données.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python -m scripts.refresh_data_pipeline
|
||||||
|
```
|
||||||
|
|
||||||
|
## Vérification des données
|
||||||
|
|
||||||
On peut s'assurer que plus aucune information n'est manquante :
|
On peut s'assurer que plus aucune information n'est manquante :
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
39
scripts/refresh_data_pipeline.py
Normal file
39
scripts/refresh_data_pipeline.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Lance l'ensemble du pipeline de préparation des données brutes en une commande."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
|
COMMANDS = [
|
||||||
|
[sys.executable, "-m", "scripts.clean_csv_exports"],
|
||||||
|
[sys.executable, "docs/02 - Préparation des données/scripts/export_station_data_full.py"],
|
||||||
|
[sys.executable, "docs/02 - Préparation des données/scripts/format_raw_csv.py"],
|
||||||
|
[sys.executable, "docs/02 - Préparation des données/scripts/fill_formatted_1s.py"],
|
||||||
|
[sys.executable, "docs/02 - Préparation des données/scripts/make_minutely_dataset.py"],
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def run_commands() -> int:
|
||||||
|
for cmd in COMMANDS:
|
||||||
|
print(f"\n=== Exécution : {' '.join(cmd)} ===")
|
||||||
|
result = subprocess.run(cmd, cwd=ROOT, check=False)
|
||||||
|
if result.returncode != 0:
|
||||||
|
print(f"✘ Commande échouée ({result.returncode}) : {' '.join(cmd)}")
|
||||||
|
return result.returncode
|
||||||
|
print("✔ OK")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
code = run_commands()
|
||||||
|
if code == 0:
|
||||||
|
print("\n✔ Pipeline de préparation exécuté sans erreur.")
|
||||||
|
sys.exit(code)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
x
Reference in New Issue
Block a user