From 16a92477f0ffd6b31bba7d6bf1cd96e045ccfef3 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Sun, 13 Nov 2022 18:25:32 +0100 Subject: [PATCH 1/9] methanol in shipping --- config.default.yaml | 4 ++++ scripts/prepare_sector_network.py | 37 ++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/config.default.yaml b/config.default.yaml index 4cf7f5fa..1cd4c271 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -193,6 +193,10 @@ sector: agriculture_machinery_electric_share: 0 agriculture_machinery_fuel_efficiency: 0.7 # fuel oil per use agriculture_machinery_electric_efficiency: 0.3 # electricity per use + shipping_methanol: true + MWh_MeOH_per_MWh_H2: 0.8787 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv + MWh_MeOH_per_tCO2: 4.0321 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv + MWh_MeOH_per_MWh_e: 3.6907 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv shipping_average_efficiency: 0.4 #For conversion of fuel oil to propulsion in 2011 shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands shipping_hydrogen_share: # 1 means all hydrogen FC diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 244f615b..3a2a7de9 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -106,6 +106,16 @@ def define_spatial(nodes, options): spatial.ammonia.df = pd.DataFrame(vars(spatial.ammonia), index=nodes) + # hydrogen + spatial.h2 = SimpleNamespace() + spatial.h2.nodes = nodes + " H2" + spatial.h2.locations = nodes + + # methanol + spatial.methanol = SimpleNamespace() + spatial.methanol.nodes = ["EU methanol"] + spatial.methanol.locations = ["EU"] + # oil spatial.oil = SimpleNamespace() spatial.oil.nodes = ["EU oil"] @@ -2154,6 +2164,31 @@ def add_industry(n, costs): else: shipping_bus = nodes + " H2" + if options.get("shipping_methanol"): + + n.madd("Bus", + spatial.methanol.nodes, + carrier="methanol", + location=spatial.methanol.locations, + unit="MWh_LHV" + ) + + # methanolisation + n.madd( + spatial.h2.locations + "methanolisation", + bus0=spatial.h2.nodes, + bus1=spatial.methanol.nodes, + bus2=nodes, + bus3=spatial.co2.nodes, + carrier="methanolisation", + p_nom_extendable=True, + capital_cost=costs.at["methanolisation", 'fixed'] * 0.8787, # EUR/MW_H2/a + lifetime=costs.at["methanolisation", 'lifetime'], + efficiency=options["MWh_MeOH_per_MWh_H2"], + efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"], + efficiency3=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"], + ) + all_navigation = ["total international navigation", "total domestic navigation"] efficiency = options['shipping_average_efficiency'] / costs.at["fuel cell", "efficiency"] shipping_hydrogen_share = get(options['shipping_hydrogen_share'], investment_year) @@ -2245,7 +2280,7 @@ def add_industry(n, costs): bus2=spatial.co2.nodes, carrier="Fischer-Tropsch", efficiency=costs.at["Fischer-Tropsch", 'efficiency'], - capital_cost=costs.at["Fischer-Tropsch", 'fixed'], + capital_cost=costs.at["Fischer-Tropsch", 'fixed'] * costs.at["Fischer-Tropsch", 'efficiency'], # EUR/MW_H2/a efficiency2=-costs.at["oil", 'CO2 intensity'] * costs.at["Fischer-Tropsch", 'efficiency'], p_nom_extendable=True, lifetime=costs.at['Fischer-Tropsch', 'lifetime'] From c44f1d61c7c6d7e7bb4a75b177b3ad09c35399b1 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Sun, 27 Nov 2022 18:28:57 +0100 Subject: [PATCH 2/9] remove hard-coded methanol efficiency --- scripts/prepare_sector_network.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 3a2a7de9..7787d007 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2182,7 +2182,7 @@ def add_industry(n, costs): bus3=spatial.co2.nodes, carrier="methanolisation", p_nom_extendable=True, - capital_cost=costs.at["methanolisation", 'fixed'] * 0.8787, # EUR/MW_H2/a + capital_cost=costs.at["methanolisation", 'fixed'] * options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a lifetime=costs.at["methanolisation", 'lifetime'], efficiency=options["MWh_MeOH_per_MWh_H2"], efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"], From 7208d9603964ef83b5f661c8d4117a796392d863 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Thu, 1 Dec 2022 17:18:48 +0100 Subject: [PATCH 3/9] Update config.default.yaml Co-authored-by: euronion <42553970+euronion@users.noreply.github.com> --- config.default.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index 1cd4c271..e56a4dd6 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -194,9 +194,9 @@ sector: agriculture_machinery_fuel_efficiency: 0.7 # fuel oil per use agriculture_machinery_electric_efficiency: 0.3 # electricity per use shipping_methanol: true - MWh_MeOH_per_MWh_H2: 0.8787 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv - MWh_MeOH_per_tCO2: 4.0321 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv - MWh_MeOH_per_MWh_e: 3.6907 # https://github.com/euronion/trace/blob/main/data/efficiencies.csv + MWh_MeOH_per_MWh_H2: 0.8787 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. + MWh_MeOH_per_tCO2: 4.0321 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. + MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. shipping_average_efficiency: 0.4 #For conversion of fuel oil to propulsion in 2011 shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands shipping_hydrogen_share: # 1 means all hydrogen FC From 0c62bfc9ee1cb737f983fed54e842dd5fe7f4fd0 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Sat, 3 Dec 2022 12:22:05 +0100 Subject: [PATCH 4/9] complete methanol for shipping --- config.default.yaml | 15 +-- scripts/prepare_sector_network.py | 169 +++++++++++++++++------------- 2 files changed, 104 insertions(+), 80 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index e56a4dd6..ce078fb5 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -193,20 +193,15 @@ sector: agriculture_machinery_electric_share: 0 agriculture_machinery_fuel_efficiency: 0.7 # fuel oil per use agriculture_machinery_electric_efficiency: 0.3 # electricity per use - shipping_methanol: true MWh_MeOH_per_MWh_H2: 0.8787 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. MWh_MeOH_per_tCO2: 4.0321 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. - shipping_average_efficiency: 0.4 #For conversion of fuel oil to propulsion in 2011 shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands - 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 + shipping_hydrogen_share: 0 + shippint_methanol_share: 1 + shipping_oil_share: 0 + shipping_methanol_efficiency: 0.46 # 10-15% higher https://www.iea-amf.org/app/webroot/files/file/Annex%20Reports/AMF_Annex_56.pdf, https://users.ugent.be/~lsileghe/documents/extended_abstract.pdf + shipping_oil_efficiency: 0.40 #For conversion of fuel oil to propulsion in 2011 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 diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 7787d007..39904a20 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2139,32 +2139,56 @@ def add_industry(n, costs): p_set=industrial_demand.loc[nodes, "hydrogen"] / 8760 ) - if options["shipping_hydrogen_liquefaction"]: + shipping_hydrogen_share = get(options['shipping_hydrogen_share'], investment_year) + shipping_methanol_share = get(options['shipping_methanol_share'], investment_year) + shipping_oil_share = get(options['shipping_oil_share'], investment_year) - n.madd("Bus", + total_share = shipping_hydrogen_share + shipping_methanol_share + shipping_oil_share + if total_share != 1: + logger.warning(f"Total shipping shares sum up to {total_share*100}%, corresponding to increased or decreased demand assumptions.") + + all_navigation = ["total international navigation", "total domestic navigation"] + p_set = pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 / 8760 + + if shipping_hydrogen_share: + + if options["shipping_hydrogen_liquefaction"]: + + n.madd("Bus", + nodes, + suffix=" H2 liquid", + carrier="H2 liquid", + location=nodes, + unit="MWh_LHV" + ) + + n.madd("Link", + nodes + " H2 liquefaction", + bus0=nodes + " H2", + bus1=nodes + " H2 liquid", + carrier="H2 liquefaction", + efficiency=costs.at["H2 liquefaction", 'efficiency'], + capital_cost=costs.at["H2 liquefaction", 'fixed'], + p_nom_extendable=True, + lifetime=costs.at['H2 liquefaction', 'lifetime'] + ) + + shipping_bus = nodes + " H2 liquid" + else: + shipping_bus = nodes + " H2" + + efficiency = options['shipping_oil_efficiency'] / costs.at["fuel cell", "efficiency"] + p_set_hydrogen = shipping_hydrogen_share * p_set * efficiency + + n.madd("Load", nodes, - suffix=" H2 liquid", - carrier="H2 liquid", - location=nodes, - unit="MWh_LHV" + suffix=" H2 for shipping", + bus=shipping_bus, + carrier="H2 for shipping", + p_set=p_set_hydrogen ) - n.madd("Link", - nodes + " H2 liquefaction", - bus0=nodes + " H2", - bus1=nodes + " H2 liquid", - carrier="H2 liquefaction", - efficiency=costs.at["H2 liquefaction", 'efficiency'], - capital_cost=costs.at["H2 liquefaction", 'fixed'], - p_nom_extendable=True, - lifetime=costs.at['H2 liquefaction', 'lifetime'] - ) - - shipping_bus = nodes + " H2 liquid" - else: - shipping_bus = nodes + " H2" - - if options.get("shipping_methanol"): + if shipping_methanol_share: n.madd("Bus", spatial.methanol.nodes, @@ -2173,7 +2197,6 @@ def add_industry(n, costs): unit="MWh_LHV" ) - # methanolisation n.madd( spatial.h2.locations + "methanolisation", bus0=spatial.h2.nodes, @@ -2185,38 +2208,44 @@ def add_industry(n, costs): capital_cost=costs.at["methanolisation", 'fixed'] * options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a lifetime=costs.at["methanolisation", 'lifetime'], efficiency=options["MWh_MeOH_per_MWh_H2"], - efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"], - efficiency3=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"], + efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"], + efficiency3=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"], ) - all_navigation = ["total international navigation", "total domestic navigation"] - efficiency = options['shipping_average_efficiency'] / costs.at["fuel cell", "efficiency"] - shipping_hydrogen_share = get(options['shipping_hydrogen_share'], investment_year) - p_set = shipping_hydrogen_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 * efficiency / 8760 - - n.madd("Load", - nodes, - suffix=" H2 for shipping", - bus=shipping_bus, - carrier="H2 for shipping", - p_set=p_set - ) - - if shipping_hydrogen_share < 1: - - shipping_oil_share = 1 - shipping_hydrogen_share - - p_set = shipping_oil_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 / 8760. + efficiency = options["shipping_oil_efficiency"] / options["shipping_methanol_efficiency"] + p_set_methanol = shipping_methanol_share * p_set.sum() * efficiency n.madd("Load", - nodes, + spatial.methanol.nodes, + suffix=" shipping methanol", + bus=spatial.methanol.nodes, + carrier="shipping methanol", + p_set=p_set_methanol, + ) + + # CO2 intensity methanol based on stoichiometric calculation with 22.7 GJ/t methanol (32 g/mol), CO2 (44 g/mol), 277.78 MWh/TJ = 0.218 t/MWh + co2 = p_set_methanol / options["MWh_MeOH_per_tCO2"] + + n.add("Load" + "shipping methanol emissions", + bus="co2 atmosphere", + carrier="shipping methanol emissions", + p_set=-co2, + ) + + if shipping_oil_share: + + p_set_oil = shipping_oil_share * p_set.sum() + + n.madd("Load", + spatial.oil.nodes, suffix=" shipping oil", bus=spatial.oil.nodes, carrier="shipping oil", - p_set=p_set + p_set=p_set_oil ) - co2 = shipping_oil_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum().sum() * 1e6 / 8760 * costs.at["oil", "CO2 intensity"] + co2 = p_set_oil * costs.at["oil", "CO2 intensity"] n.add("Load", "shipping oil emissions", @@ -2225,34 +2254,34 @@ def add_industry(n, costs): p_set=-co2 ) - if "oil" not in n.buses.carrier.unique(): - n.madd("Bus", - spatial.oil.nodes, - location=spatial.oil.locations, - carrier="oil", - unit="MWh_LHV" - ) + if "oil" not in n.buses.carrier.unique(): + n.madd("Bus", + spatial.oil.nodes, + location=spatial.oil.locations, + carrier="oil", + unit="MWh_LHV" + ) - if "oil" not in n.stores.carrier.unique(): + if "oil" not in n.stores.carrier.unique(): - #could correct to e.g. 0.001 EUR/kWh * annuity and O&M - n.madd("Store", - [oil_bus + " Store" for oil_bus in spatial.oil.nodes], - bus=spatial.oil.nodes, - e_nom_extendable=True, - e_cyclic=True, - carrier="oil", - ) + #could correct to e.g. 0.001 EUR/kWh * annuity and O&M + n.madd("Store", + [oil_bus + " Store" for oil_bus in spatial.oil.nodes], + bus=spatial.oil.nodes, + e_nom_extendable=True, + e_cyclic=True, + carrier="oil", + ) - if "oil" not in n.generators.carrier.unique(): + if "oil" not in n.generators.carrier.unique(): - n.madd("Generator", - spatial.oil.nodes, - bus=spatial.oil.nodes, - p_nom_extendable=True, - carrier="oil", - marginal_cost=costs.at["oil", 'fuel'] - ) + n.madd("Generator", + spatial.oil.nodes, + bus=spatial.oil.nodes, + p_nom_extendable=True, + carrier="oil", + marginal_cost=costs.at["oil", 'fuel'] + ) if options["oil_boilers"]: From 3999afdb5a71d69f98563fbebf67d94625c07f93 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 28 Dec 2022 12:19:20 +0100 Subject: [PATCH 5/9] fixes to methanol implementation --- config.default.yaml | 2 +- scripts/prepare_sector_network.py | 52 +++++++++++++++---------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index ce078fb5..58be20ff 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -198,7 +198,7 @@ sector: MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands shipping_hydrogen_share: 0 - shippint_methanol_share: 1 + shipping_methanol_share: 1 shipping_oil_share: 0 shipping_methanol_efficiency: 0.46 # 10-15% higher https://www.iea-amf.org/app/webroot/files/file/Annex%20Reports/AMF_Annex_56.pdf, https://users.ugent.be/~lsileghe/documents/extended_abstract.pdf shipping_oil_efficiency: 0.40 #For conversion of fuel oil to propulsion in 2011 diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 40578a1b..f16c26db 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2202,7 +2202,7 @@ def add_industry(n, costs): unit="MWh_LHV" ) - n.madd( + n.madd("Link", spatial.h2.locations + "methanolisation", bus0=spatial.h2.nodes, bus1=spatial.methanol.nodes, @@ -2231,7 +2231,7 @@ def add_industry(n, costs): # CO2 intensity methanol based on stoichiometric calculation with 22.7 GJ/t methanol (32 g/mol), CO2 (44 g/mol), 277.78 MWh/TJ = 0.218 t/MWh co2 = p_set_methanol / options["MWh_MeOH_per_tCO2"] - n.add("Load" + n.add("Load", "shipping methanol emissions", bus="co2 atmosphere", carrier="shipping methanol emissions", @@ -2259,34 +2259,34 @@ def add_industry(n, costs): p_set=-co2 ) - if "oil" not in n.buses.carrier.unique(): - n.madd("Bus", - spatial.oil.nodes, - location=spatial.oil.locations, - carrier="oil", - unit="MWh_LHV" - ) + if "oil" not in n.buses.carrier.unique(): + n.madd("Bus", + spatial.oil.nodes, + location=spatial.oil.locations, + carrier="oil", + unit="MWh_LHV" + ) - if "oil" not in n.stores.carrier.unique(): + if "oil" not in n.stores.carrier.unique(): - #could correct to e.g. 0.001 EUR/kWh * annuity and O&M - n.madd("Store", - [oil_bus + " Store" for oil_bus in spatial.oil.nodes], - bus=spatial.oil.nodes, - e_nom_extendable=True, - e_cyclic=True, - carrier="oil", - ) + #could correct to e.g. 0.001 EUR/kWh * annuity and O&M + n.madd("Store", + [oil_bus + " Store" for oil_bus in spatial.oil.nodes], + bus=spatial.oil.nodes, + e_nom_extendable=True, + e_cyclic=True, + carrier="oil", + ) - if "oil" not in n.generators.carrier.unique(): + if "oil" not in n.generators.carrier.unique(): - n.madd("Generator", - spatial.oil.nodes, - bus=spatial.oil.nodes, - p_nom_extendable=True, - carrier="oil", - marginal_cost=costs.at["oil", 'fuel'] - ) + n.madd("Generator", + spatial.oil.nodes, + bus=spatial.oil.nodes, + p_nom_extendable=True, + carrier="oil", + marginal_cost=costs.at["oil", 'fuel'] + ) if options["oil_boilers"]: From 292ec9d5a1210da4652247a35d2b5c31d41ba1ff Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 28 Dec 2022 13:45:42 +0100 Subject: [PATCH 6/9] fix computation of shipping demands --- scripts/prepare_sector_network.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index d41bb184..b40c2084 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2148,8 +2148,8 @@ def add_industry(n, costs): if total_share != 1: logger.warning(f"Total shipping shares sum up to {total_share*100}%, corresponding to increased or decreased demand assumptions.") - domestic_navigation = pop_weighted_energy_totals.loc[nodes, "total domestic navigation"] - international_navigation = pd.read_csv(snakemake.input.shipping_demand, index_col=0) + domestic_navigation = pop_weighted_energy_totals.loc[nodes, "total domestic navigation"].squeeze() + international_navigation = pd.read_csv(snakemake.input.shipping_demand, index_col=0).squeeze() all_navigation = domestic_navigation + international_navigation p_set = all_navigation * 1e6 / 8760 @@ -2204,7 +2204,7 @@ def add_industry(n, costs): ) n.madd("Link", - spatial.h2.locations + "methanolisation", + spatial.h2.locations + " methanolisation", bus0=spatial.h2.nodes, bus1=spatial.methanol.nodes, bus2=nodes, From c4717854489e82e48e8d490a3de56b3210c13a90 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 28 Dec 2022 13:45:57 +0100 Subject: [PATCH 7/9] add colors for methanolisation --- config.default.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config.default.yaml b/config.default.yaml index 58be20ff..6875c4ef 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -604,6 +604,9 @@ plotting: liquid: '#25c49a' kerosene for aviation: '#a1ffe6' naphtha for industry: '#57ebc4' + methanolisation: '#83d6d5' + methanol: '#468c8b' + shipping methanol: '#468c8b' # co2 CC: '#f29dae' CCS: '#f29dae' @@ -620,6 +623,7 @@ plotting: process emissions to atmosphere: '#888888' oil emissions: '#aaaaaa' shipping oil emissions: "#555555" + shipping methanol emissions: '#666666' land transport oil emissions: '#777777' agriculture machinery oil emissions: '#333333' # other From b9c1fdb65ebd2cf454562db1e2b456992b4912a8 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 28 Dec 2022 13:46:31 +0100 Subject: [PATCH 8/9] include methanolisation in PtL --- scripts/plot_network.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/plot_network.py b/scripts/plot_network.py index 11cfc84e..caedb335 100644 --- a/scripts/plot_network.py +++ b/scripts/plot_network.py @@ -29,7 +29,7 @@ def rename_techs_tyndp(tech): return "gas-to-power/heat" elif "solar" in tech: return "solar" - elif tech == "Fischer-Tropsch": + elif tech in ["Fischer-Tropsch", "methanolisation"]: return "power-to-liquid" elif "offshore wind" in tech: return "offshore wind" From 8bab9300ec5197a0cfc36b24a005ce4d7538b24b Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 28 Dec 2022 13:50:55 +0100 Subject: [PATCH 9/9] add release note --- doc/release_notes.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/release_notes.rst b/doc/release_notes.rst index be66a9ba..918f885c 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -78,6 +78,8 @@ incorporates retrofitting options to hydrogen. carrier can be nodally resolved or copperplated across Europe. This feature is controlled by ``sector: ammonia:``. +* Add methanol as energy carrier, methanolisation as process, and option for methanol demand in shipping sector. + * Updated `data bundle `_ that includes the hydrogan salt cavern storage potentials. * Updated and extended documentation in @@ -89,6 +91,8 @@ incorporates retrofitting options to hydrogen. * The CO2 sequestration limit implemented as GlobalConstraint (introduced in the previous version) caused a failure to read in the shadow prices of other global constraints. +* Correct capital cost of Fischer-Tropsch according to new units in ``technology-data``. + PyPSA-Eur-Sec 0.6.0 (4 October 2021) ====================================