Spaces:
Running
Running
Update streamlit_simulation/app.py
Browse files- streamlit_simulation/app.py +27 -28
streamlit_simulation/app.py
CHANGED
@@ -183,15 +183,14 @@ def predict_transformer_step(model, dataset, idx, device):
|
|
183 |
|
184 |
|
185 |
def init_simulation_layout():
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
x_axis_label = col1.empty()
|
191 |
-
info_container = col2.empty()
|
192 |
return plot_title, plot_container, x_axis_label, info_container
|
193 |
|
194 |
|
|
|
195 |
def create_prediction_plot(pred_timestamps, pred_vals, true_timestamps, true_vals, window_hours, y_min=None, y_max=None):
|
196 |
"""Generates the matplotlib figure for plotting prediction vs. actual."""
|
197 |
fig, ax = plt.subplots(figsize=(8, 5), constrained_layout=False, facecolor=PLOT_COLOR)
|
@@ -243,37 +242,37 @@ def render_simulation_view(timestamp, prediction, actual, progress, fig, paused=
|
|
243 |
unsafe_allow_html=True
|
244 |
)
|
245 |
|
246 |
-
with info_container
|
247 |
-
st.markdown("
|
248 |
st.markdown(
|
249 |
f"<span style='font-size: 24px; font-weight: 600; color: {HEADER_COLOR} !important;'>Time: {timestamp}</span>",
|
250 |
unsafe_allow_html=True
|
251 |
)
|
252 |
-
|
253 |
st.metric("Prediction", f"{prediction:,.0f} MW" if prediction is not None else "–")
|
254 |
st.metric("Actual", f"{actual:,.0f} MW" if actual is not None else "–")
|
255 |
st.caption("Simulation Progress")
|
256 |
st.progress(progress)
|
257 |
|
258 |
-
if len(st.session_state.true_vals) > 1:
|
259 |
-
|
260 |
-
pred_arr = np.array(st.session_state.pred_vals[:-1])
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
mape = np.mean(errors / np.where(true_arr[:min_len] == 0, 1e-10, true_arr[:min_len])) * 100
|
266 |
-
mae = np.mean(errors)
|
267 |
-
max_error = np.max(errors)
|
268 |
-
|
269 |
-
|
270 |
-
st.markdown(
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
st.metric("MAPE (so far)", f"{mape:.2f} %")
|
275 |
-
|
276 |
-
|
277 |
|
278 |
|
279 |
|
|
|
183 |
|
184 |
|
185 |
def init_simulation_layout():
|
186 |
+
plot_title = st.empty()
|
187 |
+
plot_container = st.empty()
|
188 |
+
x_axis_label = st.empty()
|
189 |
+
info_container = st.container()
|
|
|
|
|
190 |
return plot_title, plot_container, x_axis_label, info_container
|
191 |
|
192 |
|
193 |
+
|
194 |
def create_prediction_plot(pred_timestamps, pred_vals, true_timestamps, true_vals, window_hours, y_min=None, y_max=None):
|
195 |
"""Generates the matplotlib figure for plotting prediction vs. actual."""
|
196 |
fig, ax = plt.subplots(figsize=(8, 5), constrained_layout=False, facecolor=PLOT_COLOR)
|
|
|
242 |
unsafe_allow_html=True
|
243 |
)
|
244 |
|
245 |
+
with info_container:
|
246 |
+
st.markdown("---")
|
247 |
st.markdown(
|
248 |
f"<span style='font-size: 24px; font-weight: 600; color: {HEADER_COLOR} !important;'>Time: {timestamp}</span>",
|
249 |
unsafe_allow_html=True
|
250 |
)
|
251 |
+
|
252 |
st.metric("Prediction", f"{prediction:,.0f} MW" if prediction is not None else "–")
|
253 |
st.metric("Actual", f"{actual:,.0f} MW" if actual is not None else "–")
|
254 |
st.caption("Simulation Progress")
|
255 |
st.progress(progress)
|
256 |
|
257 |
+
#if len(st.session_state.true_vals) > 1:
|
258 |
+
# true_arr = np.array(st.session_state.true_vals)
|
259 |
+
#pred_arr = np.array(st.session_state.pred_vals[:-1])
|
260 |
+
|
261 |
+
# min_len = min(len(true_arr), len(pred_arr)) #just start if there are 2 actual values
|
262 |
+
# if min_len >= 1:
|
263 |
+
# errors = np.abs(true_arr[:min_len] - pred_arr[:min_len])
|
264 |
+
#mape = np.mean(errors / np.where(true_arr[:min_len] == 0, 1e-10, true_arr[:min_len])) * 100
|
265 |
+
#mae = np.mean(errors)
|
266 |
+
#max_error = np.max(errors)
|
267 |
+
|
268 |
+
#st.divider()
|
269 |
+
#st.markdown(
|
270 |
+
# f"<span style='font-size: 24px; font-weight: 600; color: {HEADER_COLOR} !important;'>Interim Metrics</span>",
|
271 |
+
# unsafe_allow_html=True
|
272 |
+
# )
|
273 |
+
#st.metric("MAPE (so far)", f"{mape:.2f} %")
|
274 |
+
# st.metric("MAE (so far)", f"{mae:,.0f} MW")
|
275 |
+
#st.metric("Max Error", f"{max_error:,.0f} MW")
|
276 |
|
277 |
|
278 |
|