From 8cbd3992ffafbc156c0758149d4d90fe392fb9cf Mon Sep 17 00:00:00 2001 From: Tom Brown Date: Thu, 30 Apr 2020 09:56:24 +0200 Subject: [PATCH] Move config.yaml to a static place; "Getting Started" in README.md config.default.yaml should be copied to config.yaml by new users. That way config.yaml doesn't change every time the developers use new settings. A basic "Getting Started" section is added to the README. Changes to be committed: modified: .gitignore modified: README.md renamed: config.yaml -> config.default.yaml --- .gitignore | 4 +++- README.md | 34 +++++++++++++++++++++++++++--- config.yaml => config.default.yaml | 21 ++++++++++-------- 3 files changed, 46 insertions(+), 13 deletions(-) rename config.yaml => config.default.yaml (87%) diff --git a/.gitignore b/.gitignore index cd0e492e..37620a14 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,6 @@ gurobi.log /tmp /pypsa -*.xlsx \ No newline at end of file +*.xlsx + +config.yaml \ No newline at end of file diff --git a/README.md b/README.md index 5941c9f2..8948cbee 100644 --- a/README.md +++ b/README.md @@ -101,9 +101,11 @@ projects % git clone git@github.com:nworbmot/pypsa-eur-sec.git ## Package requirements The requirements are the same as -[PyPSA-Eur](https://github.com/PyPSA/pypsa-eur), but for -`solve_network.py` in addition you need `gurobipy` and version 0.16.1 -or greater of PyPSA in order to use the `nomopyomo` framework. +[PyPSA-Eur](https://github.com/PyPSA/pypsa-eur). For +`solve_network.py` in addition you need `gurobipy`. If you have +xarray version >= 0.15.1, you will need the latest master branch of +atlite version 0.0.2. + ## Data requirements @@ -119,3 +121,29 @@ To download and extract it on the command line: projects/pypsa-eur-sec/data % wget "https://nworbmot.org/pypsa-eur-sec-data-bundle-190719.tar.gz" projects/pypsa-eur-sec/data % tar xvzf pypsa-eur-sec-data-bundle-190719.tar.gz ``` + + +# Getting started + +First make your own copy of the `config.yaml`: +```shell +projects/pypsa-eur-sec % cp config.default.yaml config.yaml +``` + +In `config.yaml` you can control the settings for the scenarios you +want to run, such as the number of nodes, the CO2 limit, the +installable potentials for solar and wind, which technologies are +activated, etc. + +To run the full optimization with your settings: +```shell +projects/pypsa-eur-sec % snakemake +``` + +Warning: you may need a cluster for this (with e.g. 10-100 GB of RAM +and several processors). + +To only prepare the networks, you can run the scripts up to the point before optimization: +```shell +projects/pypsa-eur-sec % snakemake prepare_sector_networks +``` diff --git a/config.yaml b/config.default.yaml similarity index 87% rename from config.yaml rename to config.default.yaml index 2185da4f..3af26442 100644 --- a/config.yaml +++ b/config.default.yaml @@ -2,17 +2,20 @@ logging_level: INFO results_dir: 'results/' summary_dir: results -run: '200429-distgrids-ev-hp-pv-batt-upgrade' +run: 'your-run-name' # use this to keep track of runs with different settings scenario: - sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ] - simpl: [''] - lv: [1.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-solar3-dist1]#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]#,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 - #dist{n} includes distribution grids with investment cost of n times cost in data/costs.csv + sectors: [E] # ignore this legacy setting + simpl: [''] # only relevant for PyPSA-Eur + lv: [1.0,1.5] # can be any float >= 1.0 or "opt" + clusters: [45,50] # any integer between 37 and several hundred + opts: [''] # only relevant for PyPSA-Eur + sector_opts: [Co2L0-3H-T-H-B-I-solar3-dist1] # this is where the main scenario settings are + # to really understand the options here, look in scripts/prepare_sector_network.py + # Co2Lx specifies the CO2 target in x% of the 1990 values; default will give default (5%); + # Co2L0p25 will give 25% CO2 emissions; Co2Lm0p05 will give 5% negative emissions + # solarx or onwindx changes the available installable potential by factor x + # dist{n} includes distribution grids with investment cost of n times cost in data/costs.csv snapshots: # arguments to pd.date_range