190516: Try removing H2 network too

This commit is contained in:
Tom Brown 2019-07-12 08:51:25 +02:00
parent ae3059f676
commit 6cc676d6cf
3 changed files with 32 additions and 6 deletions

View File

@ -2,7 +2,7 @@ logging_level: INFO
results_dir: 'results/' results_dir: 'results/'
summary_dir: results summary_dir: results
run: '190516-decentral' run: '190516-decentral-noH2network'
scenario: scenario:
sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ] sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ]
@ -10,7 +10,7 @@ scenario:
lv: [1.0]#, 1.125, 1.25, 1.5, 2.0]# or opt lv: [1.0]#, 1.125, 1.25, 1.5, 2.0]# or opt
clusters: [128] #[90, 128, 181] #[45, 64, 90, 128, 181, 256] #, 362] # (2**np.r_[5.5:9:.5]).astype(int) minimum is 37 clusters: [128] #[90, 128, 181] #[45, 64, 90, 128, 181, 256] #, 362] # (2**np.r_[5.5:9:.5]).astype(int) minimum is 37
opts: [''] #for pypsa-eur opts: [''] #for pypsa-eur
sector_opts: [Co2L0-3H-T-H-B-I-decentral-solar100,Co2L0p1-3H-T-H-B-I-decentral-solar100,Co2L0p2-3H-T-H-B-I-decentral-solar100,Co2L0p3-3H-T-H-B-I-decentral-solar100,Co2L0p4-3H-T-H-B-I-decentral-solar100]#,Co2L0p1-3H-T-H-B-I,Co2L0p25-3H-T-H-B-I,Co2L0p5-3H-T-H-B-I]#[Co2L0-3H-T-H-B-I-onwind0-solar3,Co2L0-3H-T-H-B-I-onwind0p125-solar3,Co2L0-3H-T-H-B-I-onwind0p25-solar3,Co2L0-3H-T-H-B-I-onwind0p50-solar3,Co2L0-3H-T-H-B-I-solar3]#,Co2L0-3H-T-H-B-I-onwind0p25-solar3]#,Co2L0p05-3H-T-H-B-I,Co2L0p10-3H-T-H-B-I,Co2L0p20-3H-T-H-B-I,Co2L0p30-3H-T-H-B-I,Co2L0p50-3H-T-H-B-I]#[Co2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0-3H-T-H,Co2L0p20-3H-T-H] #Co2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0p20-3H-T-HCo2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0p30-3H-T-H,Co2L0p50-3H-T-H] #Co2L-3H,Co2L-3H-T,, LC-FL, LC-T, Ep-T, Co2L-T] sector_opts: [Co2L0-3H-T-H-B-I-decentral-noH2network-solar100,Co2L0p1-3H-T-H-B-I-decentral-noH2network-solar100,Co2L0p2-3H-T-H-B-I-decentral-noH2network-solar100,Co2L0p3-3H-T-H-B-I-decentral-noH2network-solar100,Co2L0p4-3H-T-H-B-I-decentral-noH2network-solar100]#,Co2L0p1-3H-T-H-B-I,Co2L0p25-3H-T-H-B-I,Co2L0p5-3H-T-H-B-I]#[Co2L0-3H-T-H-B-I-onwind0-solar3,Co2L0-3H-T-H-B-I-onwind0p125-solar3,Co2L0-3H-T-H-B-I-onwind0p25-solar3,Co2L0-3H-T-H-B-I-onwind0p50-solar3,Co2L0-3H-T-H-B-I-solar3]#,Co2L0-3H-T-H-B-I-onwind0p25-solar3]#,Co2L0p05-3H-T-H-B-I,Co2L0p10-3H-T-H-B-I,Co2L0p20-3H-T-H-B-I,Co2L0p30-3H-T-H-B-I,Co2L0p50-3H-T-H-B-I]#[Co2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0-3H-T-H,Co2L0p20-3H-T-H] #Co2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0p20-3H-T-HCo2L-3H-T-H,Co2L0p10-3H-T-H,Co2L0p30-3H-T-H,Co2L0p50-3H-T-H] #Co2L-3H,Co2L-3H-T,, LC-FL, LC-T, Ep-T, Co2L-T]
# Co2L will give default (5%); Co2L0p25 will give 25% CO2 emissions; Co2Lm0p05 will give 5% negative emissions # Co2L will give default (5%); Co2L0p25 will give 25% CO2 emissions; Co2Lm0p05 will give 5% negative emissions

View File

@ -411,10 +411,10 @@ def calculate_weighted_prices(n,label,weighted_prices):
load += n.links_t.p0[names].groupby(n.links.loc[names,"bus0"],axis=1).sum(axis=1) load += n.links_t.p0[names].groupby(n.links.loc[names,"bus0"],axis=1).sum(axis=1)
#Add H2 Store when charging #Add H2 Store when charging
if carrier == "H2": #if carrier == "H2":
stores = n.stores_t.p[buses+ " Store"].groupby(n.stores.loc[buses+ " Store","bus"],axis=1).sum(axis=1) # stores = n.stores_t.p[buses+ " Store"].groupby(n.stores.loc[buses+ " Store","bus"],axis=1).sum(axis=1)
stores[stores > 0.] = 0. # stores[stores > 0.] = 0.
load += -stores # load += -stores
weighted_prices.loc[carrier,label] = (load*n.buses_t.marginal_price[buses]).sum().sum()/load.sum().sum() weighted_prices.loc[carrier,label] = (load*n.buses_t.marginal_price[buses]).sum().sum()/load.sum().sum()

View File

@ -1278,6 +1278,29 @@ def decentral(n):
n.lines.drop(n.lines.index,inplace=True) n.lines.drop(n.lines.index,inplace=True)
n.links.drop(n.links.index[n.links.carrier.isin(["DC","B2B"])],inplace=True) n.links.drop(n.links.index[n.links.carrier.isin(["DC","B2B"])],inplace=True)
def remove_h2_network(n):
nodes = pop_layout.index
n.links.drop(n.links.index[n.links.carrier.isin(["H2 pipeline"])],inplace=True)
n.stores.drop(["EU H2 Store"],inplace=True)
if options['hydrogen_underground_storage']:
h2_capital_cost = costs.at["hydrogen underground storage","fixed"]
else:
h2_capital_cost = costs.at["hydrogen storage","fixed"]
#put back nodal H2 storage
n.madd("Store",
nodes + " H2 Store",
bus=nodes + " H2",
e_nom_extendable=True,
e_cyclic=True,
carrier="H2 Store",
capital_cost=h2_capital_cost)
if __name__ == "__main__": if __name__ == "__main__":
# Detect running outside of snakemake and mock snakemake for testing # Detect running outside of snakemake and mock snakemake for testing
@ -1342,6 +1365,9 @@ if __name__ == "__main__":
if "decentral" in opts: if "decentral" in opts:
decentral(n) decentral(n)
if "noH2network" in opts:
remove_h2_network(n)
for o in opts: for o in opts:
m = re.match(r'^\d+h$', o, re.IGNORECASE) m = re.match(r'^\d+h$', o, re.IGNORECASE)
if m is not None: if m is not None: