Skip to content

๐Ÿ’ก A catalogue and categorization of open-source, Python-based energy models.

Notifications You must be signed in to change notification settings

rebase-energy/awesome-energy-models

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“š awesome-energy-models

A catalogue and categorization of open-source, Python-based energy models for energy system planning and operations.

Table of Contents

What is this page about?

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.

How to Contribute?

  1. Add a model to list
  2. Update categorization and links

Energy Model Categorization

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.

Energy Models (Frameworks and libraries)

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]

Tutorials and examples

General tools

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]

About

๐Ÿ’ก A catalogue and categorization of open-source, Python-based energy models.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages