How to customize oemof-B3

To use oemof-B3, you may want to modify some files, depending on what you want to model.

While you define scenarios in the directory scenarios, you can specify the structure of your model in the directory model. In the directory config you can furthermore choose or modify labels, hard coded constant parameters or colors within plots.

Scenarios

For each scenario you define, you create a YAML-file within scenarios. You have to provide a name and a label of your scenario. Inside the fields at datetimeindex you specify which time period is examined in your scenario. With start you define the start date and time. It must be given in the ISO 8601 format. With freq you set the frequency in e.g. “H” (hours) and with periods the number of time steps.

In model_structure you pass the structure of your energy system (see section Model). With paths_scalars and paths_timeseries you provide all paths to your scalar and time series data. A filter selection is specified for scalar data in filter_scalars and for time series in filter_timeseries. Time series additionally can be filtered by a start time index. For both, keys of scenarios are passed with scenario_key. These are used to filter the raw data according to the corresponding keys. This way you can assign different values to attributes or assign a different time series depending on the scenario. If you want to calculate only one scenario, you can use a single scenario_key.

Model

The model directory is structured as follow:

model
├── model_structure
│     ├── model_structure_el_only.yml
│     ├── model_structure_full.yml
├── bus_attrs_update.yml
├── component_attrs_update.yml
├── foreign_keys_update.yml
├── __init__.py

Within directory model_structure you’ll find the structure of the whole energy system used in oemof-B3 and the one with electricity sector only. You can also set up your own energy system in a new YAML file.

In the parent directory model buses are stored in bus_attrs_update.yml which differ from the default in oemoflex (compare busses.yml in oemoflex). The same applies to the files component_attr_update.yml and foreign_keys.yml. These are extended for the energy system in oemof-B3 (or depending on the composition of your energy system) with information deviating from the default in oemoflex (cf. component_attrs and foreign_keys.yml)

Configuration

The config directory is structured as follow:

config
├── labels
│     ├── de.yml
│     ├── en.yml
├── __init__.py
├── colors.csv
├── colors.yml
├── config.py
├── settings.yml

Within directory labels there are YAML-files which contain labels. They are used in some of the visualization scripts (cf. Visualization). The labels are assigned to the keys of the components stored in component_attrs_update.yml. In the parent directory config colors are stored in the files colors.yml and colors.csv. While colors.yml uses keys from component_attrs_update.yml, colors.csv expects the labels of these keys. In settings.yml, besides assumptions and values taken as constant, paths and settings in oemof-B3 are stored.