pomato

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

https://github.com/richard-weinhold/pomato

Science Score: 46.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, ieee.org
  • Committers with academic emails
    3 of 4 committers (75.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: richard-weinhold
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 92 MB
Statistics
  • Stars: 87
  • Watchers: 4
  • Forks: 19
  • Open Issues: 6
  • Releases: 3
Created almost 6 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License

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.10.

  • 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

  • Login: richard-weinhold
  • Kind: user
  • Location: Berlin
  • Company: TU Berlin

GitHub Events

Total
  • Issues event: 6
  • Watch event: 9
  • Issue comment event: 2
  • Push event: 7
  • Fork event: 2
Last Year
  • Issues event: 6
  • Watch event: 9
  • Issue comment event: 2
  • Push event: 7
  • Fork event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 469
  • Total Committers: 4
  • Avg Commits per committer: 117.25
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 7
  • Committers: 1
  • Avg Commits per committer: 7.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
riw r****w@w****e 458
Robert Mieth r****h@i****g 9
Florian Maurer m****r@f****e 1
tmar t****r@f****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 6
  • Total pull requests: 2
  • Average time to close issues: 29 days
  • Average time to close pull requests: 8 months
  • Total issue authors: 6
  • Total pull request authors: 2
  • Average comments per issue: 3.5
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: 29 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 0.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • um488 (2)
  • 35604 (1)
  • Simplified-Mind (1)
  • paul-rupf (1)
  • Tamysam (1)
  • Mikalls (1)
Pull Request Authors
  • maurerle (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
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 *
.github/workflows/pomato_testing.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/python-package.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v3 composite
  • codecov/codecov-action v1 composite
  • julia-actions/setup-julia v1 composite
docs/requirements.txt pypi
requirements.txt pypi