Skip to content

Commit 82f4fb9

Browse files
committed
first version of st variations should work now
1 parent ce45713 commit 82f4fb9

File tree

4 files changed

+34
-15
lines changed

4 files changed

+34
-15
lines changed

Snakefile

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,12 +1023,12 @@ rule prepare_st_low_res_network:
10231023
+ "networks/base_s_{clusters}_{opts}_{sector_opts}_{st_years}.nc",
10241024
output:
10251025
st_low_res_prenetwork=RESULTS
1026-
+ "st_low_res_prenetworks/base_s_{clusters}_{opts}_{sector_opts}_{st_years}.nc",
1026+
+ "st_low_res_prenetworks/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}.nc",
10271027
resources:
10281028
mem_mb=16000,
10291029
log:
10301030
RESULTS
1031-
+ "logs/st_low_res_prenetwork_s_{clusters}_{opts}_{sector_opts}_{st_years}.log",
1031+
+ "logs/st_low_res_prenetwork_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}.log",
10321032
script:
10331033
"scripts/pypsa-de/prepare_st_low_res_network.py"
10341034

@@ -1042,21 +1042,21 @@ rule solve_st_low_res_network:
10421042
custom_extra_functionality=input_custom_extra_functionality,
10431043
input:
10441044
st_low_res_prenetwork=RESULTS
1045-
+ "st_low_res_prenetworks/base_s_{clusters}_{opts}_{sector_opts}_{st_years}.nc",
1045+
+ "st_low_res_prenetworks/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}.nc",
10461046
co2_totals_name=resources("co2_totals.csv"),
10471047
energy_totals=resources("energy_totals.csv"),
10481048
output:
10491049
st_low_res_network=RESULTS
1050-
+ "st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}.nc",
1050+
+ "st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}.nc",
10511051
shadow:
10521052
shadow_config
10531053
log:
10541054
solver=RESULTS
1055-
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_solver.log",
1055+
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}_solver.log",
10561056
memory=RESULTS
1057-
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_memory.log",
1057+
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}_memory.log",
10581058
python=RESULTS
1059-
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_python.log",
1059+
+ "logs/st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}_python.log",
10601060
threads: solver_threads
10611061
resources:
10621062
mem_mb=config_provider("solving", "mem_mb"),
@@ -1102,25 +1102,28 @@ use rule export_ariadne_variables as export_st_variables with:
11021102
energy_totals=resources("energy_totals.csv"),
11031103
st_low_res_networks=expand(
11041104
RESULTS
1105-
+ "st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}.nc",
1105+
+ "st_low_res_networks/{sensitivity}/base_s_{clusters}_{opts}_{sector_opts}_{st_years}_eeg_level_{eeg_level}.nc",
11061106
**config["scenario"],
11071107
st_years=config_provider("iiasa_database", "regret_run", "st_years"),
11081108
allow_missing=True,
11091109
),
11101110
output:
11111111
exported_variables=RESULTS
1112-
+ "st_low_res_variables/{sensitivity}/st_low_res_variables.xlsx",
1112+
+ "st_low_res_variables/{sensitivity}/st_low_res_variables_eeg_level_{eeg_level}.xlsx",
11131113
exported_variables_full=RESULTS
1114-
+ "st_low_res_variables/{sensitivity}/st_low_res_variables_full.xlsx",
1114+
+ "st_low_res_variables/{sensitivity}/st_low_res_variables_full_eeg_level_{eeg_level}.xlsx",
11151115
log:
1116-
RESULTS + "logs/st_low_res_variables/{sensitivity}/st_low_res_variables.log",
1116+
RESULTS
1117+
+ "logs/st_low_res_variables/{sensitivity}/st_low_res_variables_eeg_level_{eeg_level}.log",
11171118

11181119

11191120
rule st_all:
11201121
input:
11211122
expand(
1122-
RESULTS + "st_low_res_variables/{sensitivity}/st_low_res_variables.xlsx",
1123+
RESULTS
1124+
+ "st_low_res_variables/{sensitivity}/st_low_res_variables_eeg_level_{eeg_level}.xlsx",
11231125
sensitivity=get_st_sensitivities,
1126+
eeg_level=config_provider("iiasa_database", "regret_run", "EEG_levels"),
11241127
run=config_provider("run", "name"),
11251128
),
11261129

config/config.de.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ iiasa_database:
5858
#- gas_price_80
5959
st_years:
6060
- 2030
61+
EEG_levels:
62+
- 1.00
63+
# - 0.95
64+
# - 0.90
65+
- 0.85
66+
# - 0.80
67+
# - 0.75
68+
- 0.70
6169
unit_commitment:
6270
enable: false
6371
params: custom # options: conservative, average, optimistic, custom

scripts/pypsa-de/export_ariadne_variables.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5542,6 +5542,10 @@ def get_data(
55425542

55435543
# Load data
55445544
_networks = [pypsa.Network(fn) for fn in snakemake.input.networks]
5545+
if snakemake.input.st_low_res_networks:
5546+
_networks_st = [pypsa.Network(fn) for fn in snakemake.input.st_low_res_networks]
5547+
N_st = len(_networks_st)
5548+
_networks[-N_st:] = _networks_st
55455549

55465550
nhours = _networks[0].snapshot_weightings.generators.sum()
55475551
nyears = nhours / 8760

scripts/pypsa-de/prepare_st_low_res_network.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ def fix_capacities(n_lt, no_flex=False):
128128
sector_opts="none",
129129
st_years="2030",
130130
run="HighDemand",
131+
eeg_level=0.7,
131132
)
132133

133134
configure_logging(snakemake)
@@ -153,7 +154,9 @@ def fix_capacities(n_lt, no_flex=False):
153154

154155
n = fix_capacities(n_lt, snakemake.params.get("no_flex_lt_run", False))
155156

156-
scale_new_res_to_target(n, eeg_targets, int(st_years), ratio=1.0)
157+
scale_new_res_to_target(
158+
n, eeg_targets, int(st_years), ratio=float(snakemake.wildcards.eeg_level)
159+
)
157160

158161
if h2_vent:
159162
logger.info("H2 venting activated for short-term run.")
@@ -210,6 +213,8 @@ def fix_capacities(n_lt, no_flex=False):
210213
regret_run=True,
211214
)
212215

216+
logger.info("Adding negative CO2 generator and dropping co2 limits.")
217+
213218
n.add(
214219
"Generator",
215220
"co2 atmosphere",
@@ -218,9 +223,8 @@ def fix_capacities(n_lt, no_flex=False):
218223
p_max_pu=0,
219224
p_nom_extendable=True,
220225
carrier="co2",
221-
marginal_cost=co2_prices[int(st_years)],
226+
marginal_cost=-co2_prices[int(st_years)],
222227
)
223-
logger.info("Adding negative CO2 generator and dropping co2 limits.")
224228
n.global_constraints.drop("CO2Limit", inplace=True)
225229
n.global_constraints.drop("co2_limit-DE", inplace=True)
226230

0 commit comments

Comments
 (0)