This repository contains the data and code to reproduce the engineering-economic optimization (EEO) modeling results from the study "Simulating institutional heterogeneity in sustainability science". Optimization code is written using JuMP for Julia and data processing and figures are generated using Python.
It contains two data folders to run EEO model.
powergenomeis the main input data which provides major data resources such as load and generators in western USA.extracontains additional data. It also includesdata_settings.yml, which is a setting file to run PowerGenome package in order to get input data provided inpowergenome.PostProcessing.jlis the Julia code which we use to edit/adjust the raw data provided byPowerGenomerun.
It contains figs.ipynb notebook to generate Figure 3 in the main text and Figure S.2.1 in the supplementary file. It reads data from powergenome and extra folders, as well as model results from different folders. Running this notebook does not require any virtual environment. base environment can be used to successfully generate the figures. Users should install odfpy package to read results of ABM model.
It includes Julia code to run EEO model and replicate the corresponding results in the paper. batch contains two .sh files, which are bash files to submit jobs in TORQUE clusters. Inside batch, m2050_tbaseline_pregionalces_rbaseline_linear.sh is used to replicate results with heterogeneity. m2050_tbaseline_pregionalces_rregionalized_linear.sh is used to replicate reference results (e.g., without institution or barriers).
eeo folder contains EEO modeling results with and without heterogeneity (e.g., reference). abm and iam contain their modeling results in appropriate formats, solely to generate figures in the paper.
There exist two ways of reproducing the results. One is to run the model in a TORQUE environment, and the other is to run on a local machine.
- Make sure that Julia and Gurobi are installed.
- Put folders
dataandmodelin the same directory.
To replicate heterogeneity results,
- Uncomment
Line 116inExpansionModel.jl - Submit
m2050_tbaseline_pregionalces_rbaseline_linear.shinmodel/batch.
To replicate reference results,
- Comment
Line 116inExpansionModel.jl - Submit
m2050_tbaseline_pregionalces_rregionalized_linear.shinmodel/batch.
- Make sure that Julia and Gurobi are installed.
- Put folders
dataandmodelin the same directory.
To replicate heterogeneity results,
- Uncomment
Line 116inExpansionModel.jl - Change
runnamevariable inLine 4ofRun.jltom2050_tbaseline_pregionalces_rbaseline_linear - Create an empty folder in
model/batchwith nameResults_m2050_tbaseline_pregionalces_rbaseline_linear - Create an empty folder in
model/batch/Results_m2050_tbaseline_pregionalces_rbaseline_linearwith nameDispatch. - Run
Run.jlfile.
To replicate reference results,
- Comment
Line 116inExpansionModel.jl - Change
runnamevariable inLine 4ofRun.jltom2050_tbaseline_pregionalces_rregionalized_linear - Create an empty folder in
model/batchwith nameResults_m2050_tbaseline_pregionalces_rregionalized_linear - Create an empty folder in
model/batch/Results_m2050_tbaseline_pregionalces_rregionalized_linearwith nameDispatch. - Run
Run.jlfile.