A catalogue and categorization of open-source, Python-based energy models for energy system planning and operations.
This page is an attempt to catalogize and categorize open-source python-based models for planning and operations of energy systems. The focus is on frameworks, libraries (frameworks vs libraries) and tutorials, over codes implementing specific energy model (e.g. accompanying a research paper). Even though projects with specific energy model implementations are included given the code quality is high.
Note: Some things that are out of scope for this page include: IoT/connectivity projects, web/data scrapers, visualization tools and data models/ontologies.
- Add a model to list
- Update categorization and links
The energy models are categorized according to several characteristics: code type, problem type, model type, energy assets included and scale. Here is an outline of all the characteristics and their meaning:
Characteristics | Fields |
---|---|
Code type | ๐งฉ Framework: Defines concepts and components that are used to create a solution ๐ Library: Functions and classes to solve a specific task, e.g. generating demand profiles. ๐ Tutorial: Educational walkthroughs of specific topics and concepts. ๐ Code: Implementation of specific energy model. |
Problem type | ๐ฌ Operations: Operations problem such as dispatch or continuous trading. ๐ Planning: Planning problems such as optimal investments or system configuration. |
Model type | ๐ฎ Simulation: Physical or behaviour simulations, typically allowing for "what-if"-analysis. ๐ Prediction: Forecasting and scenario generation. โ๏ธ Optimization: Models performing decision optimization. ๐ค Agents: Models interacting with and learning from environments. |
Energy assets | โ๏ธ Solar: Solar PV and solar thermal assets. ๐ฌ๏ธ Wind: Wind turbines and wind farms. ๐ Battery: Electrochemical batteries. ๐ฆ Hydro: Electrochemical batteries. ๐ฆ Heat pump: โก Power grid: |
Scale | โก Power transmission: Scale of power transmission and countries. ๐ญ Power plant: Front-of-meter power plant scale. ๐๏ธ City/Region: City or region scale. ๐๏ธ Community: Energy community scale. ๐ House/building: House or building scale. ๐ Asset: Asset scale. |
In alphabetical order.
Name | Description | Problem Type | Model Type | Energy Assets | Links |
---|---|---|---|---|---|
alite |
Calculate renewable power potentials and time series. | ๐ | ๐ฎ | โ๏ธ ๐ฌ๏ธ | [code], [docs], [pypi], [website] |
boptest |
Simulate and benchmark building heat transfer. | ๐ฌ | โ๏ธ ๐ฎ | ๐ | [code] |
calliope |
A multi-scale energy systems modelling framework. | ๐ | ๐ฎ | ๐ ๐ญ โก โ๏ธ ๐ฌ๏ธ | [code], [docs], [pypi], [website] |
demandlib |
Generate electricity and heating demand profiles. | ๐ | ๐ฎ | ๐ | [code], [docs], [pypi] |
Grid2Op |
A framework to model sequential decision making in power grid operations. | ๐ฌ | ๐ค โ๏ธ ๐ ๐ฎ | โก | [code], [docs], [pypi], [website] |
HOPP |
Assess optimal designs for the deployment of utility-scale hybrid energy plants. | ๐ | ๐ฎ | ๐ โ๏ธ ๐ฌ๏ธ | [code], [docs], [pypi] |
Hydropowerlib |
Calculate feed-in time series of run-of-the-river hydropower plants. | ๐ | ๐ฎ | ๐ฆ | [code] |
OpenSTEF |
Open energy forecasting package. | ๐ฌ | ๐ | โ๏ธ ๐ฌ๏ธ | [code], [docs], [pypi] |
OSESMO |
Calculate power flow of distribution grids. | ๐ | ๐ฎ | โก | [code] |
pandapipes |
Calculate fluid flow of pipe systems. | ๐ | ๐ฎ | โจ๏ธ | [code], [docs], [pypi], [website] |
pandapower |
Calculate power flow of distribution grids. | ๐ | ๐ฎ | โก | [code], [docs], [pypi] |
proloaf |
Probabilistic electricity load forecasting using recurrent neural networks. | ๐ฌ | ๐ | โก | [code], [pypi] |
pvlib |
Functions for simulating and forecasting photovoltaic energy systems. | ๐ | ๐ ๐ฎ | โ๏ธ | [code], [docs], [pypi] |
pyCity |
Python package for data handling and scenario generation of city districts. | ๐ | ๐ฎ | ๐ ๐ โ๏ธ ๐ฌ๏ธ | [code], [pypi] |
PYPOWER |
Power flow and Optimal Power Flow (OPF) solver. Port from MATPOWER to Python. | ๐ | ๐ฎ | โก | [code], [docs], [pypi] |
pysam |
Python Wrapper for the System Advisor Model (SAM). | ๐ | ๐ฎ | ๐ ๐ โ๏ธ ๐ฌ๏ธ | [code], [docs], [pypi] |
TEASER |
Tool for Energy Analysis and Simulation for Efficient Retrofit. | ๐ | ๐ฎ | ๐ | [code], [pypi] |
windpowerlib |
Calculate wind power production from meteorological variables. | ๐ | ๐ ๐ฎ | ๐ฌ๏ธ | [code], [docs], [pypi], [website] |
General tools are frameworks and libraries that are not necessarily energy models but that can be useful for implementation of specific energy models. We categorize these tools into:
- ๐ฎ Physics or data driven simulation tools.
- ๐ Statistical and machine learning prediction tools.
- โ๏ธ Optimization tools.
- ๐ค Explainability and interpretability tools.
Name | Description | Tool type | Links |
---|---|---|---|
autogluon |
Fast and Accurate ML in 3 Lines of Code. | ๐ | [code], [docs], [PyPI] |
catboost |
A fast gradient boosting library with special treatment of categorical features. | ๐ | [code], [docs], [PyPI] |
cvxopt |
Framework for convex optimization in python. | โ๏ธ | [code], [docs], [PyPI] |
cvxpy |
Framework for convex optimization in python. | โ๏ธ | [code], [docs], [PyPI] |
darts |
A fast gradient boosting library for tasks including regression/prediction. | ๐ | [code], [docs], [PyPI] |
gluon |
A fast gradient boosting library for tasks including regression/prediction. | ๐ | [code], [docs], [PyPI] |
lightgbm |
A fast gradient boosting library for tasks including regression/prediction. | ๐ | [code], [docs], [PyPI] |
pycaret |
An open-source, low-code machine learning library in Python. | โ๏ธ | [code], [docs], [PyPI] |
pyomo |
An object-oriented algebraic modeling language for structured optimization problems. | โ๏ธ | [code], [docs], [PyPI] |
scikit-learn |
The go-to machine learning library for Python. | ๐ | [code], [docs], [PyPI] |
shap |
A game theoretic approach to explain the output of any machine learning model. | ๐ | [code], [docs], [PyPI] |
rsome |
Robust Stochastic Optimization Made Easy. | โ๏ธ | [code], [docs], [PyPI] |
xgboost |
Extreme gradient boosting algorithm for tasks including regression/prediction. | ๐ | [code], [docs], [PyPI] |