Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pydeck as pdk | |
| def display_dashboard(df): | |
| st.subheader("π System Summary") | |
| col1, col2, col3 = st.columns(3) | |
| col1.metric("Total Poles", df.shape[0]) | |
| col2.metric("π¨ Red Alerts", df[df['Alert Level'] == "Red"].shape[0]) | |
| col3.metric("β‘ Power Issues", df[df['Power Sufficient'] == "No"].shape[0]) | |
| def display_charts(df): | |
| st.subheader("βοΈ Energy Generation Trends") | |
| st.bar_chart(df.set_index("Pole ID")[["Solar Gen (kWh)", "Wind Gen (kWh)"]]) | |
| st.subheader("π Tilt vs Vibration") | |
| scatter_data = df.rename(columns={"Tilt (Β°)": "Tilt", "Vibration (g)": "Vibration"}) | |
| st.scatter_chart(scatter_data.set_index("Pole ID")[["Tilt", "Vibration"]]) | |
| def display_heatmap(df): | |
| st.subheader("πΊοΈ Site Heatmap - Alert Distribution") | |
| view = pdk.ViewState( | |
| latitude=16.5, | |
| longitude=77.5, | |
| zoom=6, | |
| pitch=40, | |
| ) | |
| layer = pdk.Layer( | |
| "HeatmapLayer", | |
| data=df, | |
| get_position='[Longitude, Latitude]', | |
| get_weight="Alert Weight", # β fixed | |
| radiusPixels=60, | |
| ) | |
| map = pdk.Deck( | |
| map_style="mapbox://styles/mapbox/light-v9", | |
| initial_view_state=view, | |
| layers=[layer], | |
| tooltip={"text": "Site: {Site}\nAlert: {Alert Level}"} | |
| ) | |
| st.pydeck_chart(map) | |