# scripts/plot_lagged_correlations.py from __future__ import annotations from pathlib import Path from meteo.dataset import load_raw_csv from meteo.variables import VARIABLES_BY_KEY from meteo.analysis import compute_lagged_correlation from meteo.plots import plot_lagged_correlation CSV_PATH = Path("data/weather_minutely.csv") OUTPUT_DIR = Path("figures/lagged_correlations") # Paires à analyser (clé de variable X, clé de variable Y) # Convention : X précède potentiellement Y INTERESTING_PAIRS: list[tuple[str, str]] = [ ("temperature", "humidity"), ("temperature", "rain_rate"), ("pressure", "rain_rate"), ("pressure", "wind_speed"), ("pressure", "illuminance"), ("illuminance", "temperature"), ("humidity", "rain_rate"), ] def main() -> None: if not CSV_PATH.exists(): print(f"⚠ Fichier introuvable : {CSV_PATH}") return df = load_raw_csv(CSV_PATH) print(f"Dataset minuté chargé : {CSV_PATH}") print(f" Lignes : {len(df)}") print(f" Colonnes : {list(df.columns)}") print() for key_x, key_y in INTERESTING_PAIRS: var_x = VARIABLES_BY_KEY[key_x] var_y = VARIABLES_BY_KEY[key_y] print(f"→ Corrélation décalée : {var_x.key} → {var_y.key}") lag_df = compute_lagged_correlation( df=df, var_x=var_x, var_y=var_y, max_lag_minutes=360, # ± 6 heures step_minutes=10, # pas de 10 minutes method="pearson", ) filename = f"lagcorr_{var_x.key}_to_{var_y.key}.png" output_path = OUTPUT_DIR / filename plot_lagged_correlation( lag_df=lag_df, var_x=var_x, var_y=var_y, output_path=output_path, ) print("✔ Graphiques de corrélation décalée générés.") if __name__ == "__main__": main()