From e2354c18ac63d327d2171721ba07ee46c75a7c4c Mon Sep 17 00:00:00 2001 From: martavp Date: Wed, 16 Jun 2021 17:52:42 +0200 Subject: [PATCH] Add fictitious load to account for non-transformed shipping emissions The share of shipping demand that is transformed is defined now for different years to be used with the myopic code. The carbon emission from the remaining share is treated as a negative load on the atmospheric carbon dioxide bus, just like aviation and land transport emissions. --- config.default.yaml | 9 +++++++++ doc/release_notes.rst | 2 +- scripts/prepare_sector_network.py | 14 +++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index 617e716a..06f4af86 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -116,6 +116,14 @@ sector: 'transport_fuel_cell_efficiency': 0.5 'transport_internal_combustion_efficiency': 0.3 'shipping_average_efficiency' : 0.4 #For conversion of fuel oil to propulsion in 2011 + 'shipping_hydrogen_share': # 1 means all hydrogen FC + 2020: 0 + 2025: 0 + 2030: 0.05 + 2035: 0.15 + 2040: 0.3 + 2045: 0.6 + 2050: 1 'time_dep_hp_cop' : True #time dependent heat pump coefficient of performance 'heat_pump_sink_T' : 55. # Celsius, based on DTU / large area radiators; used in build_cop_profiles.py # conservatively high to cover hot water and space heating in poorly-insulated buildings @@ -381,6 +389,7 @@ plotting: "solid biomass" : "#DAA520" "today" : "#D2691E" "shipping" : "#6495ED" + "shipping oil emissions" : "#6495ED" "electricity distribution grid" : "#333333" nice_names: # OCGT: "Gas" diff --git a/doc/release_notes.rst b/doc/release_notes.rst index cca25c7f..e5bd8d10 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -6,7 +6,7 @@ Future release ============== * Include new features here. - +The share of shipping transformed into hydrogen fuel cell can be now defined for different years in the ``config.yaml`` file. The carbon emission from the remaining share is treated as a negative load on the atmospheric carbon dioxide bus, just like aviation and land transport emissions. PyPSA-Eur-Sec 0.5.0 (21st May 2021) =================================== diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 94fb5048..f3dec3e4 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1682,13 +1682,25 @@ def add_industry(network): p_set=industrial_demand.loc[nodes,"hydrogen"]/8760.) + shipping_hydrogen_share = get_parameter(options['shipping_hydrogen_share']) network.madd("Load", nodes, suffix=" H2 for shipping", bus=nodes + " H2", carrier="H2 for shipping", - p_set = nodal_energy_totals.loc[nodes,["total international navigation","total domestic navigation"]].sum(axis=1)*1e6*options['shipping_average_efficiency']/costs.at["fuel cell","efficiency"]/8760.) + p_set = shipping_hydrogen_share*nodal_energy_totals.loc[nodes,["total international navigation","total domestic navigation"]].sum(axis=1)*1e6*options['shipping_average_efficiency']/costs.at["fuel cell","efficiency"]/8760.) + if shipping_hydrogen_share < 1: + shipping_oil_share= 1 - shipping_hydrogen_share + co2 = shipping_oil_share*nodal_energy_totals.loc[nodes,["total international navigation","total domestic navigation"]].sum().sum()*1e6/8760.*costs.at["oil",'CO2 intensity'] + + network.madd("Load", + ["shipping oil emissions"], + bus="co2 atmosphere", + carrier="shipping oil emissions", + p_set=-co2) + + if "EU oil" not in network.buses.index: network.madd("Bus", ["EU oil"],