28/05/2025 05:23 EDA.
ipynb - Colab
import pandas as pd
import numpy as np
import [Link] as plt
import seaborn as sns
from [Link] import plot_acf
df=pd.read_csv('Documents/gyj/Stage Master/Nouvelle donnée-20250410T084916Z-001/Nouvelle donnée/meteo_horaire_clean.csv')
2. Analyse d'Autocorrélation (ACF)
Une étude des relations temporelles a été réalisée pour des variables clés telles que :
Température
Humidité relative
Précipitations
Vitesse du vent
Les graphiques ACF ont permis d'identifier des cycles diurnes et des tendances persistantes.
3. Analyse Exploratoire des Données (EDA)
Distributions des Températures :
Histogrammes des températures réelles et apparentes par ville.
Analyse des moyennes, médianes, écarts-types et asymétries.
Comparaisons Temporelles :
Évolution des températures moyennes par heure et par mois.
Analyse des précipitations moyennes par mois et par ville.
4. Visualisations
Des graphiques en ligne ont été utilisés pour représenter :
Les températures (réelles et apparentes) par heure et par mois.
L'humidité relative et la vitesse du vent par heure.
Les précipitations moyennes par mois et par ville.
Ces visualisations ont permis de comparer les dynamiques climatiques entre les villes.
5. Interprétations Clés
Différences Régionales :
Les villes du sud (Lomé, Kpalimé) présentent des températures plus élevées et une humidité importante.
Les villes du nord (Dapaong, Kara, Sokodé) ont des températures plus modérées et une humidité plus faible.
Variations Saisonnières :
Les précipitations montrent des cycles distincts entre les zones sud et nord.
Les températures suivent des schémas diurnes et saisonniers bien définis.
Impact de l'Humidité :
L'humidité amplifie la sensation de chaleur, en particulier dans les villes du sud.
keyboard_arrow_down analyse d'autocorrélation (ACF)
variables = ["temperature_2m (°C)", "apparent_temperature (°C)", "relative_humidity_2m (%)", "precipitation (mm)", "wind_speed_10m (km/h
lags = 168 # Nombre de décalages à considérer
for var in variables:
series = df_clean[var].dropna()
plot_acf(series, lags=lags)
[Link](f"Autocorrélation de {var}")
[Link]("Décalage (heures)")
[Link]("Corrélation")
[Link]()
[Link] 1/13
28/05/2025 05:23 [Link] - Colab
[Link] 2/13
28/05/2025 05:23 [Link] - Colab
keyboard_arrow_down Analyse Exploratoire(EDA)
# Histogrammes distincts pour les distributions des températures par ville
temperature_cols = ["temperature_2m (°C)", "apparent_temperature (°C)"]
villes = df["Ville"].unique()
for col in temperature_cols:
for ville in villes:
subset = df[df["Ville"] == ville]
[Link](figsize=(8, 5))
[Link](subset[col], bins=30, edgecolor='black', alpha=0.7)
[Link](f"Distribution de {col} pour {ville}")
[Link]("Température (°C)")
[Link]("Fréquence")
[Link](True)
[Link]()
# Interprétation
print(f"Analyse pour {ville} - {col}:")
print(f"- Température moyenne : {subset[col].mean():.2f}°C")
print(f"- Température médiane : {subset[col].median():.2f}°C")
print(f"- Température minimale : {subset[col].min():.2f}°C")
print(f"- Température maximale : {subset[col].max():.2f}°C")
print(f"- Écart-type : {subset[col].std():.2f}°C")
print(f"- Distribution : {'Symétrique' if abs(subset[col].skew()) < 0.5 else 'Asymétrique'}")
print(f"- Présence de valeurs extrêmes : {'Oui' if (subset[col].max() - subset[col].mean()) > 2 * subset[col].std() else 'Non'}")
print("\n")
[Link] 3/13
28/05/2025 05:23 [Link] - Colab
Analyse pour Atakpame - temperature_2m (°C):
- Température moyenne : 25.99°C
- Température médiane : 25.10°C
- Température minimale : 15.10°C
- Température maximale : 38.80°C
- Écart-type : 3.79°C
- Distribution : Asymétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Dapaong - temperature_2m (°C):
- Température moyenne : 27.95°C
- Température médiane : 27.30°C
- Température minimale : 15.20°C
- Température maximale : 41.80°C
- Écart-type : 4.61°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
[Link] 4/13
28/05/2025 05:23 [Link] - Colab
Analyse pour Kara - temperature_2m (°C):
- Température moyenne : 26.84°C
- Température médiane : 26.00°C
- Température minimale : 14.60°C
- Température maximale : 40.50°C
- Écart-type : 4.50°C
- Distribution : Asymétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Kpalime - temperature_2m (°C):
- Température moyenne : 26.02°C
- Température médiane : 25.10°C
- Température minimale : 17.00°C
- Température maximale : 40.00°C
- Écart-type : 3.34°C
- Distribution : Asymétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Lome - temperature_2m (°C):
- Température moyenne : 27.01°C
- Température médiane : 26.80°C
- Température minimale : 19.20°C
- Température maximale : 35.50°C
Écart type : 2 17°C
[Link] 5/13
28/05/2025 05:23 [Link] - Colab
- Écart-type : 2.17 C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Sokode - temperature_2m (°C):
- Température moyenne : 26.09°C
- Température médiane : 25.00°C
- Température minimale : 14.60°C
- Température maximale : 40.00°C
- Écart-type : 4.35°C
- Distribution : Asymétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Atakpame - apparent_temperature (°C):
- Température moyenne : 29.31°C
- Température médiane : 28.90°C
- Température minimale : 11.90°C
- Température maximale : 42.60°C
- Écart-type : 3.85°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
[Link] 6/13
28/05/2025 05:23 [Link] - Colab
Analyse pour Dapaong - apparent_temperature (°C):
- Température moyenne : 29.06°C
- Température médiane : 29.40°C
- Température minimale : 10.20°C
- Température maximale : 44.90°C
- Écart-type : 5.66°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Kara - apparent_temperature (°C):
- Température moyenne : 29.37°C
- Température médiane : 29.40°C
- Température minimale : 11.40°C
- Température maximale : 44.60°C
- Écart-type : 5.36°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Kpalime - apparent_temperature (°C):
Température moyenne : 30 31°C
[Link] 7/13
28/05/2025 05:23 [Link] - Colab
- Température moyenne : 30.31°C
- Température médiane : 29.80°C
- Température minimale : 15.30°C
- Température maximale : 43.20°C
- Écart-type : 3.47°C
- Distribution : Asymétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Lome - apparent_temperature (°C):
- Température moyenne : 31.46°C
- Température médiane : 31.40°C
- Température minimale : 17.00°C
- Température maximale : 41.20°C
- Écart-type : 2.76°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
Analyse pour Sokode - apparent_temperature (°C):
- Température moyenne : 28.74°C
- Température médiane : 28.40°C
- Température minimale : 11.30°C
- Température maximale : 43.60°C
- Écart-type : 4.90°C
- Distribution : Symétrique
- Présence de valeurs extrêmes : Oui
[Link] 8/13
28/05/2025 05:23 [Link] - Colab
keyboard_arrow_down Interprétation approfondie des histogrammes des températures
1. Température réelle et apparente :
Les histogrammes montrent la répartition des températures réelles et apparentes pour chaque ville.
La température apparente est souvent légèrement plus élevée que la température réelle, en particulier dans les zones où
l'humidité est élevée, comme Lomé et Kpalimé.
2. Analyse par ville :
Lomé :
Les températures sont généralement élevées, avec une concentration autour de 25–30°C.
La température apparente est influencée par l'humidité élevée, ce qui peut donner une sensation de chaleur plus importante.
Atakpamé :
Les températures sont modérées, avec une répartition plus uniforme entre 20 et 30°C.
La température apparente suit une tendance similaire, mais avec des pics légèrement plus élevés.
Kpalimé :
Les températures sont similaires à celles de Lomé, mais avec une répartition légèrement plus étendue.
L'humidité élevée contribue également à une température apparente plus élevée.
Dapaong :
Les températures sont plus basses en moyenne, avec une concentration autour de 20–25°C.
La température apparente est proche de la température réelle, en raison de l'humidité plus faible.
Kara :
Les températures sont modérées, avec une répartition autour de 22–28°C.
La température apparente est légèrement plus élevée, mais reste proche de la température réelle.
Sokodé :
Les températures sont similaires à celles de Kara, avec une répartition autour de 22–28°C.
La température apparente est influencée par des variations d'humidité.
3. Caractéristiques générales :
Les villes du sud (Lomé, Kpalimé) montrent des températures plus élevées et une humidité importante, ce qui amplifie la
sensation de chaleur.
Les villes du nord (Dapaong, Kara, Sokodé) ont des températures plus modérées et une humidité plus faible, ce qui rend la
température apparente plus proche de la température réelle.
4. Variabilité et extrêmes :
Les histogrammes révèlent des distributions asymétriques dans certaines villes, indiquant des périodes de températures
extrêmes.
Les écarts-types plus élevés dans les villes comme Lomé et Kpalimé reflètent une plus grande variabilité des températures.
5. Implications climatiques :
Les différences entre les températures réelles et apparentes mettent en évidence l'impact de l'humidité sur le confort thermique.
En résumé, les histogrammes montrent des variations significatives des températures entre les villes, influencées par des facteurs tels que
l'humidité et la localisation géographique. Ces informations sont essentielles pour une meilleure compréhension des conditions climatiques
locales.
# Préparer les données pour la comparaison par heure
temp_by_hour = [Link]("hour")[["temperature_2m (°C)", "apparent_temperature (°C)"]].mean().reset_index()
# Tracer l'évolution des températures moyennes par heure
[Link](figsize=(10, 6))
[Link](data=temp_by_hour, x="hour", y="temperature_2m (°C)", label="Température réelle")
[Link](data=temp_by_hour, x="hour", y="apparent_temperature (°C)", label="Température apparente")
[Link]("Température moyenne par heure de la journée")
[Link]("Heure")
[Link]("Température (°C)")
[Link](True)
[Link]()
[Link](range(0, 24))
[Link]()
[Link] 9/13
28/05/2025 05:23 [Link] - Colab
Voici l’évolution des températures moyennes par heure sur l’ensemble des données :
Les températures augmentent progressivement de 6h à 13h, atteignant leur pic autour de 13h ou 14h.
Elles redescendent ensuite le soir, pour être les plus basses vers 4h - 6h du matin.
La température apparente suit presque la même courbe, mais elle est souvent légèrement plus élevée, surtout en journée.
villes = df["Ville"].unique()
ville_data = df[df["Ville"] == ville]
# Moyenne mensuelle
monthly_avg = ville_data.groupby("month")[["temperature_2m (°C)", "apparent_temperature (°C)"]].mean().reset_index()
# Graphique par mois et ville
for ville in villes:
[Link](figsize=(12, 5))
[Link](data=monthly_avg, x="month", y="temperature_2m (°C)", label="Température réelle")
[Link](data=monthly_avg, x="month", y="apparent_temperature (°C)", label="Température apparente")
[Link](f"Température moyenne par mois {ville}")
[Link]("Mois")
[Link]("Température (°C)")
[Link](True)
[Link]()
[Link](range(1, 13))
[Link]()
[Link] 10/13
28/05/2025 05:23 [Link] - Colab
[Link] 11/13
28/05/2025 05:23 [Link] - Colab
[Link] 12/13
28/05/2025 05:23 [Link] - Colab
🔥 Mars à mai : mois les plus chauds, température autour de 27–29°C
🌧️ Juin à septembre : baisse marquée, période de la grande saison des pluies
🌞 Décembre à février : températures modérées, période de saison sèche
# Moyennes horaires pour humidité, vent
hourly_avg = [Link]("hour")[[
"relative_humidity_2m (%)",
"wind_speed_10m (km/h)",
]].mean().reset_index()
# Création de deux graphiques en ligne
fig, axes = [Link](1, 2, figsize=(18, 5))
[Link](data=hourly_avg, x="hour", y="relative_humidity_2m (%)", ax=axes[0])
axes[0].set_title("Humidité relative moyenne par heure")
axes[0].set_xlabel("Heure")
axes[0].set_ylabel("Humidité (%)")
axes[0].grid(True)
[Link](data=hourly_avg, x="hour", y="wind_speed_10m (km/h)", ax=axes[1])
axes[1].set_title("Vitesse du vent moyenne par heure")
axes[1].set_xlabel("Heure")
axes[1].set_ylabel("Vitesse du vent (km/h)")
axes[1].grid(True)
plt.tight_layout()
[Link]()
💧 Humidité relative Très élevée entre minuit et 6h du matin (jusqu’à ~95%)
Diminue ensuite dans la journée, atteignant un minimum vers 14–15h
🌬️ Vitesse du vent Relativement stable, avec un léger pic vers 15h–17h
Un peu plus faible durant la nuit
# Moyenne mensuelle des précipitations par ville
monthly_city_precip = [Link](["Ville", "month"])["precipitation (mm)"].mean().reset_index()
# Visualisation
[Link](figsize=(14, 6))
[Link](data=monthly_city_precip, x="month", y="precipitation (mm)", hue="Ville", marker="o")
[Link]("Précipitations moyennes par mois et par ville")
[Link]("Mois")
[Link]("Précipitations (mm)")
[Link](range(1, 13), [
"Jan", "Fév", "Mar", "Avr", "Mai", "Juin",
"Juil", "Août", "Sept", "Oct", "Nov", "Déc"
])
( )
[Link] 13/13