PyPSA / PyPSA/PyPSA

Defining custom components compatible with the Linopy optimization implementation

Open
#856 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

components API
Dominant language
Python
Stars
2.2k
Forks
699
Avg merge
2d 10h
Merged PRs (30d)
13

Description

A template for defining new components inside PyPSA

In old versions of PyPSA (before v0.25), there was an example on defining custom components (that was a combined heat and power system link). However, by introduction of the new optimization tool using Linopy, this example became outdated and then removed after v0.25 (although its traces are still out there in the documentation custom-components). Because of PyPSA's broad range of users, it would be beneficial to define a template or a guideline on how to define a custom component which is compatible with the new optimization implementation in PyPSA (optimize instead of lopf)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing custom-components section in the PyPSA documentation and compare it with the pre-v0.24 examples/new_components example. Determine what guidance or template is needed for custom components with optimize and Linopy, then update the documentation so the new workflow is clear and the example is compatible with the current optimization implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.