diff --git a/.gitignore b/.gitignore index 00230bf4..cd0e492e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,6 @@ gurobi.log *.pyc /cutouts /tmp -/pypsa \ No newline at end of file +/pypsa + +*.xlsx \ No newline at end of file diff --git a/Snakefile b/Snakefile index 995a71ee..f400b794 100644 --- a/Snakefile +++ b/Snakefile @@ -219,7 +219,7 @@ rule solve_network: memory="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_memory.log" benchmark: "benchmarks/solve_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}" threads: 4 - resources: mem=50000 #memory in MB; 40 GB enough for 45+B+I; 100 GB based on RESI usage for 128 + resources: mem=20000 #memory in MB; 40 GB enough for 45+B+I; 100 GB based on RESI usage for 128 # group: "solve" # with group, threads is ignored https://bitbucket.org/snakemake/snakemake/issues/971/group-job-description-does-not-contain script: "scripts/solve_network.py" diff --git a/config.yaml b/config.yaml index cf8773a0..9666c0b7 100644 --- a/config.yaml +++ b/config.yaml @@ -2,7 +2,7 @@ logging_level: INFO results_dir: 'results/' summary_dir: results -run: '191219-process' +run: '200110-wave' scenario: sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ] @@ -188,6 +188,7 @@ plotting: 'offshore wind (AC)' : "c" 'offwind-dc' : "#009999" 'offshore wind (DC)' : "#009999" + 'wave' : "#004444" "hydro" : "#3B5323" "hydro reservoir" : "#3B5323" "ror" : "#78AB46" diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index fb2a2cce..8881dafa 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -492,6 +492,37 @@ def add_generation(network): efficiency=costs.at[generator,'efficiency'], efficiency2=costs.at[carrier,'CO2 intensity']) +def add_wave(network): + wave_fn = "data/WindWaveWEC_GLTB.xlsx" + + locations = ["FirthForth","Hebrides"] + + #in kW + capacity = pd.Series([750,1000,600],["Attenuator","F2HB","MultiPA"]) + + #in EUR/MW + costs = pd.Series([2.5,2,1.5],["Attenuator","F2HB","MultiPA"])*1e6 + + sheets = {} + + for l in locations: + sheets[l] = pd.read_excel(wave_fn, + index_col=0,skiprows=[0],parse_dates=True, + sheet_name=l) + + to_drop = ["Vestas 3MW","Vestas 8MW"] + wave = pd.concat([sheets[l].drop(to_drop,axis=1).divide(capacity,axis=1) for l in locations], + keys=locations, + axis=1) + + for wave_type in costs.index: + n.add("Generator", + "Hebrides "+wave_type, + bus="GB4 0", + p_nom_extendable=True, + carrier="wave", + capital_cost=(annuity(25,0.07)+0.03)*costs[wave_type], + p_max_pu=wave["Hebrides",wave_type]) def add_storage(network): print("adding electricity storage") @@ -1414,6 +1445,8 @@ if __name__ == "__main__": add_generation(n) + add_wave(n) + add_storage(n) for o in opts: