Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
import dash
|
2 |
-
from dash import
|
3 |
-
import pandas as pd
|
4 |
-
import numpy as np
|
5 |
import plotly.graph_objects as go
|
|
|
6 |
import random
|
7 |
|
8 |
# Constants
|
@@ -10,39 +9,37 @@ SITES = ['Hyderabad', 'Kurnool', 'Bangalore', 'Warangal']
|
|
10 |
POLES_PER_SITE = 12
|
11 |
ALERT_THRESHOLD = 80
|
12 |
|
13 |
-
# Generate sample pole data
|
14 |
def generate_data():
|
15 |
data = []
|
16 |
for site in SITES:
|
17 |
-
for
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
20 |
return pd.DataFrame(data)
|
21 |
|
22 |
df = generate_data()
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
pivot_df = dataframe.pivot(index='Site', columns='Pole', values='Status')
|
27 |
fig = go.Figure(data=go.Heatmap(
|
28 |
z=pivot_df.values,
|
29 |
x=pivot_df.columns,
|
30 |
y=pivot_df.index,
|
31 |
colorscale="Viridis",
|
32 |
-
colorbar=dict(title="Status"),
|
33 |
zmin=0,
|
34 |
zmax=100
|
35 |
))
|
36 |
fig.update_layout(title="Pole Status Heatmap", height=500)
|
37 |
return fig
|
38 |
|
39 |
-
# Dash app setup
|
40 |
app = dash.Dash(__name__)
|
41 |
-
server = app.server #
|
42 |
|
43 |
-
# App layout
|
44 |
app.layout = html.Div([
|
45 |
-
html.H1("Pole Management Dashboard", style={
|
46 |
dcc.Graph(figure=create_heatmap(df)),
|
47 |
|
48 |
html.Div([
|
@@ -52,8 +49,8 @@ app.layout = html.Div([
|
|
52 |
"animation": "blinker 1s linear infinite",
|
53 |
"color": "red",
|
54 |
"fontWeight": "bold",
|
55 |
-
"fontSize": "
|
56 |
-
"margin": "
|
57 |
"display": "inline-block"
|
58 |
})
|
59 |
for _, row in df[df["Status"] > ALERT_THRESHOLD].iterrows()
|
@@ -69,6 +66,5 @@ app.layout = html.Div([
|
|
69 |
''', dangerously_allow_html=True)
|
70 |
])
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
app.run_server(debug=False, host='0.0.0.0', port=7860)
|
|
|
1 |
import dash
|
2 |
+
from dash import html, dcc
|
|
|
|
|
3 |
import plotly.graph_objects as go
|
4 |
+
import pandas as pd
|
5 |
import random
|
6 |
|
7 |
# Constants
|
|
|
9 |
POLES_PER_SITE = 12
|
10 |
ALERT_THRESHOLD = 80
|
11 |
|
|
|
12 |
def generate_data():
|
13 |
data = []
|
14 |
for site in SITES:
|
15 |
+
for i in range(1, POLES_PER_SITE + 1):
|
16 |
+
data.append({
|
17 |
+
"Site": site,
|
18 |
+
"Pole": f"P{i}",
|
19 |
+
"Status": random.randint(0, 100)
|
20 |
+
})
|
21 |
return pd.DataFrame(data)
|
22 |
|
23 |
df = generate_data()
|
24 |
|
25 |
+
def create_heatmap(df):
|
26 |
+
pivot_df = df.pivot(index="Site", columns="Pole", values="Status")
|
|
|
27 |
fig = go.Figure(data=go.Heatmap(
|
28 |
z=pivot_df.values,
|
29 |
x=pivot_df.columns,
|
30 |
y=pivot_df.index,
|
31 |
colorscale="Viridis",
|
|
|
32 |
zmin=0,
|
33 |
zmax=100
|
34 |
))
|
35 |
fig.update_layout(title="Pole Status Heatmap", height=500)
|
36 |
return fig
|
37 |
|
|
|
38 |
app = dash.Dash(__name__)
|
39 |
+
server = app.server # For Hugging Face Spaces
|
40 |
|
|
|
41 |
app.layout = html.Div([
|
42 |
+
html.H1("Pole Management Dashboard", style={"textAlign": "center"}),
|
43 |
dcc.Graph(figure=create_heatmap(df)),
|
44 |
|
45 |
html.Div([
|
|
|
49 |
"animation": "blinker 1s linear infinite",
|
50 |
"color": "red",
|
51 |
"fontWeight": "bold",
|
52 |
+
"fontSize": "18px",
|
53 |
+
"margin": "8px",
|
54 |
"display": "inline-block"
|
55 |
})
|
56 |
for _, row in df[df["Status"] > ALERT_THRESHOLD].iterrows()
|
|
|
66 |
''', dangerously_allow_html=True)
|
67 |
])
|
68 |
|
69 |
+
if __name__ == "__main__":
|
70 |
+
app.run_server(debug=False, host="0.0.0.0", port=7860)
|
|