Merge pull request #1011 from PyPSA/add_prefix_scenario_management

Add prefix scenario management
This commit is contained in:
Fabian Neumann 2024-04-10 16:57:08 +02:00 committed by GitHub
commit 3d5f440d99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 10 additions and 0 deletions

View File

@ -20,6 +20,7 @@ remote:
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#run
run:
prefix: ""
name: ""
scenarios:
enable: false

View File

@ -1,5 +1,6 @@
,Unit,Values,Description
name,--,str/list,"Specify a name for your run. Results will be stored under this name. If ``scenario: enable:`` is set to ``true``, the name must contain a subset of scenario names defined in ``scenario: file:``. If the name is 'all', all defined scenarios will be run."
prefix,--,str,"Prefix for the run name which is used as a top-layer directory name in the results and resources folders."
scenarios,,,
-- enable,bool,"{true, false}","Switch to select whether workflow should generate scenarios based on ``file``."
-- file,str,,"Path to the scenario yaml file. The scenario file contains config overrides for each scenario. In order to be taken account, ``run: scenarios`` has to be set to ``true`` and ``run: name`` has to be a subset of top level keys given in the scenario file. In order to automatically create a `scenario.yaml` file based on a combination of settings, alter and use the ``config/create_scenarios.py`` script in the ``config`` directory."

1 Unit Values Description
2 name -- str/list Specify a name for your run. Results will be stored under this name. If ``scenario: enable:`` is set to ``true``, the name must contain a subset of scenario names defined in ``scenario: file:``. If the name is 'all', all defined scenarios will be run.
3 prefix -- str Prefix for the run name which is used as a top-layer directory name in the results and resources folders.
4 scenarios
5 -- enable bool {true, false} Switch to select whether workflow should generate scenarios based on ``file``.
6 -- file str Path to the scenario yaml file. The scenario file contains config overrides for each scenario. In order to be taken account, ``run: scenarios`` has to be set to ``true`` and ``run: name`` has to be a subset of top level keys given in the scenario file. In order to automatically create a `scenario.yaml` file based on a combination of settings, alter and use the ``config/create_scenarios.py`` script in the ``config`` directory.

View File

@ -152,6 +152,9 @@ Upcoming Release
- Collection rules get a new wildcard ``run=config["run"]["name"]`` so they
can collect outputs across different scenarios.
- It is further possible to encapsulate your scenarios in a directory using
the setting ``run: prefix:``.
- **Warning:** One caveat remains for the scenario management with myopic or
perfect foresight pathway optimisation. The first investment period must be
shared across all scenarios. The reason is that the ``wildcard_constraints``

View File

@ -59,6 +59,11 @@ def get_rdir(run):
RDIR = run["name"] + "/"
else:
RDIR = ""
prefix = run.get("prefix", "")
if prefix:
RDIR = f"{prefix}/{RDIR}"
return RDIR