split hydrogen storage into underground storage in salt cavern for countries with potential, others overground hydrogen storage, switch costs from gas storage to corresponding hydrogen storage

This commit is contained in:
lisazeyen 2020-09-22 09:52:53 +02:00
parent 515416fd75
commit 27e2584ae8
2 changed files with 25 additions and 9 deletions

View File

@ -186,6 +186,7 @@ rule prepare_sector_network:
timezone_mappings='data/timezone_mappings.csv',
heat_profile="data/heat_load_profile_BDEW.csv",
costs=config['costs_dir'] + "costs_{planning_horizons}.csv",
h2_cavern = "data/hydrogen_salt_cavern_potentials.csv",
co2_budget="data/co2_budget.csv",
profile_offwind_ac=pypsaeur("resources/profile_offwind-ac.nc"),
profile_offwind_dc=pypsaeur("resources/profile_offwind-dc.nc"),

View File

@ -761,21 +761,36 @@ def add_storage(network):
capital_cost=costs.at["fuel cell","fixed"]*costs.at["fuel cell","efficiency"], #NB: fixed cost is per MWel
lifetime=costs.at['fuel cell','lifetime'])
cavern_nodes = pd.DataFrame()
if options['hydrogen_underground_storage']:
h2_capital_cost = costs.at["gas storage","fixed"]
#TODO: change gas storage to hydrogen underground storage when cost database is updated
#h2_capital_cost = costs.at["hydrogen underground storage","fixed"]
else:
h2_capital_cost = costs.at["hydrogen storage","fixed"]
h2_salt_cavern_potential = pd.read_csv(snakemake.input.h2_cavern,
index_col=0, skiprows=[0],
names=["potential", "TWh"])
h2_cavern_ct = h2_salt_cavern_potential[h2_salt_cavern_potential.potential]
cavern_nodes = pop_layout[pop_layout.ct.isin(h2_cavern_ct.index)]
h2_capital_cost = costs.at["hydrogen storage underground", "fixed"]
network.madd("Store",
cavern_nodes.index + " H2 Store",
bus=cavern_nodes.index + " H2",
e_nom_extendable=True,
e_cyclic=True,
carrier="H2 Store",
capital_cost=h2_capital_cost)
# hydrogen stored overground
h2_capital_cost = costs.at["hydrogen storage tank", "fixed"]
nodes_overground = nodes ^ cavern_nodes.index
network.madd("Store",
nodes + " H2 Store",
bus=nodes + " H2",
nodes_overground + " H2 Store",
bus=nodes_overground + " H2",
e_nom_extendable=True,
e_cyclic=True,
carrier="H2 Store",
capital_cost=h2_capital_cost,
lifetime=costs.at['gas storage','lifetime'])
capital_cost=h2_capital_cost)
h2_links = pd.DataFrame(columns=["bus0","bus1","length"])
prefix = "H2 pipeline "