Merge pull request #69 from PyPSA/salt_cavern_potential
Salt cavern potential
This commit is contained in:
commit
6b964865e7
@ -229,6 +229,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"),
|
||||
|
31
data/hydrogen_salt_cavern_potentials.csv
Normal file
31
data/hydrogen_salt_cavern_potentials.csv
Normal file
@ -0,0 +1,31 @@
|
||||
,,TWh
|
||||
AT,False,
|
||||
BA,False,
|
||||
BE,False,
|
||||
BG,False,
|
||||
CH,False,
|
||||
CZ,False,
|
||||
DE,True,4500
|
||||
DK,True,700
|
||||
EE,False,
|
||||
ES,True,350
|
||||
FI,False,
|
||||
FR,False,
|
||||
GB,True,1050
|
||||
GR,True,120
|
||||
HR,False,
|
||||
HU,False,
|
||||
IE,False,
|
||||
IT,False,
|
||||
LT,False,
|
||||
LU,False,
|
||||
LV,False,
|
||||
NL,True,150
|
||||
NO,False,
|
||||
PL,True,120
|
||||
PT,True,400
|
||||
RO,False,
|
||||
RS,False,
|
||||
SE,False,
|
||||
SI,False,
|
||||
SK,False,
|
|
@ -795,21 +795,42 @@ 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"]
|
||||
|
||||
# assumptions: weight storage potential in a country by population
|
||||
h2_pot = (h2_cavern_ct.loc[cavern_nodes.ct, "TWh"].astype(float)
|
||||
.reset_index().set_index(cavern_nodes.index))
|
||||
h2_pot = h2_pot.TWh * cavern_nodes.fraction
|
||||
|
||||
network.madd("Store",
|
||||
cavern_nodes.index + " H2 Store",
|
||||
bus=cavern_nodes.index + " H2",
|
||||
e_nom_extendable=True,
|
||||
e_nom_max=h2_pot.values,
|
||||
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 "
|
||||
|
Loading…
Reference in New Issue
Block a user