Spaces:
Sleeping
Sleeping
Download modules/visuals.py from Prasanna1622/poll_monitoring_data22: direct link, hf CLI and curl.
- Browser
- Download file 2.67 kB
-
https://huggingface.co/spaces/Prasanna1622/poll_monitoring_data22/resolve/main/modules/visuals.py
- Command line
-
hf download hf://spaces/Prasanna1622/poll_monitoring_data22/modules/visuals.py
-
curl -L -o visuals.py https://huggingface.co/spaces/Prasanna1622/poll_monitoring_data22/resolve/main/modules/visuals.py
2.67 kB
| import pandas as pd | |
| def display_dashboard(df: pd.DataFrame): | |
| st.subheader("π System Summary") | |
| col1, col2, col3, col4 = st.columns(4) | |
| col1.metric("Total Poles", df.shape[0]) | |
| col2.metric("π¨ Red Alerts", df[df["Alert_Level__c"] == "Red"].shape[0]) | |
| col3.metric("β‘ Power Issues", df[df["Power_Sufficient__c"] == "No"].shape[0]) | |
| col4.metric("π· Offline Cameras", df[df["Camera_Status__c"] == "Offline"].shape[0]) | |
| import streamlit as st | |
| import plotly.express as px | |
| def display_charts(df: pd.DataFrame): | |
| fig_energy = px.bar( | |
| df, | |
| x="Name", | |
| y=["Solar_Generation__c", "Wind_Generation__c"], | |
| ) | |
| st.subheader("π¨ Alert Level Breakdown") | |
| fig_alerts = px.histogram( | |
| df, | |
| x="Alert_Level__c", | |
| title="Number of Poles by Alert Level" | |
| ) | |
| st.plotly_chart(fig_alerts) | |
| import pydeck as pdk | |
| # Function to generate heatmap for a given site | |
| def generate_heatmap_for_site(site_name, df): | |
| site_df = df[df['Site__c'] == site_name] | |
| # Ensure that Alert_Level__c is treated as a string (for color mapping) | |
| site_df['Alert_Level__c'] = site_df['Alert_Level__c'].astype(str) | |
| # Define color mapping for alert levels | |
| color_map = { | |
| "Green": [0, 255, 0], # Green for "Green" alert level | |
| "Yellow": [255, 255, 0], # Yellow for "Yellow" alert level | |
| "Red": [255, 0, 0] # Red for "Red" alert level | |
| } | |
| # Create a color column based on Alert_Level__c | |
| site_df["color"] = site_df["Alert_Level__c"].map(color_map) | |
| # Create a Pydeck map for the site | |
| layer = pdk.Layer( | |
| "ScatterplotLayer", | |
| data=site_df, | |
| get_position='[Longitude__c, Latitude__c]', | |
| get_color="color", | |
| get_radius=80, # You can adjust the radius if needed | |
| pickable=True, | |
| auto_highlight=True | |
| ) | |
| view_state = pdk.ViewState( | |
| latitude=site_df["Location_Latitude__c"].mean(), | |
| longitude=site_df["Location_Longitude__c"].mean(), | |
| zoom=10, | |
| pitch=40 | |
| ) | |
| tooltip = { | |
| "html": """ | |
| <b>Pole Name:</b> {Name}<br> | |
| <b>Site:</b> {Site__c}<br> | |
| <b>Alert Level:</b> {Alert_Level__c}<br> | |
| <b>RFID Tag:</b> {RFID_Tag__c}<br> | |
| <b>Tilt:</b> {Tilt__c}<br> | |
| <b>Vibration:</b> {Vibration__c} | |
| """, | |
| "style": { | |
| "backgroundColor": "steelblue", | |
| "color": "white" | |
| } | |
| } | |
| # Return the heatmap | |
| return pdk.Deck( | |
| map_style="mapbox://styles/mapbox/dark-v10", | |
| initial_view_state=view_state, | |
| layers=[layer], | |
| tooltip=tooltip | |
| ) |