Update app.py
Browse files
app.py
CHANGED
@@ -16,12 +16,16 @@ def load_timeseries_data(start_date, end_date):
|
|
16 |
start_date_str = pd.to_datetime(start_date).strftime('%Y-%m-%d')
|
17 |
end_date_str = (pd.to_datetime(start_date) + pd.offsets.MonthEnd()).strftime('%Y-%m-%d')
|
18 |
file_name = f"enel_timeseries_data_{start_date_str}_{end_date_str}.csv"
|
|
|
|
|
19 |
return pd.read_csv(file_name, index_col=0, header=[0, 1, 2], parse_dates=True)
|
20 |
|
21 |
def load_other_features_data(start_date, end_date):
|
22 |
start_date_str = pd.to_datetime(start_date).strftime('%Y-%m-%d')
|
23 |
end_date_str = (pd.to_datetime(start_date) + pd.offsets.MonthEnd()).strftime('%Y-%m-%d')
|
24 |
file_name = f"enel_other_features_data_{start_date_str}_{end_date_str}.csv"
|
|
|
|
|
25 |
return pd.read_csv(file_name, index_col=0, header=0, parse_dates=True)
|
26 |
|
27 |
# Define the start and end dates
|
@@ -32,6 +36,13 @@ kpi_data = pd.read_csv(
|
|
32 |
r"kpi_data.csv", index_col=0, header=0, parse_dates=True
|
33 |
)
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
# Initialize Panel extension
|
36 |
pn.extension("plotly")
|
37 |
|
@@ -40,7 +51,7 @@ date_range_picker = pn.widgets.DateRangePicker(
|
|
40 |
name='Date Range',
|
41 |
start=start_date,
|
42 |
end=end_date,
|
43 |
-
value=(start_date, start_date + pd.DateOffset(months=1).date())
|
44 |
)
|
45 |
|
46 |
inverter_ids = pn.widgets.MultiSelect(
|
@@ -61,7 +72,7 @@ heatmap_voltage = pn.widgets.Checkbox(name="Heat Map - Voltage", value=False)
|
|
61 |
heatmap_power = pn.widgets.Checkbox(name="Heat Map - Power", value=False)
|
62 |
heatmap_irradiance = pn.widgets.Checkbox(name="Heat Map - Irradiance", value=False)
|
63 |
heatmap_temperature = pn.widgets.Checkbox(
|
64 |
-
name="Heat Map - Temperature
|
65 |
)
|
66 |
|
67 |
# Create a loading spinner
|
@@ -161,7 +172,7 @@ def update_heatmap_irradiance(heatmap_irradiance):
|
|
161 |
if heatmap_irradiance:
|
162 |
irradiance_df = daily_timeseries_data.filter(like="G")
|
163 |
irradiance_df.columns = [i.split("-")[1] for i in irradiance_df.columns]
|
164 |
-
irradiance_heatmap = create_heatmap(irradiance_df, "Irradiance
|
165 |
return pn.Row(irradiance_heatmap)
|
166 |
return pn.pane.Markdown("")
|
167 |
|
@@ -179,6 +190,7 @@ def update_heatmap_temperature(heatmap_temperature):
|
|
179 |
# Create dashboard layout
|
180 |
dashboard = pn.Column(
|
181 |
"# ENEL Dashboard",
|
|
|
182 |
# IV Plots
|
183 |
pn.Row(
|
184 |
pn.Column(inverter_ids, plot_power_curves, plot_temperature_curves),
|
|
|
16 |
start_date_str = pd.to_datetime(start_date).strftime('%Y-%m-%d')
|
17 |
end_date_str = (pd.to_datetime(start_date) + pd.offsets.MonthEnd()).strftime('%Y-%m-%d')
|
18 |
file_name = f"enel_timeseries_data_{start_date_str}_{end_date_str}.csv"
|
19 |
+
if not os.path.exists(file_name):
|
20 |
+
return None
|
21 |
return pd.read_csv(file_name, index_col=0, header=[0, 1, 2], parse_dates=True)
|
22 |
|
23 |
def load_other_features_data(start_date, end_date):
|
24 |
start_date_str = pd.to_datetime(start_date).strftime('%Y-%m-%d')
|
25 |
end_date_str = (pd.to_datetime(start_date) + pd.offsets.MonthEnd()).strftime('%Y-%m-%d')
|
26 |
file_name = f"enel_other_features_data_{start_date_str}_{end_date_str}.csv"
|
27 |
+
if not os.path.exists(file_name):
|
28 |
+
return None
|
29 |
return pd.read_csv(file_name, index_col=0, header=0, parse_dates=True)
|
30 |
|
31 |
# Define the start and end dates
|
|
|
36 |
r"kpi_data.csv", index_col=0, header=0, parse_dates=True
|
37 |
)
|
38 |
|
39 |
+
daily_timeseries_data = pd.read_csv(
|
40 |
+
r"daily_aggregated_timeseries_data.csv",
|
41 |
+
index_col=0,
|
42 |
+
header=0,
|
43 |
+
parse_dates=True,
|
44 |
+
)
|
45 |
+
|
46 |
# Initialize Panel extension
|
47 |
pn.extension("plotly")
|
48 |
|
|
|
51 |
name='Date Range',
|
52 |
start=start_date,
|
53 |
end=end_date,
|
54 |
+
value=(start_date, (start_date + pd.DateOffset(months=1)).date())
|
55 |
)
|
56 |
|
57 |
inverter_ids = pn.widgets.MultiSelect(
|
|
|
72 |
heatmap_power = pn.widgets.Checkbox(name="Heat Map - Power", value=False)
|
73 |
heatmap_irradiance = pn.widgets.Checkbox(name="Heat Map - Irradiance", value=False)
|
74 |
heatmap_temperature = pn.widgets.Checkbox(
|
75 |
+
name="Heat Map - Temperature Heatsink", value=False
|
76 |
)
|
77 |
|
78 |
# Create a loading spinner
|
|
|
172 |
if heatmap_irradiance:
|
173 |
irradiance_df = daily_timeseries_data.filter(like="G")
|
174 |
irradiance_df.columns = [i.split("-")[1] for i in irradiance_df.columns]
|
175 |
+
irradiance_heatmap = create_heatmap(irradiance_df, "Irradiance Heatmap")
|
176 |
return pn.Row(irradiance_heatmap)
|
177 |
return pn.pane.Markdown("")
|
178 |
|
|
|
190 |
# Create dashboard layout
|
191 |
dashboard = pn.Column(
|
192 |
"# ENEL Dashboard",
|
193 |
+
date_range_picker,
|
194 |
# IV Plots
|
195 |
pn.Row(
|
196 |
pn.Column(inverter_ids, plot_power_curves, plot_temperature_curves),
|