File size: 2,987 Bytes
a8dd5f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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)