# scripts/plot_wind_rose_rain.py from __future__ import annotations from pathlib import Path from meteo.dataset import load_raw_csv from meteo.analysis import compute_wind_rose_distribution from meteo.plots import plot_wind_rose CSV_PATH = Path("data/weather_minutely.csv") OUTPUT_PATH = Path("figures/wind_rose/wind_rose_during_rain.png") RAIN_THRESHOLD = 0.2 # mm/h, pour considérer qu'il pleut réellement 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() rainy_df = df[df["rain_rate"].fillna(0.0) >= RAIN_THRESHOLD] print(f"Lignes avec pluie ≥ {RAIN_THRESHOLD} mm/h : {len(rainy_df)}") if rainy_df.empty: print("⚠ Aucun événement pluvieux ne dépasse ce seuil, abandon.") return frequencies, labels, sector_size = compute_wind_rose_distribution( df=rainy_df, direction_sector_size=30, speed_bins=(0, 5, 15, 30, 50, float("inf")), ) if frequencies.empty: print("⚠ Pas assez de données pour construire une rose des vents pendant la pluie.") return output_path = plot_wind_rose( frequencies=frequencies, speed_bin_labels=labels, output_path=OUTPUT_PATH, sector_size_deg=sector_size, cmap="plasma", ) print(f"✔ Rose des vents pendant la pluie exportée : {output_path}") if __name__ == "__main__": main()