Skip to content

Commit

Permalink
refactor: only add weighted price if load if non-zero (#1500)
Browse files Browse the repository at this point in the history
  • Loading branch information
FabianHofmann authored Jan 16, 2025
1 parent 39b0f07 commit bd5e36c
Showing 1 changed file with 13 additions and 15 deletions.
28 changes: 13 additions & 15 deletions scripts/make_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,24 +542,22 @@ def calculate_weighted_prices(n, label, weighted_prices):
carriers = n.buses.carrier.unique()

for carrier in carriers:
load = (
n.statistics.withdrawal(
groupby=pypsa.statistics.groupers["bus", "carrier"],
aggregate_time=False,
nice_names=False,
bus_carrier=carrier,
)
.groupby(level="bus")
.sum()
.T.fillna(0)
load = n.statistics.withdrawal(
groupby=pypsa.statistics.groupers["bus", "carrier"],
aggregate_time=False,
nice_names=False,
bus_carrier=carrier,
)

price = n.buses_t.marginal_price.loc[:, n.buses.carrier == carrier]
price = price.reindex(columns=load.columns, fill_value=1)
if not load.empty and load.sum().sum() > 0:
load = load.groupby(level="bus").sum().T.fillna(0)

price = n.buses_t.marginal_price.loc[:, n.buses.carrier == carrier]
price = price.reindex(columns=load.columns, fill_value=1)

weighted_prices.loc[carrier, label] = (
load * price
).sum().sum() / load.sum().sum()
weighted_prices.loc[carrier, label] = (
load * price
).sum().sum() / load.sum().sum()

return weighted_prices

Expand Down

0 comments on commit bd5e36c

Please sign in to comment.