Skip to content

Commit 319732e

Browse files
committed
Squashed commit of:
adjust config to upstream changes adjust to upstream up pixi.lock hotfix pydantic config fix: don't mutate config adjust to removed meoh config impute Datein or drop chps with missing DateIn fix import fix typo skip writing constraints if there are no corresponding assets in that year fix: bypass cached http plugin for egon data retrieval update lock file fix: pin pypsa<1.1 adjust existing assets to upstream config fix: robustness against empty arrays of links overwrite values from add_existing_baseyear during offshore nep force add a delay for offshore projects in 2020-2025 to correspond better to real capacities overwrite existing offwind more aggresively
1 parent bdd99cb commit 319732e

16 files changed

Lines changed: 12274 additions & 6334 deletions

Snakefile

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -422,20 +422,19 @@ if (ARIADNE_DATABASE := dataset_version("ariadne_database"))["source"] in ["arch
422422

423423
if (ARIADNE_TEMPLATE := dataset_version("ariadne_template"))["source"] in [
424424
"primary",
425+
"archive",
425426
]:
426427

427428
rule retrieve_ariadne_template:
428429
input:
429-
storage(
430-
"https://github.com/iiasa/ariadne-intern-workflow/raw/main/attachments/2025-01-27_template_Ariadne.xlsx",
431-
),
430+
storage(ARIADNE_TEMPLATE["url"]),
432431
output:
433432
"data/template_ariadne_database.xlsx",
434433
run:
435434
move(input[0], output[0])
436435

437436

438-
if (OPEN_MASTR := dataset_version("open_mastr"))["source"] in ["primary"]:
437+
if (OPEN_MASTR := dataset_version("open_mastr"))["source"] in ["primary", "archive"]:
439438

440439
rule retrieve_open_mastr:
441440
input:
@@ -449,22 +448,35 @@ if (OPEN_MASTR := dataset_version("open_mastr"))["source"] in ["primary"]:
449448
unpack_archive(input[0], params[0])
450449

451450

452-
if (EGON := dataset_version("egon"))["source"] in ["primary"]:
451+
if (EGON := dataset_version("egon"))["source"] in ["build"]:
452+
453+
rule retrieve_egon_data:
454+
params:
455+
url=EGON["url"],
456+
folder=EGON["folder"],
457+
output:
458+
spatial=f"{EGON['folder']}/demandregio_spatial_2018.json",
459+
mapping=f"{EGON['folder']}/mapping_technologies.json",
460+
shell:
461+
"""
462+
mkdir -p {params.folder}
463+
curl -o {output.spatial} "{params.url}?id_spatial=5&year=2018"
464+
curl -o {output.mapping} "{params.url}_description?id_spatial=5"
465+
"""
466+
467+
468+
if (EGON := dataset_version("egon"))["source"] in ["archive"]:
453469

454470
rule retrieve_egon_data:
455471
input:
456-
spatial=storage(
457-
f"{EGON['url']}?id_spatial=5&year=2018",
458-
),
459-
mapping=storage(
460-
f"{EGON['url']}_description?id_spatial=5",
461-
),
472+
spatial=storage(f"{EGON['url']}/demandregio_spatial_2018.json"),
473+
mapping=storage(f"{EGON['url']}/mapping_technologies.json"),
462474
output:
463-
spatial="data/egon/demandregio_spatial_2018.json",
464-
mapping="data/egon/mapping_technologies.json",
475+
spatial=f"{EGON['folder']}/demandregio_spatial_2018.json",
476+
mapping=f"{EGON['folder']}/mapping_technologies.json",
465477
run:
466-
move(input.spatial, output.spatial)
467-
move(input.mapping, output.mapping)
478+
copy2(input["spatial"], output["spatial"])
479+
copy2(input["mapping"], output["mapping"])
468480

469481

470482
rule build_exogenous_mobility_data:
@@ -494,12 +506,12 @@ rule build_exogenous_mobility_data:
494506

495507
rule build_egon_data:
496508
input:
497-
demandregio_spatial="data/egon/demandregio_spatial_2018.json",
509+
demandregio_spatial=f"{EGON['folder']}/demandregio_spatial_2018.json",
498510
mapping_38_to_4=storage(
499511
"https://ffeopendatastorage.blob.core.windows.net/opendata/mapping_from_4_to_38.json",
500512
keep_local=True,
501513
),
502-
mapping_technologies="data/egon/mapping_technologies.json",
514+
mapping_technologies=f"{EGON['folder']}/mapping_technologies.json",
503515
nuts3=resources("nuts3_shapes.geojson"),
504516
output:
505517
heating_technologies_nuts3=resources("heating_technologies_nuts3.geojson"),
@@ -656,7 +668,6 @@ rule modify_prenetwork:
656668
),
657669
shipping_oil_efficiency=config_provider("sector", "shipping_oil_efficiency"),
658670
shipping_methanol_share=config_provider("sector", "shipping_methanol_share"),
659-
mwh_meoh_per_tco2=config_provider("sector", "MWh_MeOH_per_tCO2"),
660671
scale_capacity=config_provider("scale_capacity"),
661672
bev_charge_rate=config_provider("sector", "bev_charge_rate"),
662673
bev_energy=config_provider("sector", "bev_energy"),
@@ -927,7 +938,7 @@ rule plot_ariadne_variables:
927938

