A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

POMATO

An easy to use tool for the comprehensive analysis of the modern electricity market.
https://github.com/richard-weinhold/pomato

Category: Energy Systems
Sub Category: Energy Markets

Keywords from Contributors

economic-dispatch-problem flow-based-market-coupling optimal-power-flow transmission-system

Last synced: about 20 hours ago
JSON representation

Repository metadata

Power Market Tool for the comprehensive analyses of modern electricity markets (Python+Julia)

README.md

POMATO - Power Market Tool

Main Branch: Python package codecov

Construction Branch: Python package codecov

Documentation Status: Documentation Status

Overview

POMATO stands for (POwer MArket TOol) and is an easy to use tool for the comprehensive
analysis of the modern electricity market. It comprises the necessary power
engineering framework to account for power flow physics, thermal transport
constraints and security policies of the underlying transmission
infrastructure, depending on the requirements defined by the user.
POMATO was specifically designed to realistically model Flow-Based
Market-Coupling (FBMC) and is therefore equipped with a fast security
constrained optimal power flow algorithm and allows zonal market clearing
with endogenously generated flow-based parameters, and redispatch.

Documentation

Comprehensive documentation is available at pomato.readthedocs.io.

Installation

POMATO is written in python and julia. Python takes care of the data processing
and julia runs the economic dispatch and N-1 redundancy removal algorithm.

The recommended way to install POMATO with python and pip:

  • Install python for your operating system. On linux
    based operating systems python is often already installed and available under the python3
    command. For Windows install python into a folder of your choice. POMATO is written and tested
    in python 3.10.

  • Install julia for your operating system. POMATO is
    written and tested with 1.9.

  • Add python and julia to the system Path, this allows you to start python and julia
    directly for the command line without typing out the full path of the installation. PLattform
    specific instructions on how to do this are part of the julia installation
    instructions
    and work analogous for the python .

  • Install POMATO through pip in python. It is recommended to create a virtual environment and
    install pomato into it, but not necessary:

    python -m venv pomato
    ./pomato/Scripts/activate
    pip install git+https://github.com/richard-weinhold/pomato.git
    

This will not only clone the master branch of this repository into the local python environment, but
also pull the master branch of the MarketModel and RedundancyRemoval julia packages which are
required to run POMATO. This process can take a few minutes to complete.

After this is completed pomato can be imported in python:

from pomato import POMATO

See the POMATO Documentation for
further information on the installation process.

Examples

This release includes two examples in the examples folder. Including the contents of this folder
into a pomato working directory will allow their execution:

  • The IEEE 118 bus network, which contains a singular timestep. The data is available under
    open license at https://power-grid-lib.github.io/ and re-hosted in this repository.

    $ python /run_pomato_ieee.py
    
  • The DE case study, based on data from openly available data sources. The file can be run via

    $ python /run_pomato_de.py
    

See more in depth descriptions of this two case studies along with a FBMC and chance constrained
examples, part of the POMATO
Documentation
.

The examples folder also contains the two examples as Jupyter notebooks. Another possibility to
access the functionality of POMATO with an online REPL/Console when running POMATO inside a IDE with
an interactive IPython Console (e.g. Spyder) to access POMATO objects and variables.

Release Status

POMATO was part of my PhD that has concluded in 2021. The dissertation is available from
TU-Berlin and the
slides of the defence here in this repository
Link.

This means the model is no longer actively developed, although I try to have an eye on things. So
please feel free to contact me, but also know that POMATO is now a hobby that exists beside work.

I have tried to make everything robust by including a documentation and testing, but I am not a
software engineer, thus the "program" is not written with robustness in mind and our experience is
limited when it comes to common best practices. Expect errors, bug, funky behavior and code
structures from the minds of two engineering economists.

Related Publications

POMATO was also presented as part of the 2021 JuliaCon JuMP-dev train. The talk is available on
JuliaCon2021 youtube channel.

Acknowledgments

Richard and Robert would like to acknowledge the support of Reiner Lemoine-Foundation, the Danish
Energy Agency and Federal Ministry for Economic Affairs and Energy (BMWi). Robert Mieth was funded
by the Reiner Lemoine-Foundation scholarship. Richard Weinhold was funded by the Danish Energy
Agency through parts of the project. The development of POMATO and its applications was also funded
by BMWi in the project “Long-term Planning and Short-term Optimization of the German Electricity
System Within the European Context” (LKD-EU, 03ET4028A) and the project “Modellierung (De-)Zentraler
Energiewenden: Wechselwirkungen, Koordination und Lösungsansätze aus systemorientierter Perspektive”
(MODEZEEN, 03EI1019B).


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 462
Total Committers: 4
Avg Commits per committer: 115.5
Development Distribution Score (DDS): 0.024

Commits in past year: 13
Committers in past year: 2
Avg Commits per committer in past year: 6.5
Development Distribution Score (DDS) in past year: 0.077

Name Email Commits
riw r****w@w****e 451
Robert Mieth r****h@i****g 9
Florian Maurer m****r@f****e 1
tmar t****r@f****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 5
Total pull requests: 2
Average time to close issues: N/A
Average time to close pull requests: 8 months
Total issue authors: 5
Total pull request authors: 2
Average comments per issue: 4.2
Average comments per pull request: 1.0
Merged pull request: 1
Bot issues: 0
Bot pull requests: 1

Past year issues: 1
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 1.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/richard-weinhold/pomato

Top Issue Authors

  • 35604 (1)
  • Simplified-Mind (1)
  • paul-rupf (1)
  • Tamysam (1)
  • Mikalls (1)

Top Pull Request Authors

  • maurerle (1)
  • dependabot[bot] (1)

Top Issue Labels

Top Pull Request Labels

  • dependencies (1)

Dependencies

setup.py pypi
  • alabaster *
  • dash *
  • dash_bootstrap_components *
  • dash_daq *
  • geojson *
  • kaleido *
  • logaugment *
  • matplotlib *
  • numpy *
  • numpydoc *
  • openpyxl *
  • pandas *
  • pathlib *
  • plotly *
  • progress *
  • psutil *
  • pycddlib *
  • pypoman *
  • requests *
  • scipy *
  • shapely *
  • xlrd *

Score: 5.817111159963204