Spaces:
Runtime error
Runtime error
import pandas as pd | |
import pandas as pd | |
import numpy as np | |
from utils.summary import get_summary | |
# Générer des dates sur 5 ans (historique) + 5 ans (prévision) | |
dates_past = pd.date_range(start="2023-01-01", periods=36, freq='ME') # 3 ans d'historique | |
dates_future = pd.date_range(start="2023-01-01", periods=60, freq='ME') # 5 ans de prévisions | |
# Température: Tendance à la hausse selon le scénario | |
def generate_temperature_trend(scenario): | |
base_temp = 10 + 10 * np.sin(np.linspace(0, 2 * np.pi, len(dates_past) + len(dates_future))) | |
if scenario == "optimiste": | |
trend = base_temp + np.linspace(0, 1, len(base_temp)) # Faible réchauffement | |
elif scenario == "modéré": | |
trend = base_temp + np.linspace(0, 2, len(base_temp)) # Réchauffement moyen | |
else: # pessimiste | |
trend = base_temp + np.linspace(0, 3, len(base_temp)) # Fort réchauffement | |
return trend | |
# Précipitations: Variation selon le scénario | |
def generate_precipitation_trend(scenario): | |
base_rain = 50 + 20 * np.cos(np.linspace(0, 2 * np.pi, len(dates_past) + len(dates_future))) | |
if scenario == "optimiste": | |
trend = base_rain - np.linspace(0, 5, len(base_rain)) # Légère baisse | |
elif scenario == "modéré": | |
trend = base_rain - np.linspace(0, 10, len(base_rain)) # Baisse moyenne | |
else: # pessimiste | |
trend = base_rain - np.linspace(0, 15, len(base_rain)) # Forte baisse | |
return trend | |
# Irradiance: Augmentation progressive | |
def generate_irradiance_trend(scenario): | |
base_irradiance = 200 + 50 * np.sin(np.linspace(0, 2 * np.pi, len(dates_past) + len(dates_future))) | |
if scenario == "optimiste": | |
trend = base_irradiance + np.linspace(0, 5, len(base_irradiance)) # Faible augmentation | |
elif scenario == "modéré": | |
trend = base_irradiance + np.linspace(0, 10, len(base_irradiance)) # Augmentation modérée | |
else: # pessimiste | |
trend = base_irradiance + np.linspace(0, 20, len(base_irradiance)) # Forte augmentation | |
return trend | |
# Choix du scénario | |
scenario = "modéré" # Changer entre "optimiste", "modéré" et "pessimiste" | |
# Créer les DataFrames | |
temperature_df = pd.DataFrame({"Date": dates_past.tolist() + dates_future.tolist(), | |
"Température (°C)": generate_temperature_trend(scenario)}) | |
rain_df = pd.DataFrame({"Date": dates_past.tolist() + dates_future.tolist(), | |
"Précipitations (mm)": generate_precipitation_trend(scenario)}) | |
irradiation_df = pd.DataFrame({"Date": dates_past.tolist() + dates_future.tolist(), | |
"Irradiance (W/m²)": generate_irradiance_trend(scenario)}) | |
# Afficher un extrait | |
print("Température (extrait) :") | |
print(temperature_df.head(3)) | |
print("\nPrécipitations (extrait) :") | |
print(rain_df.head(3)) | |
print("\nIrradiance (extrait) :") | |
print(irradiation_df.head(3)) | |
summary = get_summary(scenario, temperature_df, rain_df, irradiation_df) | |
print(summary) | |