Skip to content

Commit 2a5c725

Browse files
KS-HTKjwiemer112mrifraunhofervogt31337brynpickering
authored
Update release/v4.0.0 base. (#2943)
* updated docstings (#2934) deprecated unused keyword args * Feature/get all elements (#2939) * Hallo * Hallo Leute * adding first draft of simple_hl_plot a function to easily highlight buses and lines paired with a hover functionality * added function to get a dataframe of all elements in the net * add test clean comments renaming * add test * add docu * add changelog entry * ltds_fix (#2938) * updated ltds notebooks * updated ltds notebooks, fixed LTDS converter * added pytest split to tutorial_test pipeline (#2935) * added pytest split to tutorial_test pipeline * added notebook test times * fixed many links (#2937) other formatting Co-authored-by: V3 <mike.vogt@iee.fraunhofer.de> * Fix copyright text formatting in LICENSE file (#2914) * Fix copyright text formatting in LICENSE file * Refactor copyright notice in LICENSE Updated copyright notice formatting in LICENSE file following [upstream changes](licensee/licensee#950) to handle multi-line attribution. --------- Co-authored-by: KS_HTK <2981026+KS-HTK@users.noreply.github.com> * added PowerElectronicsConnection to the LTDS converter, updated LTDS notebooks (PowerElectronicsConnection) (#2942) Co-authored-by: David Heck <david.heck@iee.fraunhofer.de> --------- Co-authored-by: Jan Wiemer <32835953+jwiemer112@users.noreply.github.com> Co-authored-by: mrifraunhofer <94368111+mrifraunhofer@users.noreply.github.com> Co-authored-by: V3 <mike.vogt@iee.fraunhofer.de> Co-authored-by: Bryn Pickering <17178478+brynpickering@users.noreply.github.com> Co-authored-by: David Heck <david.heck@iee.fraunhofer.de>
1 parent e7c3444 commit 2a5c725

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+704
-439
lines changed

.github/workflows/github_test_action.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,9 @@ jobs:
330330
tutorial_tests:
331331
needs: build
332332
runs-on: ubuntu-latest
333+
strategy:
334+
matrix:
335+
group: [ 1, 2, 3 ]
333336
steps:
334337
# UV does not work for julia, do not add it here!
335338
- uses: actions/checkout@v6
@@ -342,7 +345,7 @@ jobs:
342345
- name: Test with pytest
343346
# Careful when copying this command. The PYTHONPATH setup is Linux specific syntax.
344347
run: |
345-
pytest --nbmake --nbmake-timeout=900 --timeout=900 "./tutorials"
348+
pytest --splits 3 --group ${{ matrix.group }} --nbmake --nbmake-timeout=900 --timeout=900 "./tutorials"
346349
347350
tutorial_warnings_tests:
348351
needs: build

CHANGELOG.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Change Log
88
- [ADDED] LTDS support
99
- [FIXED] cim2pp: CimConverter backwards-compatible (default value for cin_version)
1010
- [FIXED] jao converter: calculation of trafo parameters is based on primary side (hv) now
11+
- [ADDED] toolbox: :code:`get_all_elements` returns all elements of a pp.pandapowerNet as a DataFrame
1112

1213
[3.4.0] - 2026-02-09
1314
-------------------------------
@@ -803,7 +804,7 @@ Change Log
803804

804805
[1.6.0] - 2018-09-18
805806
----------------------
806-
- [CHANGED] Cost definition changed for optimal powerflow, see OPF documentation (http://pandapower.readthedocs.io/en/v1.6.0/powerflow/opf.html) and opf_changes-may18.ipynb
807+
- [CHANGED] Cost definition changed for optimal powerflow, see OPF documentation (https://pandapower.readthedocs.io/en/v1.6.0/powerflow/opf.html) and opf_changes-may18.ipynb
807808
- [ADDED] OPF data (controllable, max_loading, costs, min_p_kw, ...) in Power System Test Cases
808809
- [ADDED] case_ieee30, case5, case_illinois200
809810
- [FIXED] 1 additional Trafo in case39, vn_kv change in case118, sgen indices in polynomial_cost in case 1888rte, case2848rte

LICENSE

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2016-2026 by University of Kassel and Fraunhofer Institute for Energy Economics
4-
and Energy System Technology (IEE) Kassel and individual contributors (see AUTHORS file for details).
5-
All rights reserved.
3+
Copyright (c)
4+
2016-2026 University of Kassel
5+
2016-2026 Fraunhofer Institute for Energy Economics
6+
2016-2026 Energy System Technology (IEE) Kassel
7+
2016-2026 individual contributors (see AUTHORS file for details)
8+
All rights reserved.
69

710
Redistribution and use in source and binary forms, with or without modification, are permitted
811
provided that the following conditions are met:

README.rst

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
:alt: versions
1515

1616
.. image:: https://readthedocs.org/projects/pandapower/badge/
17-
:target: http://pandapower.readthedocs.io/
17+
:target: https://pandapower.readthedocs.io/
1818
:alt: docs
1919

2020
.. image:: https://codecov.io/github/e2nIEE/pandapower/coverage.svg?branch=master
@@ -42,10 +42,12 @@
4242

4343

4444
pandapower is an easy to use network calculation program aimed to automate the analysis and optimization of power
45-
systems. It uses the data analysis library `pandas <http://pandas.pydata.org>`_ and is compatible with the commonly
45+
systems. It uses the data analysis library `pandas <https://pandas.pydata.org>`_ and is compatible with the commonly
4646
used MATPOWER / PYPOWER case format. pandapower allows using different solvers including an improved Newton-Raphson
47-
power flow implementation, all `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ solvers, the C++ library solvers for fast steady-state distribution power system analysis of `PowerGridModel <https://github.com/PowerGridModel/power-grid-model>`_, the Newton-Raphson power flow solvers in the C++ library `lightsim2grid <https://github.com/BDonnot/lightsim2grid/>`_, and the
48-
`PowerModels.jl <https://github.com/lanl-ansi/PowerModels.jl/>`_ library.
47+
power flow implementation, all `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ solvers, the C++ library solvers for
48+
fast steady-state distribution power system analysis of `PowerGridModel <https://github.com/PowerGridModel/power-grid-model>`_,
49+
the Newton-Raphson power flow solvers in the C++ library `lightsim2grid <https://github.com/BDonnot/lightsim2grid/>`_,
50+
and the `PowerModels.jl <https://github.com/lanl-ansi/PowerModels.jl/>`_ library.
4951

5052
More information about pandapower can be found on `www.pandapower.org <https://www.pandapower.org/>`_:
5153

@@ -78,14 +80,15 @@ be used in pandapower, have a look at the *SimBench* `project website <https://w
7880
:alt: pandapipes_logo
7981

8082
If you want to model pipe networks (heat, gas or water) as well, we recommend
81-
pandapower's sibling project *pandapipes* (`website <https://www.pandapipes.org>`_, `GitHub repository <https://github.com/e2nIEE/pandapipes>`_).
83+
pandapower's sibling project *pandapipes*. `pandapipes.org <https://www.pandapipes.org>`__,
84+
`GitHub repository <https://github.com/e2nIEE/pandapipes>`__.
8285

8386
|
8487
8588
pandapower is a joint development of the research group of the Department for Sustainable Electrical Energy Systems (e2n), University of Kassel and the Department for Distribution System
8689
Operation at the Fraunhofer Institute for Energy Economics and Energy System Technology (IEE), Kassel.
8790

88-
.. image:: http://www.pandapower.org/images/contact/Logo_e2n.png
91+
.. image:: https://www.pandapower.org/images/contact/Logo_e2n.png
8992
:target: https://www.uni-kassel.de/eecs/en/sections/energiemanagement-und-betrieb-elektrischer-netze/home
9093
:width: 500
9194

@@ -97,4 +100,5 @@ Operation at the Fraunhofer Institute for Energy Economics and Energy System Tec
97100

98101
|
99102
100-
We welcome contributions to pandapower of any kind - if you want to contribute, please check out the `pandapower contribution guidelines <https://github.com/e2nIEE/pandapower/blob/develop/CONTRIBUTING.rst>`_.
103+
We welcome contributions to pandapower of any kind - if you want to contribute, please check out the
104+
`contribution guidelines <https://github.com/e2nIEE/pandapower/blob/develop/CONTRIBUTING.rst>`__.

doc/about.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
About pandapower
33
##########################
44

5-
pandapower combines the data analysis library `pandas <http://pandas.pydata.org>`_ and the power flow solver `PYPOWER <https:/pypi.python.org/pypi/PYPOWER>`_ to create an easy to use network calculation program
5+
pandapower combines the data analysis library `pandas <https://pandas.pydata.org>`_ and the power flow solver
6+
`PYPOWER <https://pypi.org/project/PYPOWER/>`_ to create an easy to use network calculation program
67
aimed at automation of analysis and optimization in power systems.
78

89
.. image:: /pics/pp.svg

doc/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
pandapower
33
############################
44

5-
pandapower combines the data analysis library `pandas <http://pandas.pydata.org>`_ and the power flow solver `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ to create an easy to use network calculation program
5+
pandapower combines the data analysis library `pandas <https://pandas.pydata.org>`_ and the power flow solver
6+
`PYPOWER <https://pypi.org/project/PYPOWER/>`_ to create an easy to use network calculation program
67
aimed at automation of analysis and optimization in power systems.
78

89
.. image:: /pics/pp.svg

doc/networks.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ Networks
77
Besides creating your own grids using pandapower functions, pandapower provides synthetic and
88
benchmark grids through the networks module.
99

10-
The pandapower networks module contains example grids, simple test grids, randomly generated
11-
grids, CIGRE test grids, IEEE case files (including 3-phase grids) and synthetic low voltage grids from Georg Kerber, Lindner et. al. and Dickert et. al.
12-
If you want to evaluate your algorithms on benchmark grids with corresponding full-year load, generation, and storage profiles
13-
or want to publish your results in a reproducible manner, we recommend the SimBench repository
14-
(`Homepage <https://simbench.de/en/>`_, `GitHub Repository to use SimBench with pandapower <https://github.com/e2nIEE/simbench>`_).
10+
The pandapower networks module contains example grids, simple test grids, randomly generated grids, CIGRE test grids,
11+
IEEE case files (including 3-phase grids) and synthetic low voltage grids from Georg Kerber, Lindner et. al. and Dickert
12+
et. al. If you want to evaluate your algorithms on benchmark grids with corresponding full-year load, generation, and
13+
storage profiles or want to publish your results in a reproducible manner, we recommend the SimBench repository
14+
(`SimBench Homepage <https://simbench.de/en/>`__, `SimBench GitHub Repository <https://github.com/e2nIEE/simbench>`__).
1515

1616
You can find documentation for the individual network modules of pandapower here:
1717

doc/networks/cigre.rst

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
==============
32
CIGRE Networks
43
==============
@@ -11,10 +10,12 @@ integration at high voltage, medium voltage and low voltage and at the desired d
1110

1211
.. note::
1312

14-
Source for this network is the final Report of Task Force C6.04.02 [1]: `"Benchmark Systems for Network Integration of Renewable and Distributed Energy Resources" <http://www.e-cigre.org/Order/select.asp?ID=729590>`_, 2014
13+
Source for this network is the final Report of Task Force C6.04.02 [1]:
14+
`Benchmark Systems for Network Integration of Renewable and Distributed Energy Resources - Reference: 575 - 2014. <https://www.e-cigre.org/publications/detail/575-benchmark-systems-for-network-integration-of-renewable-and-distributed-energy-resources.html>`__
1515

1616
See also a correlating Paper with tiny changed network parameters [2]:
17-
`K. Rudion, A. Orths, Z. A. Styczynski and K. Strunz, Design of benchmark of medium voltage distribution network for investigation of DG integration <http://ieeexplore.ieee.org/document/1709447/?arnumber=1709447&tag=1>`_ 2006 IEEE Power Engineering Society General Meeting, Montreal, 2006
17+
`K. Rudion, A. Orths, Z. A. Styczynski and K. Strunz, Design of benchmark of medium voltage distribution network for investigation of DG integration <https://ieeexplore.ieee.org/document/1709447/?arnumber=1709447&tag=1>`__
18+
2006 IEEE Power Engineering Society General Meeting, Montreal, 2006
1819

1920
High voltage transmission network
2021
---------------------------------
@@ -44,7 +45,7 @@ High voltage transmission network
4445
:alt: alternate Text
4546
:align: center
4647

47-
`[Source: 1] <http://www.e-cigre.org/Order/select.asp?ID=729590>`_
48+
`[Source 1]`_
4849

4950

5051

@@ -74,7 +75,7 @@ Medium voltage distribution network
7475
:alt: alternate Text
7576
:align: center
7677

77-
`[Source: 1] <http://www.e-cigre.org/Order/select.asp?ID=729590>`_
78+
`[Source 1]`_
7879

7980

8081
---------------------------
@@ -115,7 +116,7 @@ Although the case study mentions the High Voltage as 220 kV, we assume 110 kV ag
115116
:alt: alternate Text
116117
:align: center
117118

118-
`[Source: 1] <http://www.e-cigre.org/Order/select.asp?ID=729590>`_
119+
`[Source 1]`_
119120

120121

121122
---------------------------
@@ -159,7 +160,7 @@ considered. Although the case study mentions the High Voltage as 220 kV, we assu
159160
:alt: alternate Text
160161
:align: center
161162

162-
`[Source: 1] <http://www.e-cigre.org/Order/select.asp?ID=729590>`_
163+
`[Source 1]`_
163164

164165

165166
---------------------------
@@ -191,4 +192,8 @@ Low voltage distribution network
191192
:alt: alternate Text
192193
:align: center
193194

194-
`[Source: 1] <http://www.e-cigre.org/Order/select.asp?ID=729590>`_
195+
`[Source 1]`_
196+
197+
198+
.. _[Source 1]: https://www.e-cigre.org/publications/detail/575-benchmark-systems-for-network-integration-of-renewable-and-distributed-energy-resources.html
199+
.. _[Source 2]: https://ieeexplore.ieee.org/document/1709447/?arnumber=1709447&tag=1

doc/networks/power_system_test_cases.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Power System Test Cases
44

55
.. note::
66

7-
All Power System Test Cases were converted from `PYPOWER <https:/pypi.python.org/pypi/PYPOWER>`_ or `MATPOWER <http://www.pserc.cornell.edu/matpower/>`_ case files.
7+
All Power System Test Cases were converted from `PYPOWER <https://pypi.org/project/PYPOWER/>`__ or
8+
`MATPOWER <https://matpower.org/>`__ case files.
89

910

1011
Case 4gs

doc/opf/pandamodels.rst

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,38 @@ Optimization with PandaModels.jl
88
Introduction
99
--------------------
1010

11-
`PandaModels.jl <https://github.com/e2nIEE/PandaModels.jl>`_ (pandapower + PowerModels.jl) is an interface (Julia package) enabling the connection of pandapower and PowerModels in a stable and functional way. Except for calling the implemented optimization models in PowerModels, users can create custom optimization models with PandaModels. Presently, users can solve some reactive power optimization problems with PandaModels.
11+
`PandaModels.jl <https://github.com/e2nIEE/PandaModels.jl>`__ (pandapower + PowerModels.jl) is an interface
12+
(Julia package) enabling the connection of pandapower and PowerModels in a stable and functional way. Except for calling
13+
the implemented optimization models in PowerModels, users can create custom optimization models with PandaModels.
14+
Presently, users can solve some reactive power optimization problems with PandaModels.
1215

1316

1417
Installation
1518
--------------
1619

17-
If you are not yet using `Julia <https://julialang.org/downloads/>`_, install it. For the interface to work, note that you need a version that is supported by PowerModels, PyCall and pyjulia. Currently, Former julia versions are available `here <https://julialang.org/downloads/oldreleases/>`__.
20+
If you are not yet using `Julia <https://julialang.org/downloads/>`__, install it. For the interface to work, note that
21+
you need a version that is supported by PowerModels, PyCall and pyjulia. Currently, Former julia versions are available
22+
`here <https://julialang.org/downloads/oldreleases/>`__.
1823

19-
.. note:: You don't necessarily need a Julia IDE if you are using PandaModels through pandapower, but it might help for debugging to install an IDE such as `Juno <http://docs.junolab.org/latest/man/installation>`_. Also, PyCharm has a Julia Plugin.
24+
.. note:: You don't necessarily need a Julia IDE if you are using PandaModels through pandapower, but it might help for
25+
debugging to install an IDE such as `Juno <https://docs.junolab.org/latest/man/installation/>`__. Also, PyCharm has
26+
a Julia Plugin.
2027

21-
1. Add the Julia binary folder (e.g. `C:\Users\username\AppData\Local\Programs\Julia-1.8.0\bin\` on Windows or `/Applications/Julia-1.5.app/Contents/Resources/julia/bin` on MacOS) to the `system variable PATH <https://www.computerhope.com/issues/ch000549.htm>`_. Providing the path is correct, you can now enter the julia prompt by executing :code:`julia` in your shell (on Windows, rebooting the system is needed to take advantage of changes to the :code:`PATH`.
28+
1. Add the Julia binary folder
29+
(e.g. `C:\\Users\\username\\AppData\\Local\\Programs\\Julia-1.8.0\\bin\\` on Windows or
30+
`/Applications/Julia-1.5.app/Contents/Resources/julia/bin` on MacOS) to the
31+
`system variable PATH <https://www.computerhope.com/issues/ch000549.htm>`_. Providing the path is correct, you can
32+
now enter the julia prompt by executing :code:`julia` in your shell (on Windows, rebooting the system is needed to
33+
take advantage of changes to the :code:`PATH`.
2234

23-
2. The library `PyCall <https://github.com/JuliaPy/PyCall.jl#installation>`__ allows to use Python from inside julia. By default, PyCall uses the Conda.jl package to install a Miniconda distribution private to Julia. To use an already installed Python distribution (e.g. Anaconda), set the :literal:`PYTHON` environment variable inside the Julia prompt.
24-
25-
On Windows:
26-
27-
:code:`ENV["PYTHON"]=raw"C:\\Anaconda3\\python.exe"`
28-
29-
On MacOS:
30-
31-
:code:`ENV["PYTHON"]="/Users/%Username/opt/anaconda3/bin/python"`
35+
2. The library `PythonCall.jl <https://github.com/JuliaPy/PythonCall.jl>`__ allows to use Python from inside julia.
36+
By default, PythonCall uses the CondaPkg.jl package to create an environment private to each Julia project.
3237

38+
.. FIXME: Anything past this point needs to be converted to PythonCall + JuliaCall
3339
3440
3. Access the package manager by typing :code:`]`. Now install the packages: :code:`add Ipopt PowerModels PyCall`. To pass the python environment variable, running :code:`build PyCall` inside the julia package manager may be necessary.
3541

36-
4. Inside package manager, test your `PowerModels <https://lanl-ansi.github.io/PowerModels.jl/stable/#Installation-1>`_ installation by executing :code:`test PowerModels`. Alternatively, you can call :code:`using Pkg` and then :code:`Pkg.test("PowerModels")` outside the package manager directly as julia expression. Then, test whether calling Python from Julia works, as described `here <https://github.com/JuliaPy/PyCall.jl#usage>`__.
42+
4. Inside package manager, test your `PowerModels <https://lanl-ansi.github.io/PowerModels.jl/stable/#Installation-1>`__ installation by executing :code:`test PowerModels`. Alternatively, you can call :code:`using Pkg` and then :code:`Pkg.test("PowerModels")` outside the package manager directly as julia expression. Then, test whether calling Python from Julia works, as described `here <https://github.com/JuliaPy/PyCall.jl#usage>`__.
3743

3844
.. note:: If you cannot plot using PyCall and PyPlot in Julia, see the workarounds offered `here <https://github.com/JuliaPy/PyCall.jl/issues/665>`__.
3945

0 commit comments

Comments
 (0)