oemof – a framework

The framework oemof contains various packages for different tasks. Some are stand-alone libraries, others depend on the oemof core API.

oemof.solph – linear optimisation library for energy systems

The energy system modelling library solph is part of the oemof installation. This library is used to simulate or optimize multi-regional energy systems considering power, heat and mobility. Furthermore, it is possible to switch between a dispatch and an investment models.
Solph uses the python package pyomo to create linear problems which can be solved by known solvers such as coin-or, glpk, gurobi, cplex or others.

Using the flexible structure of solph to create a simple energy system.

oemof.outputlib and oemof-visio – collecting and plotting results


The oemof.outputlib library is part of the oemof installation. The outputlib collects the results of an optimisation as a dictionary containing scalar values and pandas DataFrames. This makes it easy to process or plot the results using the capabilities of the pandas library.
Beside this, the package oemof_visio provides some basic plot methods to create nice plots. The oemof plot methods can be used additionally and are easily combined with the plot capabilities of pandas and matplotlib.

feedinlib – time series of pv or wind power plants

The modelling library feedinlib is not part of the oemof installation and can be used as a stand-alone application. Feed-in time series of volatile power plants are essential for most energy system models.
The feedinlib will be revised in the near future but the last stable release can still be used.
Clone or fork the ‘feedinlib’ at github and use it within your project. Don’t forget to play back your fixes and improvements. We are pleased to get your feedback.

Annual feedin of wind and pv power plants in Germany using the feedinlib
Annual feedin of wind and pv power plants in Germany using the feedinlib

windpowerlib – time series of wind power plants and farms

The windpowerlib is a library that provides a set of functions and classes to calculate the power output of wind turbines and wind farms. It was originally part of the feedinlib (windpower and pv) but was taken out to build up a community concentrating on wind power models. It is still used by the feedinlib to create wind power time series.

demandlib – create demand profiles

The demandlib library is not part of the oemof installation and can be used as a stand-alone application. It can be used to create time series given the annual demand.

Heat and electricity series of different sectors
Heat and electricity series of different sectors

TESPy – thermal process simulation

TESPy (Thermal Engineering Systems in Python) is a new software in the oemof cosmos. It supplies a large toolbox for simulation of thermal processes, such as heat pumps, thermal power plants or heating networks. You can use TESPy for the design of your plants and predict the offdesign performance. This way TESPy can provide characteristics, for instance the backpressure-line of a chp or temperature dependent COP of a heat pump, for your energy system optimization in oemof.solph.
TESPy is available at You can find the online documentation at readthedocs. If you have any questions or issues, feel free to contact us or open an issue on the github repository.

heat pump topology and COP for different loads and at different ambient temperatures

oemof.db – a toolbox to use postgresql databases

The oemof.db extension is a toolbox to use databases with oemof. There are still parts the rely on the oemof postgis database. If you are interested to join the oemof database project please contact us.
It is planed to be an adapter for open databases (climate data, power plants, etc.).

oemof.thermal – model thermal energy components

The aim of oemof.thermal is to create a toolbox for building models of thermal energy systems. Modelling thermal energy systems requires specific preprocessing and postprocessing steps whose detail exceeds the generic formulation of components in oemof.solph. Currently, most of the functions collected here are intended to be used together with oemof.solph. However, in some instances they may be useful independently of oemof.solph.
oemof.thermal is rather new and under active development. Contributions are welcome.

oemof-tabular – easing model development through using a spreadsheet interface

The underlying concept of oemof-tabular is the oemof solph package. The Open Energy Modelling Framework (oemof) is based on a graph structure at its core. In addition it provides an optimization model generator to construct individual dispatch and investment models. The internal logic, used terminology and software architecture is abstract and rather designed for model developers and experienced modellers.
However, in some cases complexity of this internal logic and full functionality is neither necessary nor suitable for model users. Therefore we provide so called facade classes that allow for an energy specific and reduced access to the underlying oemof.solph functionality. More importantly theses classes provide an interface to tabular data sources from which models can be easily created. More information can be found here.