Mise a jour de mon_script.py depuis develop

This commit is contained in:
2025-04-13 10:04:25 +02:00
parent 6f81f629d1
commit 1db9d43a62

View File

@@ -17,6 +17,41 @@ db_config = {
"database": "Sondes"
}
def afficher_tableau_filtré(df):
st.markdown("### 🔧 Filtrage horaire")
df = df.copy()
df["Date"] = pd.to_datetime(df["Date"])
# Supprimer la colonne Id si elle existe
if "Id" in df.columns:
df.drop(columns="Id", inplace=True)
# Sélection de la tranche horaire
plage = st.selectbox(
"Sélectionnez une plage horaire :",
["Toutes", "Matin (06h-12h)", "Après-midi (12h-18h)", "Soir (18h-00h)"]
)
if plage == "Matin (06h-12h)":
df = df[(df["Date"].dt.hour >= 6) & (df["Date"].dt.hour < 12)]
elif plage == "Après-midi (12h-18h)":
df = df[(df["Date"].dt.hour >= 12) & (df["Date"].dt.hour < 18)]
elif plage == "Soir (18h-00h)":
df = df[(df["Date"].dt.hour >= 18)]
# Centrage de la colonne Température (et autres si souhaité)
def style_center(s):
return ['text-align: center'] * len(s)
st.dataframe(
df.style.apply(style_center, subset=["Temperature"]),
use_container_width=True
)
return df
if "authenticated" not in st.session_state:
st.session_state["authenticated"] = False
st.session_state["role"] = None
@@ -109,7 +144,7 @@ if st.session_state["authenticated"]:
try:
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor(dictionary=True)
sites_possibles = ["Saclay", "Meudon", "Roissy"]
sites_possibles = ["Saclay", "Meudon"]
if st.session_state["role"] == "superviseur":
site_selectionne = st.selectbox("📍 Choisissez un site :", sites_possibles)
else:
@@ -130,10 +165,13 @@ if st.session_state["authenticated"]:
cursor.execute("SELECT Temp_Max FROM Chambres_froides WHERE Lieu = %s AND Sonde = %s", (site_selectionne, sonde_choisie))
seuil = cursor.fetchone()
seuil_temp = seuil["Temp_Max"] if seuil else 10
st.dataframe(df_sonde, use_container_width=True)
df_filtré = afficher_tableau_filtré(df_sonde)
st.subheader("📈 Évolution de la température")
fig, ax = plt.subplots(figsize=(10, 4))
ax.plot(df_sonde["Date"], df_sonde["Temperature"], marker='o', label="Température")
ax.plot(df_filtré["Date"], df_filtré["Temperature"], marker='o', label="Température")
ax.axhline(seuil_temp, color='red', linestyle='--', label=f"Seuil {seuil_temp}°C")
ax.set_xlabel("Heure")
ax.set_ylabel("Température (°C)")