Add wave with default minimum costs

This commit is contained in:
Tom Brown 2020-01-11 09:11:09 +01:00
parent 9ed2cbffa8
commit 2278d67687
4 changed files with 39 additions and 3 deletions

4
.gitignore vendored
View File

@ -36,4 +36,6 @@ gurobi.log
*.pyc
/cutouts
/tmp
/pypsa
/pypsa
*.xlsx

View File

@ -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"

View File

@ -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"

View File

@ -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: