Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
from modules.simulator import simulate_data
|
| 3 |
+
from modules.filters import apply_filters
|
| 4 |
+
from modules.visuals import display_dashboard, display_charts, display_heatmap
|
| 5 |
+
|
| 6 |
+
st.set_page_config(page_title="Vedavathi Smart Pole Monitoring - Heatmap PoC", layout="wide")
|
| 7 |
+
st.title("📡 Vedavathi Smart Pole Monitoring - PoC Simulator with Heatmap")
|
| 8 |
+
|
| 9 |
+
# Sidebar controls
|
| 10 |
+
st.sidebar.header("🛠️ Simulation Controls")
|
| 11 |
+
num_poles = 50 # Fixed to 50 poles
|
| 12 |
+
simulate_faults = st.sidebar.checkbox("Simulate Random Faults", value=True)
|
| 13 |
+
site_filter = st.sidebar.multiselect("Select Sites", ["Hyderabad", "Ballari", "Kurnool", "Gadwal"], default=["Hyderabad", "Ballari", "Kurnool", "Gadwal"])
|
| 14 |
+
|
| 15 |
+
# Simulate data
|
| 16 |
+
df = simulate_data(num_poles, simulate_faults)
|
| 17 |
+
|
| 18 |
+
# Filter data
|
| 19 |
+
st.sidebar.header("📂 Filter Data")
|
| 20 |
+
alert_filter = st.sidebar.multiselect("Alert Level", ["Green", "Yellow", "Red"], default=["Green", "Yellow", "Red"])
|
| 21 |
+
cam_filter = st.sidebar.selectbox("Camera Status", ["All", "Online", "Offline"], index=0)
|
| 22 |
+
filtered_df = apply_filters(df, alert_filter, cam_filter, site_filter)
|
| 23 |
+
|
| 24 |
+
# Display dashboard
|
| 25 |
+
display_dashboard(filtered_df)
|
| 26 |
+
|
| 27 |
+
# Pole monitoring table
|
| 28 |
+
st.subheader("📋 Pole Monitoring Table")
|
| 29 |
+
st.dataframe(filtered_df, use_container_width=True)
|
| 30 |
+
|
| 31 |
+
# Charts and heatmap
|
| 32 |
+
display_charts(filtered_df)
|
| 33 |
+
display_heatmap(filtered_df)
|