928939
rule ariadne_all:
929940
input:
930-
expand(RESULTS + "graphs/costs.svg", run=config_provider("run", "name")),
941+
expand(RESULTS + "graphs/costs.pdf", run=config_provider("run", "name")),
931942
# expand(
932943
# RESULTS + "ariadne/capacity_detailed.png",
933944
# run=config_provider("run", "name"),

config/config.de.yaml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ solving:
423423
runtime: 12h
424424
mem_mb: 70000 #30000 is OK for 22 nodes, 365H; 140000 for 22 nodes 3H; 400000 for 44 nodes 3H
425425
options:
426+
custom_extra_functionality: "../scripts/pypsa-de/additional_functionality.py"
426427
assign_all_duals: true
427428
load_shedding: false
428429
skip_iterations: true # settings for post-discretization: false
@@ -471,7 +472,7 @@ solving:
471472
offwind:
472473
DE:
473474
2020: 7.8
474-
2025: 12
475+
2025: 9.7 # https://www.offshore-stiftung.de/de/status-quo-offshore-windenergie.php
475476
2030: 22 # optimistic upper ceiling to "Mittelfristprognose zur deutschlandweiten Stromerzeugung"
476477
2035: 50 # Planned projects until 2035 (offshore_connection_points.csv) -1.3 GW for potential delays
477478
2040: 65 # Planned projects until 2040 -1.5 GW for potential retirments
@@ -658,11 +659,9 @@ plotting:
658659

659660
electricity:
660661
renewable_carriers: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, hydro] # removed offwind-float
661-
powerplants_filter: (DateOut >= 2024 or DateOut != DateOut) and not (Country == "DE" and Set == "CHP")
662+
powerplants_filter: (DateOut > 2025 or DateOut != DateOut) and not (Country == "DE" and Set == "CHP") and (DateIn < 2026 or DateIn != DateIn)
662663
custom_powerplants: true
663664
custom_file: resources/german_chp.csv
664-
estimate_renewable_capacities:
665-
year: 2024
666665
H2_plants:
667666
enable: EU # allowed values: false, DE, EU
668667
start: 2030 # should be < force
@@ -718,11 +717,11 @@ data:
718717
source: archive
719718
version: latest
720719
ariadne_template:
721-
source: primary
720+
source: archive
722721
version: latest
723722
open_mastr:
724-
source: primary
723+
source: archive
725724
version: latest
726725
egon:
727-
source: primary
726+
source: archive
728727
version: latest

config/test/config.dach.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ renewable:
4444
cutout: dach-03-2013-sarah3-era5
4545

4646
clustering:
47-
focus_weights: []
47+
focus_weights: false
4848
temporal:
4949
resolution_sector: 3H
5050

