Overview¶
oemoflex is a flexible model structure for creating and analysing multi-regional sector-integrated energysystem models featuring many flexibility options.
In particular, oemoflex makes it easy to create datapackages that represent energy systems that can be optimized with oemof.solph. You want to focus on the main tasks of modeling: Find suitable data and make assumptions to build meaningful scenarios and interpret them. To support you with that, oemoflex helps you to:
Define schemas for tabular data packages that describe energy systems. The schemas for different types of components are defined in facade_attrs. The files component_attrs.yml and busses.yml define the available components and busses.
Setup datapackages. You can create data packages for an energy system by passing the lists of
regions, links, busses and components that you want to model to
EnergyDataPackage.setup_default
.
Custom-defined busses and components can be passed as dictionaries bus_attrs_update
and
component_attrs_update
.
Infer metadata. Metadata that describe the tables and their foreign key relations in form of a
datapackage.json
are a requirement for oemof.tabular to load the datapackage as an
oemof.solph.EnergySystem
. To infer metadata for an existing data package, use
EnergyDataPackage.infer_metadata
.
Foreign key relations are defined in
foreign_keys.yml.
When adding custom-defined components and busses, a dictionary with foreign_keys_update
can be passed.
Parametrize data packages. Parametrize the EnergyDataPackage with
EnergyDataPackage.parametrize
to
set the values of parameters for all components.
Postprocess results. Results of an oemof.solph optimisation can be postprocessed and saved as
a ResultsDataPackage
.
Plot results. Plot methods help to visualize and understand the results of a scenario. Read the
API documentation of oemoflex.tools.plots
for more details.