Skip to content

Commit a32e38d

Browse files
committed
fix regret ST plots
1 parent 15e3876 commit a32e38d

File tree

3 files changed

+22
-18
lines changed

3 files changed

+22
-18
lines changed

Snakefile

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,23 +1197,27 @@ rule regret_plots_lt:
11971197

11981198
rule regret_plots:
11991199
params:
1200-
scenarios=get_scenarios(run),
1200+
scenarios=config["run"]["name"],
1201+
scenarios_config=get_scenarios(run),
12011202
planning_horizons=config_provider("scenario", "planning_horizons"),
12021203
plotting=config_provider("plotting"),
12031204
output_dir=directory(
1204-
f"results/{config['run']['prefix']}/regret_plots/ST_comparison"
1205+
f"results/{config['run']['prefix']}/regret_plots/{{sensitivity}}/ST_comparison"
12051206
),
1207+
12061208
input:
1207-
regret_networks=expand(
1208-
RESULTS
1209-
+ "regret_networks/decision_{decision}_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc",
1210-
**config["scenario"],
1211-
allow_missing=True,
1209+
regret_networks=lambda wildcards: expand(
1210+
f"results/{config['run']['prefix']}/{{run}}/regret_networks/{wildcards.sensitivity}/decision_{{decision}}_s_{{clusters}}_{{opts}}_{{sector_opts}}_{{planning_horizons}}.nc",
12121211
run=config["run"]["name"],
12131212
decision=config["run"]["name"],
1213+
clusters=config["scenario"]["clusters"],
1214+
opts=config["scenario"]["opts"],
1215+
sector_opts=config["scenario"]["sector_opts"],
1216+
planning_horizons=config["scenario"]["planning_horizons"],
1217+
allow_missing=True,
12141218
),
12151219
output:
1216-
elec_price_comp_de=f"results/{config['run']['prefix']}/regret_plots/ST_comparison/elec_price_comp_de.png",
1220+
elec_price_comp_de=f"results/{config['run']['prefix']}/regret_plots/{{sensitivity}}/ST_comparison/elec_price_comp_de.png",
12171221
resources:
12181222
mem_mb=32000,
12191223
script:

config/config.de.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#run
66
run:
7-
prefix: 20250923_regret_uc_scaleCBF
7+
prefix: 20250923_split_power_limit
88
name:
99
# - ExPol
1010
# - KN2045_Mix

scripts/pypsa-de/regret_plots.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,16 @@ def aggregate_by_keywords(opex_comp_agg, groups):
6464

6565
from _helpers import mock_snakemake
6666

67-
snakemake = mock_snakemake(
68-
"regret_plots",
69-
)
67+
snakemake = mock_snakemake(
68+
"regret_plots",
69+
sensitivity="gas_price_60",
70+
)
7071

7172
configure_logging(snakemake)
7273
config = snakemake.config
7374
planning_horizons = snakemake.params.planning_horizons
74-
scenarios = ["HighDemand", "LowDemand"]
75+
scenarios = snakemake.params.scenarios
76+
decisions = ["decision_" + d for d in scenarios]
7577
tech_colors = snakemake.params.plotting["tech_colors"]
7678

7779
# Nested dict: networks[year][scenario][decision] = Network
@@ -81,7 +83,7 @@ def aggregate_by_keywords(opex_comp_agg, groups):
8183
parts = fn.split(os.sep)
8284

8385
# scenario is the folder name 2 levels up
84-
scenario = parts[-3]
86+
scenario = parts[-4]
8587
if scenario not in scenarios:
8688
raise ValueError(
8789
f"Unexpected scenario '{scenario}' in {fn}. Allowed: {scenarios}"
@@ -111,12 +113,10 @@ def aggregate_by_keywords(opex_comp_agg, groups):
111113
# Plot electricity price duration curves
112114

113115
fig, ax = plt.subplots(
114-
figsize=(10, 5 * len(planning_horizons)), nrows=len(planning_horizons), ncols=1
116+
figsize=(4*len(scenarios), 5 * len(planning_horizons)), nrows=len(planning_horizons), ncols=1
115117
)
116118
ax = ax.flatten()
117119

118-
decisions = ["decision_HighDemand", "decision_LowDemand"]
119-
120120
for i, year in enumerate(planning_horizons):
121121
for scenario, decision in itertools.product(scenarios, decisions):
122122
n = networks[year][scenario][decision]
@@ -164,7 +164,7 @@ def aggregate_by_keywords(opex_comp_agg, groups):
164164
}
165165

166166
fig, axes = plt.subplots(
167-
nrows=len(planning_horizons), ncols=1, figsize=(12, 6 * len(planning_horizons))
167+
nrows=len(planning_horizons), ncols=1, figsize=(6*len(scenarios), 6 * len(planning_horizons))
168168
)
169169
axes = axes.flatten()
170170

0 commit comments

Comments
 (0)