|
|
|
import streamlit as st |
|
from salesforce_integration import fetch_poles |
|
from modules.visuals import display_dashboard, display_charts |
|
import plotly.express as px |
|
import pandas as pd |
|
|
|
|
|
st.title("π‘ VIEP Smart Poles Dashboard") |
|
|
|
|
|
df = fetch_poles() |
|
|
|
|
|
|
|
|
|
df = fetch_poles() |
|
|
|
|
|
st.sidebar.header("π Filter Data") |
|
|
|
selected_alert_levels = st.sidebar.multiselect( |
|
"Alert Level", ["Red", "Yellow", "Green"], default=["Red", "Yellow", "Green"] |
|
) |
|
|
|
selected_sites = st.sidebar.multiselect( |
|
"Site", ["Hyderabad", "Gadwal", "Kurnool", "Ballari"], |
|
default=["Hyderabad", "Gadwal", "Kurnool", "Ballari"] |
|
) |
|
|
|
selected_camera_status = st.sidebar.selectbox( |
|
"Camera Status", ["All", "Online", "Offline"] |
|
) |
|
|
|
|
|
filtered_df = df[ |
|
(df["Alert_Level__c"].isin(selected_alert_levels)) & |
|
(df["Site__c"].isin(selected_sites)) |
|
] |
|
|
|
if selected_camera_status != "All": |
|
filtered_df = filtered_df[filtered_df["Camera_Status__c"] == selected_camera_status] |
|
|
|
|
|
|
|
|
|
display_dashboard(filtered_df) |
|
|
|
|
|
st.subheader("π Pole Table") |
|
st.dataframe(filtered_df) |
|
|
|
|
|
display_charts(filtered_df) |
|
|
|
|
|
st.subheader("π Tilt vs Vibration") |
|
fig_tv = px.scatter( |
|
filtered_df, |
|
x="Tilt_Angle__c", |
|
y="Vibration_Level__c", |
|
color="Alert_Level__c", |
|
hover_name="Name", |
|
title="Tilt Angle vs Vibration Level" |
|
) |
|
st.plotly_chart(fig_tv) |
|
|
|
|
|
display_dashboard(df) |
|
|
|
|
|
st.subheader("π Pole Table") |
|
st.dataframe(df, use_container_width=True) |
|
|
|
|
|
st.subheader("β Energy Generation (Solar vs Wind)") |
|
st.plotly_chart(px.bar(df, x="Name", y=["Solar_Generation__c", "Wind_Generation__c"], barmode="group")) |
|
|
|
|
|
display_charts(df) |
|
|
|
import plotly.express as df |
|
|
|
st.subheader("π Tilt vs Vibration") |
|
|
|
fig_tv = px.scatter( |
|
filtered_df, |
|
x="Tilt_Angle__c", |
|
y="Vibration_Level__c", |
|
color="Alert_Level__c", |
|
hover_name="Name", |
|
title="Tilt Angle vs Vibration Level" |
|
) |
|
st.plotly_chart(fig_tv) |
|
|
|
|
|
|
|
|
|
|