-
Notifications
You must be signed in to change notification settings - Fork 0
Feature: provide method to integrate time series values. #136
Copy link
Copy link
Open
Description
TRNSYS provides printegrators to integrate values over specific periods.
If specific values are missed, the entire simulation needs to be run again, while printing this value.
If a value is available at a lower level, this integration can be done in post-processing.
The following is some suggested code that would do this:
def integrate_values(df: _pd.DataFrame, column: str, new_index: _pd.DatetimeIndex,
to_type: _tp.Literal["hourly", "daily", "weekly", "monthly"],
time_step_in_minutes: int | None = None
):
if to_type == "hourly":
index = df.index.hour
elif to_type == "daily":
index = df.index.date
elif to_type == "weekly":
index = df.index.week
elif to_type == "monthly":
index = df.index.month
df_integrated = df.groupby(index)[column].sum()
df_integrated.index = new_index
if time_step_in_minutes is not None:
conversion_factor = 60./time_step_in_minutes
df_integrated /= conversion_factor
return df_integrated
sim.step["el_from_grid_trnsys"] = sim.step["ElecPelGrid_kW"].clip(lower=0)
sim.monthly["el_from_grid_trnsys"] = integrate_values(sim.step, "el_from_grid_trnsys",
new_index=sim.monthly.index, to_type="monthly",
time_step_in_minutes=2)
sim.step["el_grid_feed_in_trnsys"] = abs(sim.step["ElecPelGrid_kW"].clip(upper=0))
sim.monthly["el_grid_feed_in_trnsys"] = integrate_values(sim.step, "el_grid_feed_in_trnsys",
new_index=sim.monthly.index, to_type="monthly",
time_step_in_minutes=2)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels