From c71fa78bfa4fe7471817416387837cf66623209c Mon Sep 17 00:00:00 2001 From: millingermarkus Date: Thu, 4 Jul 2024 10:18:19 +0200 Subject: [PATCH 1/2] Added biomass imports to prepare sector network --- config/config.default.yaml | 6 ++++ scripts/prepare_sector_network.py | 46 +++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/config/config.default.yaml b/config/config.default.yaml index ee61d366a..a618ed95b 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -628,6 +628,11 @@ sector: max_boost: 0.25 var_cf: true sustainability_factor: 0.0025 + solid_biomass_import: + enable: false + price: 54 #EUR/MWh + max_amount: 5 #EJ + upstream_emissions_factor: .1 #share of solid biomass CO2 emissions at full combustion # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#industry industry: @@ -1017,6 +1022,7 @@ plotting: biogas: '#e3d37d' biomass: '#baa741' solid biomass: '#baa741' + solid biomass import: '#d5ca8d' solid biomass transport: '#baa741' solid biomass for industry: '#7a6d26' solid biomass for industry CC: '#47411c' diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index dfa06cac5..8332858a7 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2285,6 +2285,52 @@ def add_biomass(n, costs): e_initial=solid_biomass_potentials_spatial, ) + if options["solid_biomass_import"].get("enable", False): + biomass_import_price = options["solid_biomass_import"]["price"] + biomass_import_max_amount = round(options["solid_biomass_import"]["max_amount"] + * 1e9 / 3.6,0) #EJ --> MWh + biomass_import_upstream_emissions = round(options["solid_biomass_import"]["upstream_emissions_factor"] + * costs.at['solid biomass', 'CO2 intensity'],4) + + print("Adding biomass import with cost", biomass_import_price, + "EUR/MWh, a limit of", options["solid_biomass_import"]["max_amount"], + "EJ, and embedded emissions of", + options["solid_biomass_import"]["upstream_emissions_factor"] * 100, '%') + + n.add("Carrier", "solid biomass import") + + n.madd( + "Bus", + ["EU solid biomass import"], + location="EU", + carrier="solid biomass import" + ) + + n.madd( + "Store", + ["solid biomass import"], + bus=["EU solid biomass import"], + carrier="solid biomass import", + e_nom=biomass_import_max_amount, + marginal_cost=biomass_import_price, + e_initial=biomass_import_max_amount + ) + + n.madd( + "Link", + spatial.biomass.nodes, + suffix=" solid biomass import", + bus0=["EU solid biomass import"], + bus1=spatial.biomass.nodes, + bus2="co2 atmosphere", + carrier="solid biomass import", + efficiency=1., + efficiency2=biomass_import_upstream_emissions, + p_nom_extendable=True + ) + + + n.madd( "Link", spatial.gas.biogas_to_gas, From ee6d8b1e42788ad9bad8ef8f89c1303e9ceaf851 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 4 Jul 2024 08:22:21 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/prepare_sector_network.py | 35 ++++++++++++++++++------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 8332858a7..d7ca791c8 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2287,15 +2287,24 @@ def add_biomass(n, costs): if options["solid_biomass_import"].get("enable", False): biomass_import_price = options["solid_biomass_import"]["price"] - biomass_import_max_amount = round(options["solid_biomass_import"]["max_amount"] - * 1e9 / 3.6,0) #EJ --> MWh - biomass_import_upstream_emissions = round(options["solid_biomass_import"]["upstream_emissions_factor"] - * costs.at['solid biomass', 'CO2 intensity'],4) + biomass_import_max_amount = round( + options["solid_biomass_import"]["max_amount"] * 1e9 / 3.6, 0 + ) # EJ --> MWh + biomass_import_upstream_emissions = round( + options["solid_biomass_import"]["upstream_emissions_factor"] + * costs.at["solid biomass", "CO2 intensity"], + 4, + ) - print("Adding biomass import with cost", biomass_import_price, - "EUR/MWh, a limit of", options["solid_biomass_import"]["max_amount"], - "EJ, and embedded emissions of", - options["solid_biomass_import"]["upstream_emissions_factor"] * 100, '%') + print( + "Adding biomass import with cost", + biomass_import_price, + "EUR/MWh, a limit of", + options["solid_biomass_import"]["max_amount"], + "EJ, and embedded emissions of", + options["solid_biomass_import"]["upstream_emissions_factor"] * 100, + "%", + ) n.add("Carrier", "solid biomass import") @@ -2303,7 +2312,7 @@ def add_biomass(n, costs): "Bus", ["EU solid biomass import"], location="EU", - carrier="solid biomass import" + carrier="solid biomass import", ) n.madd( @@ -2313,7 +2322,7 @@ def add_biomass(n, costs): carrier="solid biomass import", e_nom=biomass_import_max_amount, marginal_cost=biomass_import_price, - e_initial=biomass_import_max_amount + e_initial=biomass_import_max_amount, ) n.madd( @@ -2324,13 +2333,11 @@ def add_biomass(n, costs): bus1=spatial.biomass.nodes, bus2="co2 atmosphere", carrier="solid biomass import", - efficiency=1., + efficiency=1.0, efficiency2=biomass_import_upstream_emissions, - p_nom_extendable=True + p_nom_extendable=True, ) - - n.madd( "Link", spatial.gas.biogas_to_gas,