From 17e8d114b12621e93c12697f08eacb5b6db16ea9 Mon Sep 17 00:00:00 2001 From: Tom Brown Date: Tue, 14 Jan 2020 21:36:35 +0100 Subject: [PATCH] Allow wave costs to be modified --- config.yaml | 4 ++-- scripts/prepare_sector_network.py | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/config.yaml b/config.yaml index 9666c0b7..6be56d27 100644 --- a/config.yaml +++ b/config.yaml @@ -2,7 +2,7 @@ logging_level: INFO results_dir: 'results/' summary_dir: results -run: '200110-wave' +run: '200111-wave' scenario: 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 clusters: [50] #[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 - sector_opts: [Co2L0-3H-T-H-B-I]#,Co2L0p2-3H-T-H-B-I,Co2L0p5-3H-T-H-B-I]#,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-wave0p25,Co2L0-3H-T-H-B-I-wave0p5,Co2L0-3H-T-H-B-I-wave0p6,Co2L0-3H-T-H-B-I-wave0p75]#,Co2L0p2-3H-T-H-B-I,Co2L0p5-3H-T-H-B-I]#,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 diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 8881dafa..4315b380 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -492,7 +492,7 @@ def add_generation(network): efficiency=costs.at[generator,'efficiency'], efficiency2=costs.at[carrier,'CO2 intensity']) -def add_wave(network): +def add_wave(network, wave_cost_factor): wave_fn = "data/WindWaveWEC_GLTB.xlsx" locations = ["FirthForth","Hebrides"] @@ -501,7 +501,7 @@ def add_wave(network): capacity = pd.Series([750,1000,600],["Attenuator","F2HB","MultiPA"]) #in EUR/MW - costs = pd.Series([2.5,2,1.5],["Attenuator","F2HB","MultiPA"])*1e6 + costs = wave_cost_factor*pd.Series([2.5,2,1.5],["Attenuator","F2HB","MultiPA"])*1e6 sheets = {} @@ -1445,8 +1445,6 @@ if __name__ == "__main__": add_generation(n) - add_wave(n) - add_storage(n) for o in opts: @@ -1455,6 +1453,10 @@ if __name__ == "__main__": limit = float(limit.replace("p",".").replace("m","-")) print(o,limit) options['space_heating_fraction'] = limit + if o[:4] == "wave": + wave_cost_factor = float(o[4:].replace("p",".").replace("m","-")) + print("Including wave generators with cost factor of", wave_cost_factor) + add_wave(n, wave_cost_factor) nodal_energy_totals, heat_demand, ashp_cop, gshp_cop, solar_thermal, transport, avail_profile, dsm_profile, co2_totals, nodal_transport_data = prepare_data(n)