data/versions.csv

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
dataset,version,source,tags,added,note,url
2-
ariadne_database,v1.0,primary,latest supported,2026-01-15,Public facing database of the second Ariadne Szenarienbericht,https://ariadne2.apps.ece.iiasa.ac.at/explorer
3-
ariadne_database,v1.0,archive,latest supported,2026-01-15,,https://zenodo.org/records/15174592/files/250505_Ariadne2_Data_v1.0.xlsx
4-
ariadne_template,2025-11-20,primary,latest supported,2026-01-15,,https://github.com/iiasa/ariadne-intern-workflow/blob/main/attachments/2025-11-20_template_Ariadne.xlsx
5-
egon,2018-2020?,primary,latest supported,2026-01-15,root url is extended in the retrieve rule,https://api.opendata.ffe.de/demandregio/demandregio_spatial
6-
open_mastr,2023-08-08,primary,latest supported,2026-01-15,,https://zenodo.org/records/8225106/files/bnetza_open_mastr_2023-08-08_B.zip
72
aquifer_data,v1.2,primary,latest supported,2025-12-02,,https://download.bgr.de/bgr/grundwasser/IHME1500/v12/shp/IHME1500_v12.zip
83
aquifer_data,v1.2,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/aquifer_data/v1.2/IHME1500_v12.zip
4+
ariadne_database,v1.0,primary,latest supported,2026-01-15,Public facing database of the second Ariadne Szenarienbericht,https://zenodo.org/records/15174592/files/250505_Ariadne2_Data_v1.0.xlsx
5+
ariadne_database,v1.0,archive,latest supported,2026-02-23,Public facing database of the second Ariadne Szenarienbericht,https://data.pypsa.org/workflows/de/ariadne_database/v1.0/250505_Ariadne2_Data_v1.0.xlsx
6+
ariadne_template,2025-11-20,primary,latest supported,2026-01-15,,https://github.com/iiasa/ariadne-intern-workflow/raw/7caa948ad6aa71cf8d17e69a64dd29f01306a9ff/attachments/2025-11-20_template_Ariadne.xlsx
7+
ariadne_template,2025-11-20,archive,latest supported,2026-02-23,,https://data.pypsa.org/workflows/de/ariadne_template/2025-11-20/2025-11-20_template_Ariadne.xlsx
98
attributed_ports,2020-07-10,primary,latest supported,2025-12-02,,https://datacatalogfiles.worldbank.org/ddh-published/0038118/1/DR0046414/attributed_ports.geojson
109
attributed_ports,2020-07-10,archive,latest supported,2026-01-13,Moved from github repo `data/` folder,https://data.pypsa.org/workflows/eur/attributed_ports/2020-07-10/attributed_ports.json
1110
bfs_gdp_and_population,2019-03-28,primary,latest supported,2025-12-02,,https://dam-api.bfs.admin.ch/hub/api/dam/assets/7786557/master
@@ -45,6 +44,8 @@ dh_areas,341.5,primary,latest supported,2025-12-02,,https://fordatis.fraunhofer.
4544
dh_areas,341.5,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/dh_areas/341.5/dh_areas.gpkg
4645
eez,v12_20231025,primary,latest supported,2025-12-02,API request used,https://www.marineregions.org/download_file.php
4746
eez,v12_20231025,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/eez/v12_20231025/World_EEZ_v12_20231025_LR.zip
47+
egon,2019-10-02,archive,latest supported,2026-02-23,,https://data.pypsa.org/workflows/de/egon/2019-10-02
48+
egon,2019-10-02,build,latest supported,2026-01-15,root url is extended in the retrieve rule,https://api.opendata.ffe.de/demandregio/demandregio_spatial
4849
emobility,28-08-2016,primary,latest supported,2025-12-02,,https://zenodo.org/records/16899168/files/emobility.zip
4950
emobility,28-08-2016,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/emobility/28-08-2016/emobility.zip
5051
enspreso_biomass,unknown,primary,latest supported,2025-12-02,"2019 version was changed in 2023 with negligible differences, but since the version is not frozen we label it as 'unknown'.",https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/ENSPRESO/ENSPRESO_BIOMASS.xlsx
@@ -113,6 +114,8 @@ nuts3_population,13-03-2025,primary,latest supported,2025-12-02,,https://ec.euro
113114
nuts3_population,13-03-2025,archive,latest supported,2026-01-13,earlier part of zenodo bundle,https://data.pypsa.org/workflows/eur/nuts3_population/13-03-2025/nama_10r_3popgdp.tsv.gz
114115
ons_lad,may-2024,primary,latest supported,2026-02-02,API request used,https://services1.arcgis.com/ESMARspQHYMw9BZ9/arcgis/rest/services/Local_Authority_Districts_May_2024_Boundaries__UK_BSC/FeatureServer/0/query
115116
ons_lad,may-2024,archive,latest supported,2026-02-17,API request used,https://data.pypsa.org/workflows/eur/ons_lad/may-2024/ons_lad.geojson
117+
open_mastr,2023-08-08,primary,latest supported,2026-01-15,,https://zenodo.org/records/8225106/files/bnetza_open_mastr_2023-08-08_B.zip
118+
open_mastr,2023-08-08,archive,latest supported,2026-02-23,,https://data.pypsa.org/workflows/de/open_mastr/2023-08-08/bnetza_open_mastr_2023-08-08_B.zip
116119
opsd_electricity_demand,unknown,build,latest supported,2026-02-02,multiple versions concatenated,https://data.open-power-system-data.org/time_series/
117120
opsd_electricity_demand,2026-02-02,archive,latest supported,2026-02-03,,https://data.pypsa.org/workflows/eur/opsd_electricity_demand/2026-02-02/electricity_demand_opsd_raw.csv
118121
osm,unknown,build,latest supported,2025-12-02,Latest dataset built using OSM data. No single URL available to access the data. See the related scripts and documentation for details.,
@@ -164,4 +167,4 @@ wdpa_marine,2025-07,archive,latest supported,2025-12-02,"We are legally not allo
164167
worldbank_commodity_prices,jan-2026,primary,latest supported,2026-02-03,,https://thedocs.worldbank.org/en/doc/18675f1d1639c7a34d463f59263ba0a2-0050012025/related/CMO-Historical-Data-Monthly.xlsx
165168
worldbank_commodity_prices,jan-2026,archive,latest supported,2026-02-12,,https://data.pypsa.org/workflows/eur/worldbank_commodity_prices/jan-2026/CMO-Historical-Data-Monthly.xlsx
166169
worldbank_urban_population,unknown,primary,latest might-work,2025-12-02,"This is the original World Bank API link, which is sometimes updated; it is not guaranteed to work with the current codebase and data changes without notice.",https://api.worldbank.org/v2/en/indicator/SP.URB.TOTL.IN.ZS?downloadformat=csv
167-
worldbank_urban_population,2025-08-14,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/worldbank_urban_population/2025-08-14/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2_22447.zip
170+
worldbank_urban_population,2025-08-14,archive,latest supported,2026-01-13,,https://data.pypsa.org/workflows/eur/worldbank_urban_population/2025-08-14/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2_22447.zip

0 commit comments

Comments
 (0)