Skip to content

Commit 5f98a1c

Browse files
authored
Diverse adjustements for update of Szenarienreport (#155)
* focus_weight FR = IT = 2 * smoother path for electricity import limits * start optimization in 2025 * keep 2050 out of interest * fix focus_weight error * add possibility to add H2 turbines in all of EU * fix index * update RES bounds in line with new ARIADNE modeling protocol * force later retrofit of H2 plants * disable plot_ariadne_variables for now * ai: improve syntax to avoid indexing warnings * define scenario with h2 plants in all of EU * use uba data for 2030 * switch to administrative clustering with NUTS regions * remove constraint for DE sequestration potential to avoid strange C flows * Fh-ISE costs for solar-utility and solar-hsat * homogenize decentral heating discount rate assumptions * fix naming of solar-hsat in custom_costs; define different discount scenarios * add separate variables for home and utility scale batteries * Heuristically split existing solar capacities 50:50 between rootop and utility scale * Make mixed decentral discount rates the new default * allow H2 turbines in all of EU by default * change to weatheryear 2013 * edit changelog
1 parent 0e9629b commit 5f98a1c

13 files changed

Lines changed: 466 additions & 115 deletions

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
11
# Changelog
2+
- Switched to weather year 2013
3+
- in 2030 use UBA data for industry and mobility
4+
- start myopic optimization in 2025
5+
- remove national CO2 sequestration limit for DE, because it was causing strange E-Fuel exports
6+
- enable H2 gas turbines in all countries
7+
- force H2 retrofit (for DE) only in 2045, instead of in 2035
8+
- split existing solar 50:50 between rooftop and utility (previously 0:100)
9+
- increase decentral discount rates to account for mix of residential and commercial sector
10+
- use ISE cost data for solar (DC costs instead of AC)
11+
- Minor fix for cluster weights
212
- added 2 delay years to the offshore NEP, s.t. capacity in 2030 is ~20GW
313
- improved script name `modify_industry_demand` -> `modify_industry_production`
414
- excluded international shipping from DE-specific CO2 emisisons

Snakefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ rule modify_prenetwork:
641641
transmission_costs=config_provider("costs", "transmission"),
642642
must_run=config_provider("must_run"),
643643
clustering=config_provider("clustering", "temporal", "resolution_sector"),
644-
H2_plants=config_provider("electricity", "H2_plants_DE"),
644+
H2_plants=config_provider("electricity", "H2_plants"),
645645
onshore_nep_force=config_provider("onshore_nep_force"),
646646
offshore_nep_force=config_provider("offshore_nep_force"),
647647
shipping_methanol_efficiency=config_provider(
@@ -921,10 +921,10 @@ rule plot_ariadne_variables:
921921
rule ariadne_all:
922922
input:
923923
expand(RESULTS + "graphs/costs.svg", run=config_provider("run", "name")),
924-
expand(
925-
RESULTS + "ariadne/capacity_detailed.png",
926-
run=config_provider("run", "name"),
927-
),
924+
# expand(
925+
# RESULTS + "ariadne/capacity_detailed.png",
926+
# run=config_provider("run", "name"),
927+
# ),
928928
expand(
929929
RESULTS
930930
+ "maps/base_s_{clusters}_{opts}_{sector_opts}-h2_network_incl_kernnetz_{planning_horizons}.pdf",

config/config.de.yaml

Lines changed: 46 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
1+
# SPDX-FileCopyrightText: : 2017-2026 The PyPSA-Eur Authors
22
#
33
# SPDX-License-Identifier: CC0-1.0
44

55
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#run
66
run:
7-
prefix: 20260114_limit_cross_border_flows
7+
prefix: 20260219_wy2013
88
name:
99
# - ExPol
1010
- KN2045_Mix
11+
# - KN2045_Mix_LowDecentralDiscount
12+
# - KN2045_Mix_HighDecentralDiscount
13+
# - KN2045_Mix_H2plantsEU
1114
# - KN2045_Elek
1215
# - KN2045_H2
1316
# - KN2045_NFniedrig
@@ -38,10 +41,12 @@ pypsa-de:
3841
ageb_for_mobility: true # In 2020 use AGEB data for final energy demand and KBA for vehicles
3942
uba_for_mobility: # Available for 2025–2035; uses MWMS scenario from UBA Projektionsbericht 2025
4043
- 2025
44+
- 2030
4145
uba_for_industry: # Available for 2025–2035; uses MWMS scenario from UBA Projektionsbericht 2025
4246
scale_non_energy: false # Scale non-energy demand directly proportional to energy demand
4347
enable: # Allowed values are "false" or a subset of [2025, 2030, 2035]
4448
- 2025
49+
- 2030
4550
limit_cross_border_flows_ac: # relevant if only one node per country is used
4651
2020: 0.4
4752
2025: 0.4
@@ -66,7 +71,6 @@ scenario:
6671
sector_opts:
6772
- none
6873
planning_horizons:
69-
- 2020
7074
- 2025
7175
- 2030
7276
- 2035
@@ -75,8 +79,8 @@ scenario:
7579
- 2050
7680

7781
existing_capacities:
78-
grouping_years_power: [1920, 1950, 1955, 1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020]
79-
grouping_years_heat: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2019] # heat grouping years >= baseyear will be ignored
82+
grouping_years_power: [1920, 1950, 1955, 1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2025]
83+
grouping_years_heat: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2024] # heat grouping years >= baseyear will be ignored
8084
fill_value_gas_chp_lifetime: 40 # if no explicit lifetime is given use 40 years. The number was chosen s.t. the existing capacities in 2020 match with statistics.
8185

8286

@@ -86,26 +90,26 @@ countries: ['AT', 'BE', 'CH', 'CZ', 'DE', 'DK', 'FR', 'GB', 'LU', 'NL', 'NO', 'P
8690

8791
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#snapshots
8892
snapshots:
89-
start: "2019-01-01"
90-
end: "2020-01-01"
93+
start: "2013-01-01"
94+
end: "2014-01-01"
9195
inclusive: 'left'
9296

9397
atlite:
94-
default_cutout: europe-2019-sarah3-era5
98+
default_cutout: europe-2013-sarah3-era5
9599
cutouts:
96-
europe-2019-sarah3-era5:
100+
europe-2013-sarah3-era5:
97101
module: [sarah, era5] # in priority order
98102
x: [-12., 42.]
99103
y: [33., 72]
100104
dx: 0.3
101105
dy: 0.3
102-
time: ['2019', '2019']
106+
time: ['2013', '2013']
103107

104108

105109
renewable:
106110
onwind:
107111
capacity_per_sqkm: 1.4
108-
cutout: europe-2019-sarah3-era5
112+
cutout: europe-2013-sarah3-era5
109113
correction_factor: 0.95
110114
resource:
111115
smooth: false #this is false until correction to onshore wind speeds from GWA implemented
@@ -129,7 +133,7 @@ renewable:
129133
offwind-ac:
130134
capacity_per_sqkm: 6
131135
landfall_length: 30
132-
cutout: europe-2019-sarah3-era5
136+
cutout: europe-2013-sarah3-era5
133137
correction_factor: 0.95
134138
resource:
135139
smooth: true
@@ -153,7 +157,7 @@ renewable:
153157
offwind-dc:
154158
capacity_per_sqkm: 6
155159
landfall_length: 30
156-
cutout: europe-2019-sarah3-era5
160+
cutout: europe-2013-sarah3-era5
157161
correction_factor: 0.95
158162
resource:
159163
smooth: true
@@ -177,46 +181,48 @@ renewable:
177181
offwind-float: # disabled at the moment
178182
landfall_length: 30
179183
capacity_per_sqkm: 6
180-
cutout: europe-2019-sarah3-era5
184+
cutout: europe-2013-sarah3-era5
181185
correction_factor: 0.95
182186
solar:
183-
cutout: europe-2019-sarah3-era5
187+
cutout: europe-2013-sarah3-era5
184188
correction_factor: 0.9 # scaling to Abbildung 36 of https://www.ise.fraunhofer.de/de/veroeffentlichungen/studien/aktuelle-fakten-zur-photovoltaik-in-deutschland.html
185189
solar-hsat:
186-
cutout: europe-2019-sarah3-era5
190+
cutout: europe-2013-sarah3-era5
187191
correction_factor: 0.9 # scaling to Abbildung 36 of https://www.ise.fraunhofer.de/de/veroeffentlichungen/studien/aktuelle-fakten-zur-photovoltaik-in-deutschland.html
188192
hydro:
189-
cutout: europe-2019-sarah3-era5
193+
cutout: europe-2013-sarah3-era5
190194

191195
lines:
192196
dynamic_line_rating:
193-
cutout: europe-2019-sarah3-era5
197+
cutout: europe-2013-sarah3-era5
194198

195199
clustering:
196-
# simplify_network:
197-
# to_substations: true
200+
# mode: administrative
201+
# administrative:
202+
# level: 0
203+
# DE: 2
198204
# Code snippet for editing focus_weights
199205
# fw = pd.Series(snakemake.config["clustering"]["focus_weights"])
200206
# fw = fw.div(fw.min()).round()
201207
# fw["ES"] = 1
202208
# print(fw.div(fw.sum()).subtract(5e-5).round(4).to_dict().__repr__().replace(",","\n"))
203209
focus_weights:
204210
# 27 nodes: 8 for Germany, 3 for Italy, 2 each for Denmark, UK and Spain, 1 per each of other 10 "Stromnachbarn"
205-
'DE': 0.2966
211+
'DE': 0.2965
206212
'AT': 0.0370
207213
'BE': 0.0370
208214
'CH': 0.0370
209215
'CZ': 0.0370
210216
'DK': 0.0741
211-
'FR': 0.0370
217+
'FR': 0.0741
212218
'GB': 0.0741
213219
'LU': 0.0370
214220
'NL': 0.0370
215221
'NO': 0.0370
216222
'PL': 0.0370
217223
'SE': 0.0370
218224
'ES': 0.0741
219-
'IT': 0.1111
225+
'IT': 0.0741
220226
# high spatial resolution: change clusters to 49
221227
# 49 nodes: 30 for Germany, 3 for Italy, 2 each for Denmark, UK and Spain, 1 per each of other 10 "Stromnachbarn"
222228
# 'DE': 0.6124
@@ -225,15 +231,15 @@ clustering:
225231
# 'CH': 0.0204
226232
# 'CZ': 0.0204
227233
# 'DK': 0.0408
228-
# 'FR': 0.0204
234+
# 'FR': 0.0408
229235
# 'GB': 0.0408
230236
# 'LU': 0.0204
231237
# 'NL': 0.0204
232238
# 'NO': 0.0204
233239
# 'PL': 0.0204
234240
# 'SE': 0.0204
235241
# 'ES': 0.0408
236-
# 'IT': 0.0612
242+
# 'IT': 0.0408
237243
temporal:
238244
resolution_sector: 365H
239245

@@ -465,8 +471,8 @@ solving:
465471
offwind:
466472
DE:
467473
2020: 7.8
468-
2025: 11.3
469-
2030: 24 # very optimistic upper ceiling to "Mittelfristprognose zur deutschlandweiten Stromerzeugung"
474+
2025: 12
475+
2030: 22 # optimistic upper ceiling to "Mittelfristprognose zur deutschlandweiten Stromerzeugung"
470476
2035: 50 # Planned projects until 2035 (offshore_connection_points.csv) -1.3 GW for potential delays
471477
2040: 65 # Planned projects until 2040 -1.5 GW for potential retirments
472478
2045: 70
@@ -475,21 +481,11 @@ solving:
475481
DE:
476482
2020: 53.7
477483
2025: 119 # Abb. 4_9 https://www.agora-energiewende.de/fileadmin/Projekte/2025/2025-28_DE_JAW25/A-EW_391_Die_Energiewende_in_Deutschland_Stand_der_Dinge_2025_WEB.pdf
478-
2030: 235 # PV Ziel 2030 + 20 GW
484+
2030: 215 # PV Ziel 2030
479485
2035: 400
480486
2040: 800
481487
2045: 1000
482488
2050: 1000
483-
Store:
484-
co2 sequestered:
485-
DE:
486-
2020: 0
487-
2025: 0
488-
2030: 10000
489-
2035: 20000
490-
2040: 50000
491-
2045: 80000
492-
2050: 80000
493489
urban central water tanks:
494490
DE:
495491
2025: 120 # GWh, https://www.hamburg-institut.com/wp-content/uploads/2023/12/Referenzblatt_SysGF-1.pdf
@@ -522,7 +518,7 @@ solving:
522518
onwind:
523519
DE:
524520
2025: 67 # Abb. 4_9 https://www.agora-energiewende.de/fileadmin/Projekte/2025/2025-28_DE_JAW25/A-EW_391_Die_Energiewende_in_Deutschland_Stand_der_Dinge_2025_WEB.pdf
525-
2030: 99 # Wind-an-Land Law 2028
521+
2030: 105 # Wind-an-Land Law 2028
526522
2035: 115 # Wind-an-Land Law 2030
527523
2040: 157 # target 2035
528524
2045: 160 # target 2040
@@ -535,10 +531,11 @@ solving:
535531
solar:
536532
DE:
537533
2025: 118 # Abb. 4_9 https://www.agora-energiewende.de/fileadmin/Projekte/2025/2025-28_DE_JAW25/A-EW_391_Die_Energiewende_in_Deutschland_Stand_der_Dinge_2025_WEB.pdf
534+
2030: 200
538535
Link:
539536
H2 Electrolysis:
540537
DE:
541-
2030: 5
538+
2030: 3
542539
# For reference, this are the values specified in the laws
543540
# limits_capacity_min:
544541
# Generator:
@@ -571,10 +568,10 @@ solving:
571568
electricity_import:
572569
DE:
573570
2020: -20
574-
2025: 0
575-
2030: 0
576-
2035: 40
577-
2040: 80
571+
2025: 25
572+
2030: 50
573+
2035: 75
574+
2040: 100
578575
2045: 125
579576
2050: 125
580577
electrolysis:
@@ -659,19 +656,17 @@ plotting:
659656
carrier_groups:
660657
electricity: [AC, low_voltage]
661658

662-
# overwrite in config.default.yaml
663-
#powerplants_filter: (DateOut >= 2019 or DateOut != DateOut)
664659
electricity:
665660
renewable_carriers: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, hydro] # removed offwind-float
666-
powerplants_filter: (DateOut >= 2019 or DateOut != DateOut) and not (Country == "DE" and Set == "CHP")
661+
powerplants_filter: (DateOut >= 2024 or DateOut != DateOut) and not (Country == "DE" and Set == "CHP")
667662
custom_powerplants: true
668663
custom_file: resources/german_chp.csv
669664
estimate_renewable_capacities:
670-
year: 2019
671-
H2_plants_DE:
672-
enable: true
665+
year: 2024
666+
H2_plants:
667+
enable: EU # allowed values: false, DE, EU
673668
start: 2030 # should be < force
674-
force: 2035
669+
force: 2045
675670
cost_factor: 0.15 # repurposing cost of OCGT gas to H2 in % investment cost in EUR/MW source: Christidis et al (2023) - H2-Ready-Gaskraftwerke, Table 3 https://reiner-lemoine-institut.de/wp-content/uploads/2023/11/RLI-Studie-H2-ready_DE.pdf
676671
efficiency_loss: 0.05
677672

config/config.default.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,7 @@ existing_capacities:
480480
grouping_years_heat: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2019] # heat grouping years >= baseyear will be ignored
481481
threshold_capacity: 10
482482
default_heating_lifetime: 20
483+
solar_rooftop_ratio: 0.5
483484
conventional_carriers:
484485
- lignite
485486
- coal

config/scenarios.manual.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ KN2045_Mix:
7474
# dient als Referenzszenario in der Familie der Ariadne-Szenarien
7575

7676

77+
KN2045_Mix_LowDecentralDiscount:
78+
costs:
79+
custom_cost_fn: data/pypsa-de/custom_costs_nep_2023_low_decentral_discount.csv
80+
81+
KN2045_Mix_HighDecentralDiscount:
82+
costs:
83+
custom_cost_fn: data/pypsa-de/custom_costs_nep_2023_high_decentral_discount.csv
84+
85+
KN2045_Mix_H2plantsEU:
86+
electricity:
87+
H2_plants:
88+
enable: EU
89+
7790
KN2045_Elek:
7891
# Fokus auf dem Hochlauf von Technologien zur direkten Elektrifizierung der Sektoren
7992
# Strom als präferierter Energieträger in der Endenergie, andere Energieträger ergänzend, wo nötig (Wasserstoff, synthetische Kraftstoffe)

0 commit comments

Comments
 (0)