Skip to content

Commit

Permalink
Integrated results generation into pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
willu47 committed Aug 30, 2019
1 parent c2159d6 commit 40ddf19
Showing 1 changed file with 49 additions and 17 deletions.
66 changes: 49 additions & 17 deletions snakefile
Original file line number Diff line number Diff line change
@@ -1,33 +1,51 @@
MODELRUNS = ["TEMBA_23_08_1.5C_2020RET", "TEMBA_27_08_1.5C_2020RET_EV"]
MODELRUNS = ["TEMBA_28_08_2oC_2020RET", "TEMBA_28_08_1.5C_2020RET",
"TEMBA_29_08_2oC_2020RET", "TEMBA_29_08_1.5C_2020RET"]

rule all:
input: ["results/{model_run}.pickle".format(model_run=model_run) for model_run in MODELRUNS]
# input: ["results/{model_run}.pickle".format(model_run=model_run) for model_run in MODELRUNS]
input: ["results/export_{model_run}".format(model_run=model_run) for model_run in MODELRUNS]

rule generate_model_file:
input: "input_data/{model_run}.xlsx"
output: "output_data/{model_run}.txt"
input:
"input_data/{model_run}.xlsx"
output:
"output_data/{model_run}.txt"
threads:
2
shell:
"python scripts/excel_to_osemosys.py {input} {output}"

rule modify_model_file:
input: "output_data/{model_run}.txt"
output: "output_data/{model_run}_modex.txt"
input:
"output_data/{model_run}.txt"
output:
"output_data/{model_run}_modex.txt"
threads:
2
shell:
"python scripts/CBC_results_AS_MODEX.py {input} && cat {input} > {output}"

rule generate_lp_file:
input: "output_data/{model_run}_modex.txt"
output: protected("output_data/{model_run}.lp.gz")
log: "output_data/glpsol_{model_run}.log"
threads: 1
input:
"output_data/{model_run}_modex.txt"
output:
protected("output_data/{model_run}.lp.gz")
log:
"output_data/glpsol_{model_run}.log"
threads:
1
shell:
"glpsol -m model/Temba_0406_modex.txt -d {input} --wlp {output} --check --log {log}"

rule solve_lp:
input: "output_data/{model_run}.lp.gz"
output: protected("output_data/{model_run}.sol")
log: "output_data/gurobi_{model_run}.log"
threads: 4
input:
"output_data/{model_run}.lp.gz"
output:
protected("output_data/{model_run}.sol")
log:
"output_data/gurobi_{model_run}.log"
threads:
2
shell:
"gurobi_cl NumericFocus=1 Method=2 Threads={threads} ResultFile={output} ResultFile=output_data/infeasible.ilp LogFile={log} {input}"

Expand All @@ -38,7 +56,21 @@ rule remove_zero_values:
"sed '/ * 0$/d' {input} > {output}"

rule generate_pickle:
input: results="results/{model_run}.sol", modelfile="output_data/{model_run}_modex.txt"
output: pickle="results/{model_run}.pickle", folder=directory("results/{model_run}")
input:
results="results/{model_run}.sol", modelfile="output_data/{model_run}_modex.txt"
output:
pickle="results/{model_run}.pickle", folder=directory("results/{model_run}")
shell:
"mkdir {output.folder} && python scripts/generate_pickle.py {input.modelfile} {input.results} gurobi {output.pickle} {output.folder}"
"mkdir {output.folder} && python scripts/generate_pickle.py {input.modelfile} {input.results} gurobi {output.pickle} {output.folder}"

rule generate_results:
input:
pickle="results/{model_run}.pickle"
params:
scenario="{model_run}"
output:
folder=directory("results/export_{model_run}")
conda:
"envs/results.yaml"
shell:
"python scripts/generate_results.py {input.pickle} {params.scenario} {output.folder}"

0 comments on commit 40ddf19

Please sign in to comment.