Network Matrices and Pandapower Interface

This tutorial shows how to access network matrices (such as the admittance matrix of the load flow Jacobian). PowerFactory does not allow this access directly, so the dataset is first exported to the pandapower format. The matrices can then be extracted from this format.

You can learn more from the pandapower documentation:

Warning

Note that not all networks elements/components are supported by pandapower (see the list of supported components) and the functionality shown in this tutorial may not be applicable to some PowerFactory datasets.

1 Imports and Project Activation

First we import some packages and activate the PowerFactory project from which we want to export the dataset (the IEEE 39 bus system example) and get the network matrices.

import os

import numpy as np
from icecream import ic
import pandas as pd
import pandapower as pp

from powfacpy.base.active_project import ActiveProject
from powfacpy.pf_classes.protocols import PFApp

# If you use IPython/Jupyter:
import sys

sys.path.append(
    r"C:\Program Files\DIgSILENT\PowerFactory 2025 SP3\Python\3.13"
)  # you may use a different directory
# Get the PF app
import powerfactory

app = powerfactory.GetApplication()

pf_app: PFApp = powerfactory.GetApplication()
act_prj = ActiveProject(pf_app)
act_prj.app.Show()
act_prj.app.ActivateProject(
    "powfacpy\\39_bus_new_england_copy_where_tests_run"
)  # You may change the project path.
act_prj.activate_study_case("Study Cases\\2.1 Simulation Fault Bus 16 Stable")
<powerfactory.DataObject <l1>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Study Cases.IntPrjfolder\2.1 Simulation Fault Bus 16 Stable.IntCase</l1>>

2 Export Dataset to Pandapower

The dataset can be exported to pandapower format using the pf_project_to_pandapower function. It requires the PowerFactory app and the path to the project as inpit arguments.

from powfacpy.applications.pandapower_interface import PandapowerInterface

try:
    act_prj.app.Hide()
    ppi = PandapowerInterface(app)
    net = ppi.pf_project_to_pandapower()
finally:
    act_prj.app.Show()
net
This pandapower network includes the following parameter tables:
   - bus (39 elements)
   - load (19 elements)
   - gen (9 elements)
   - switch (92 elements)
   - ext_grid (1 element)
   - line (34 elements)
   - trafo (12 elements)
 and the following results tables:
   - res_bus (39 elements)
   - res_line (34 elements)
   - res_trafo (12 elements)
   - res_ext_grid (1 element)
   - res_load (19 elements)
   - res_gen (9 elements)
   - res_switch (92 elements)

net gives an overview of the exported network components and result tables (pandapower result format). PandaPower is based on pandas dataframes. You can query for example the data of the buses using:

net.bus
name vn_kv type zone in_service geo description substat folder_id equipment sernum chr_name
0 Bus 08 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
1 Bus 07 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
2 Bus 05 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
3 Bus 04 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
4 Bus 06 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
5 Bus 31 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
6 Bus 11 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
7 Bus 12 138.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
8 Bus 10 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
9 Bus 32 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
10 Bus 13 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
11 Bus 14 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
12 Bus 15 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
13 Bus 37 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
14 Bus 17 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
15 Bus 27 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
16 Bus 18 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
17 Bus 03 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
18 Bus 26 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
19 Bus 28 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
20 Bus 25 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
21 Bus 29 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
22 Bus 38 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
23 Bus 30 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
24 Bus 02 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
25 Bus 01 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
26 Bus 39 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
27 Bus 09 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
28 Bus 36 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
29 Bus 23 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
30 Bus 22 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
31 Bus 35 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
32 Bus 19 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
33 Bus 20 230.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
34 Bus 33 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
35 Bus 24 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
36 Bus 34 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
37 Bus 21 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
38 Bus 16 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid

Note that the name column is filled with the loc_name attributes of the PowerFactory objects. name can be used as a mapping to the respective PowerFactory object only if the loc_name of all objects of a certain class are unique (e.g. no ElmTerm instances have the same loc_name). The Database interface can be used to enumerate equivalent names of calculation relevant objects in the PowerFactory database.

from powfacpy.applications.database import Database

try:
    act_prj.app.Hide()
    dbi = Database(app)
    dbi.make_loc_name_unique()
    net = ppi.pf_project_to_pandapower()
finally:
    act_prj.app.Show()

To test whether the exported dataset is feasible, we can run a power flow using pandapower:

pp.runpp(net)
numba cannot be imported and numba functions are disabled.
Probably the execution is slow.
Please install numba to gain a massive speedup.
(or if you prefer slow execution, set the flag numba=False to avoid this warning!)

The following shows how to access the results for a certain bus.

bus_name = "Bus 05"
index_of_element = net.bus[net.bus["name"] == bus_name].index[0]
net.res_bus.iloc[index_of_element]
vm_pu        1.005311
va_degree   -8.611863
p_mw         0.000000
q_mvar       0.000000
Name: 2, dtype: float64

3 Network Matrices

3.1 Admittance Matrix

We can no extract the Ybus (i.e admittance) matrix. By default, the returned numpy matrix is sparse, so we create a dense matrix for printing.

Yb = ppi.get_Ybus_matrix(net)

print(Yb)
[[ 26.84540295-332.03038228j -18.76172734+215.75984428j
   -6.34517667 +88.83248222j ...   0.          +0.j
    0.          +0.j           0.          +0.j        ]
 [-18.76172734+215.75984428j  25.82055168-323.99513559j
    0.          +0.j         ...   0.          +0.j
    0.          +0.j           0.          +0.j        ]
 [ -6.34517667 +88.83248222j   0.          +0.j
   40.62074723-549.00640737j ...   0.          +0.j
    0.          +0.j           0.          +0.j        ]
 ...
 [  0.          +0.j           0.          +0.j
    0.          +0.j         ...   2.74613638 -54.92271706j
    0.          +0.j           0.          +0.j        ]
 [  0.          +0.j           0.          +0.j
    0.          +0.j         ...   0.          +0.j
    8.44256311-145.01095393j  -4.37421432 +73.8148601j ]
 [  0.          +0.j           0.          +0.j
    0.          +0.j         ...   0.          +0.j
   -4.37421432 +73.8148601j   36.02583738-510.89377228j]]

The base apparent power is net._ppc["baseMVA"].

net._ppc["baseMVA"]
100.0

This does not provide any information about the corresponding nodes of the rows and columns. The function get_Ybus_frame provides this information.

df = ppi.get_Ybus_frame(net)
df
Bus 08 Bus 07 Bus 05 Bus 04 Bus 06 Bus 31 Bus 11 Bus 12 Bus 10 Bus 32 ... Bus 23 Bus 22 Bus 35 Bus 19 Bus 20 Bus 33 Bus 24 Bus 34 Bus 21 Bus 16
Bus 08 26.845403-332.030382j -18.761727+215.759844j -6.345177+ 88.832482j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 07 -18.761727+215.759844j 25.820552-323.995136j 0.000000+ 0.000000j 0.000000+ 0.000000j -7.058824+108.235291j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 05 -6.345177+ 88.832482j 0.000000+ 0.000000j 40.620747-549.006407j -4.863813+ 77.821008j -29.411758+382.352917j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 04 0.000000+ 0.000000j 0.000000+ 0.000000j -4.863813+ 77.821008j 12.507556-201.817511j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 06 0.000000+ 0.000000j -7.058824+108.235291j -29.411758+382.352917j 0.000000+ 0.000000j 46.805737-649.040329j 0.000000+37.383178j -10.335155+121.068943j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 31 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 37.383178j 0.000000-37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 11 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.335155+121.068943j 0.000000+ 0.000000j 32.622254-374.452477j -0.839376+22.820532j -21.447723+230.563002j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 12 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.839376+ 22.820532j 1.678752-45.641064j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 10 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j 0.000000+ 0.000000j 42.895446-507.854976j 0.000000+46.728972j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 32 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 46.728972j 0.000000-46.728972j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 13 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.839376+22.820532j -21.447723+230.563002j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 14 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.788984+ 77.222383j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 15 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.093079+105.416621j
Bus 37 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 17 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.782937+111.668756j
Bus 27 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 18 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 03 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.854758+ 46.774120j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 26 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 28 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 25 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 29 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 38 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 30 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 02 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 01 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 39 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 09 -1.738499+ 27.438056j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 36 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -0.675593+ 36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 23 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 8.949527-168.972606j -6.485084+103.761341j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.788850+ 28.458985j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 22 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -6.485084+103.761341j 10.553433-243.181896j 0.000000+68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.068349+ 71.196094j 0.000000+ 0.000000j
Bus 35 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 68.224461j 0.000000-68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 19 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 10.874921-184.781649j -3.458741+ 68.186611j -3.236561+65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.179618+ 50.939107j
Bus 20 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.458741+ 68.186611j 6.204878-123.109328j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 33 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.236561+ 65.655932j 0.000000+ 0.000000j 3.236561-65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 24 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -1.788850+ 28.458985j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 10.384839-197.513413j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.595989+169.054429j
Bus 34 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+ 54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 2.746136-54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 21 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j -4.068349+ 71.196094j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 8.442563-145.010954j -4.374214+ 73.814860j
Bus 16 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.179618+ 50.939107j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.595989+169.054429j 0.000000+ 0.000000j -4.374214+ 73.814860j 36.025837-510.893772j

39 rows × 39 columns

The names in the labels correspond to the loc_name attributes of the PowerFactory objects. Provided that the names are unique, we can also replace them with the actual PowerFactory objects (this can be more convenient to query data, but printing the frame is ugly because the full path is used in the labels) using the PandasInterface of powfacpy.

from powfacpy.applications.pandas_interface import PandasInterface

pdi = PandasInterface(app)

df = pdi.replace_loc_name_with_pf_objects_in_labels(
    df, "ElmTerm", index_and_column_labels_are_equal=True
)
df
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 08.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 07.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 05.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 04.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 06.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 31.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 11.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 12.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 10.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 32.ElmTerm</l3> ... <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 23.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 22.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 35.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 19.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 20.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 33.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 24.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 34.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 21.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 16.ElmTerm</l3>
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 08.ElmTerm</l3> 26.845403-332.030382j -18.761727+215.759844j -6.345177+ 88.832482j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 07.ElmTerm</l3> -18.761727+215.759844j 25.820552-323.995136j 0.000000+ 0.000000j 0.000000+ 0.000000j -7.058824+108.235291j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 05.ElmTerm</l3> -6.345177+ 88.832482j 0.000000+ 0.000000j 40.620747-549.006407j -4.863813+ 77.821008j -29.411758+382.352917j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 04.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j -4.863813+ 77.821008j 12.507556-201.817511j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 06.ElmTerm</l3> 0.000000+ 0.000000j -7.058824+108.235291j -29.411758+382.352917j 0.000000+ 0.000000j 46.805737-649.040329j 0.000000+37.383178j -10.335155+121.068943j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 31.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 37.383178j 0.000000-37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 11.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.335155+121.068943j 0.000000+ 0.000000j 32.622254-374.452477j -0.839376+22.820532j -21.447723+230.563002j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 12.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.839376+ 22.820532j 1.678752-45.641064j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 10.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j 0.000000+ 0.000000j 42.895446-507.854976j 0.000000+46.728972j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 32.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 46.728972j 0.000000-46.728972j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 13.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.839376+22.820532j -21.447723+230.563002j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 14.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.788984+ 77.222383j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 15.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.093079+105.416621j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 37.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 17.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.782937+111.668756j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 27.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 18.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 03.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.854758+ 46.774120j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 26.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 28.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 25.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 29.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 38.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 30.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 02.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 01.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 39.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 09.ElmTerm</l3> -1.738499+ 27.438056j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 36.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -0.675593+ 36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 23.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 8.949527-168.972606j -6.485084+103.761341j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.788850+ 28.458985j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 22.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -6.485084+103.761341j 10.553433-243.181896j 0.000000+68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.068349+ 71.196094j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 35.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 68.224461j 0.000000-68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 19.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 10.874921-184.781649j -3.458741+ 68.186611j -3.236561+65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.179618+ 50.939107j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 20.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.458741+ 68.186611j 6.204878-123.109328j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 33.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.236561+ 65.655932j 0.000000+ 0.000000j 3.236561-65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 24.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... -1.788850+ 28.458985j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 10.384839-197.513413j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.595989+169.054429j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 34.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+ 54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 2.746136-54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 21.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j -4.068349+ 71.196094j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 8.442563-145.010954j -4.374214+ 73.814860j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_where_tests_run.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 16.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.179618+ 50.939107j 0.000000+ 0.000000j 0.000000+ 0.000000j -8.595989+169.054429j 0.000000+ 0.000000j -4.374214+ 73.814860j 36.025837-510.893772j

39 rows × 39 columns

3.2 Connectivity (Adjacency) Matrix

The connectivity matrix (also called adjacency matrix) is a symmetric matrix that has entries \(1\) (or True) for connected nodes and \(0\) (or False) for nodes that are not connected.

ppi.get_connectivity_frame(net)
Bus 08 Bus 07 Bus 05 Bus 04 Bus 06 Bus 31 Bus 11 Bus 12 Bus 10 Bus 32 ... Bus 23 Bus 22 Bus 35 Bus 19 Bus 20 Bus 33 Bus 24 Bus 34 Bus 21 Bus 16
Bus 08 1 1 1 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 07 1 1 0 0 1 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 05 1 0 1 1 1 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 04 0 0 1 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 06 0 1 1 0 1 1 1 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 31 0 0 0 0 1 1 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 11 0 0 0 0 1 0 1 1 1 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 12 0 0 0 0 0 0 1 1 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 10 0 0 0 0 0 0 1 0 1 1 ... 0 0 0 0 0 0 0 0 0 0
Bus 32 0 0 0 0 0 0 0 0 1 1 ... 0 0 0 0 0 0 0 0 0 0
Bus 13 0 0 0 0 0 0 0 1 1 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 14 0 0 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 15 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
Bus 37 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 17 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
Bus 27 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 18 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 03 0 0 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 26 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 28 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 25 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 29 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 38 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 30 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 02 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 01 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 39 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 09 1 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 36 0 0 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 0 0
Bus 23 0 0 0 0 0 0 0 0 0 0 ... 1 1 0 0 0 0 1 0 0 0
Bus 22 0 0 0 0 0 0 0 0 0 0 ... 1 1 1 0 0 0 0 0 1 0
Bus 35 0 0 0 0 0 0 0 0 0 0 ... 0 1 1 0 0 0 0 0 0 0
Bus 19 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 1 1 0 0 0 1
Bus 20 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 1 0 0 1 0 0
Bus 33 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 1 0 0 0 0
Bus 24 0 0 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 1 0 0 1
Bus 34 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 1 0 0 1 0 0
Bus 21 0 0 0 0 0 0 0 0 0 0 ... 0 1 0 0 0 0 0 0 1 1
Bus 16 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 1 0 1 1

39 rows × 39 columns

To get boolean values instead of zero and one, use ppi.get_connectivity_frame(net, boolean=True).

4 Load Flow Jacobian

The load flow Jacobian matrix can be exported as well.

net._ppc["internal"]["J"].todense()
matrix([[  46.27299714,    0.        ,    0.        , ...,    0.        ,
            0.        ,    0.        ],
        [   0.        ,   45.49863821,    0.        , ...,    0.        ,
            0.        ,    0.        ],
        [   0.        ,    0.        ,   67.13959559, ...,    0.        ,
            0.        ,    0.        ],
        ...,
        [   0.        ,    0.        ,    0.        , ...,  205.55025042,
            0.        , -175.3811615 ],
        [   0.        ,    0.        ,    0.        , ...,    0.        ,
          148.2388436 ,  -76.28193549],
        [   0.        ,    0.        ,    0.        , ..., -174.4079501 ,
          -75.90390706,  526.3356963 ]], shape=(67, 67))

An explanation of the Jacobian matrix entries is provided in the pandapower tutorial that was mentioned above already.

5 Format Comparison

The dataformats of pandapower and PowerFactory are not fully compatible. An overview and functionality to rudimentary validate the exported data is presented in the following.

Remember the exported dataset in pandapower format:

net
This pandapower network includes the following parameter tables:
   - bus (39 elements)
   - load (19 elements)
   - gen (9 elements)
   - switch (92 elements)
   - ext_grid (1 element)
   - line (34 elements)
   - trafo (12 elements)
 and the following results tables:
   - res_bus (39 elements)
   - res_line (34 elements)
   - res_trafo (12 elements)
   - res_ext_grid (1 element)
   - res_load (19 elements)
   - res_gen (9 elements)
   - res_switch (92 elements)

There are a few things to consider here (not everything is relevant for this example):

  • bus considers all terminals, even those that are not energized
  • gen are PV-controlled generators (active power and voltage)
  • sgen are PQ-controlled generators
  • ext_grid are generators/external grids which act as slack buses
  • switch considers only breakers/switches for branches, i.e. between buses or between buses and branch elements like lines and transformers (i.e. switches connecting generators are not considered for example)

6 Validation

6.1 Using pandapower

pandapower has a function validate_pf_conversion (due to a bug in pandapower this function fails if load flow results are initially present) which compares load flow results and returns the differences.

from pandapower.converter.powerfactory.validate import validate_pf_conversion

try:
    act_prj.app.Hide()
    net = ppi.pf_project_to_pandapower()
    all_diffs = validate_pf_conversion(net)
finally:
    act_prj.app.Show()
all_diffs
numba cannot be imported and numba functions are disabled.
Probably the execution is slow.
Please install numba to gain a massive speedup.
(or if you prefer slow execution, set the flag numba=False to avoid this warning!)
{'gen_p_diff_is':            diff  p_mw_pp  p_mw_pf
 0  5.388387e-09    250.0    250.0
 1  4.945377e-09    540.0    540.0
 2  4.474373e-09   1000.0   1000.0
 3  4.093181e-09    650.0    650.0
 4  1.336514e-08    632.0    632.0
 5  5.883180e-09    508.0    508.0
 6  6.877826e-09    650.0    650.0
 7  5.005631e-09    830.0    830.0
 8  1.286480e-09    560.0    560.0,
 'gen_q_diff_is':            diff   q_mvar_pp   q_mvar_pf
 0 -1.990342e-06  146.158180  146.158178
 1  3.744761e-06    0.439923    0.439926
 2  3.910830e-07   88.281414   88.281415
 3  1.046724e-06  205.144370  205.144371
 4  2.652365e-06  109.905979  109.905981
 5 -3.168794e-06  165.763652  165.763649
 6  4.919206e-07  212.411826  212.411827
 7  1.547455e-06   22.841623   22.841625
 8  1.132399e-06  101.175009  101.175010,
 'diff_vm':             diff  vm_pu_pp  vm_pu_pf
 0   3.273640e-10  0.996020  0.996020
 1   3.792664e-10  0.997001  0.997001
 2   4.445253e-10  1.005311  1.005311
 3   3.405909e-10  1.003863  1.003863
 4   4.944176e-10  1.007672  1.007672
 6   5.642395e-10  1.012694  1.012694
 7  -5.276262e-10  1.000151  1.000151
 8   6.057370e-10  1.017151  1.017151
 9   4.730660e-13  0.983100  0.983100
 10  5.251630e-10  1.014307  1.014307
 11  3.384415e-10  1.011733  1.011733
 12  6.859069e-11  1.015384  1.015384
 13  2.709610e-12  1.027800  1.027800
 14  1.137666e-10  1.033555  1.033555
 15  2.069169e-10  1.037741  1.037741
 16  1.420395e-10  1.030931  1.030931
 17  1.683635e-10  1.030173  1.030173
 18  1.896130e-10  1.052075  1.052075
 19  8.532419e-11  1.050122  1.050122
 20  1.678044e-10  1.057568  1.057568
 21  9.517231e-11  1.049942  1.049942
 22  2.565725e-12  1.026500  1.026500
 23  2.665868e-12  1.047500  1.047500
 24  1.697908e-11  1.048736  1.048736
 25  5.274048e-11  1.047356  1.047356
 26  1.442624e-12  1.030000  1.030000
 27 -1.537583e-10  1.028226  1.028226
 28  1.286082e-12  1.063500  1.063500
 29 -3.145495e-10  1.044789  1.044789
 30 -3.624545e-10  1.049795  1.049795
 31  2.042588e-12  1.049300  1.049300
 32  2.106224e-10  1.049861  1.049861
 33  1.212996e-09  0.991177  0.991177
 34  2.887468e-12  0.997200  0.997200
 35 -9.434165e-11  1.037311  1.037311
 36  3.113954e-12  1.012300  1.012300
 37 -1.941558e-10  1.031760  1.031760
 38 -4.588552e-12  1.031774  1.031774,
 'diff_va':             diff  va_degree_pp  va_degree_pf
 0   1.304982e-07    -10.615381    -10.615381
 1   1.302315e-07    -10.123823    -10.123823
 2   1.289775e-07     -8.611863     -8.611863
 3   1.278345e-07     -9.606668     -9.606667
 4   1.286948e-07     -7.949683     -7.949683
 6   1.255758e-07     -6.284262     -6.284262
 7   1.161739e-07     -6.243642     -6.243642
 8   1.243239e-07     -5.427126     -5.427126
 9  -5.807802e-08      2.568960      2.568960
 10  1.254398e-07     -6.097718     -6.097718
 11  1.264527e-07     -7.656411     -7.656411
 12  1.247388e-07     -7.736092     -7.736092
 13  4.192848e-07      2.421107      2.421107
 14  1.232096e-07     -7.301286     -7.301285
 15  1.205033e-07     -7.495423     -7.495423
 16  1.239574e-07     -8.223858     -8.223858
 17  1.253273e-07     -8.598549     -8.598549
 18  1.186066e-07     -5.526725     -5.526725
 19  1.160292e-07     -2.014886     -2.014886
 20  1.186790e-07     -4.363392     -4.363391
 21  1.149743e-07      0.744355      0.744355
 22  2.239051e-07      7.807727      7.807727
 23  1.987250e-07     -3.333993     -3.333993
 24  1.261071e-07     -5.753762     -5.753762
 25  1.272867e-07     -8.438685     -8.438685
 26  1.284375e-07    -10.052962    -10.052961
 27  1.298370e-07    -10.321987    -10.321987
 28  1.555340e-07      8.322918      8.322918
 29  1.286402e-07      0.470028      0.470028
 30  1.290296e-07      0.668306      0.668306
 31  2.881648e-07      5.630054      5.630054
 32  1.243416e-07     -1.022768     -1.022768
 33  8.781482e-08     -2.014676     -2.014676
 34  4.317914e-08      4.194689      4.194689
 35  1.243799e-07     -6.067907     -6.067907
 36 -9.149473e-08      3.174992      3.174992
 37  1.254547e-07     -3.780534     -3.780534
 38  1.242053e-07     -6.187509     -6.187509,
 'line_diff': 0     5.486263e-08
 1     3.848433e-08
 2    -5.150163e-08
 3    -4.950159e-09
 4     2.555265e-08
 5     2.813952e-08
 6     4.895907e-08
 7     3.372672e-08
 8    -2.410916e-07
 9    -2.494211e-08
 10   -1.323969e-08
 11   -1.526541e-08
 12    1.335349e-08
 13   -7.175376e-08
 14   -3.785573e-09
 15   -3.613602e-08
 16   -3.060009e-07
 17    1.907268e-08
 18   -1.125297e-07
 19   -6.683092e-08
 20    4.926250e-08
 21   -3.236813e-08
 22   -2.751835e-08
 23    1.696872e-07
 24    5.957066e-08
 25   -9.428204e-08
 26   -2.416880e-07
 27   -2.474492e-08
 28   -1.238898e-07
 29   -3.017566e-08
 30    1.673648e-07
 31   -1.269707e-07
 32    2.066898e-08
 33    6.852896e-08
 dtype: float64,
 'trafo_diff': 0     1.519598e-07
 1     3.987861e-08
 2    -3.555783e-08
 3     4.051880e-08
 4    -1.647721e-08
 5    -1.595604e-07
 6     6.224103e-08
 7     2.759654e-08
 8     1.979967e-08
 9     3.799443e-09
 10    1.862631e-09
 11   -9.592349e-08
 dtype: float64,
 'load_p_diff_is': 0     0.000000e+00
 1    -5.684342e-14
 2    -2.842171e-14
 3     0.000000e+00
 4     0.000000e+00
 5     0.000000e+00
 6    -2.842171e-14
 7     5.684342e-14
 8     0.000000e+00
 9     0.000000e+00
 10    2.842171e-14
 11   -1.136868e-13
 12    0.000000e+00
 13   -8.881784e-16
 14   -1.136868e-13
 15    0.000000e+00
 16   -5.684342e-14
 17   -5.684342e-14
 18    0.000000e+00
 dtype: float64,
 'load_q_diff_is': 0     0.000000e+00
 1    -3.552714e-15
 2    -7.105427e-15
 3     0.000000e+00
 4     0.000000e+00
 5     0.000000e+00
 6     3.552714e-15
 7    -7.105427e-15
 8     0.000000e+00
 9     2.842171e-14
 10    1.421085e-14
 11   -5.684342e-14
 12    0.000000e+00
 13   -1.421085e-14
 14   -1.421085e-14
 15   -1.421085e-14
 16   -7.105427e-15
 17    2.842171e-14
 18    2.842171e-14
 dtype: float64,
 'ext_grid_p_diff': 0    6.027556e-07
 dtype: float64,
 'ext_grid_q_diff': 0    0.000001
 dtype: float64}

6.2 Using powfacpy

powfacpy offers a rudimentary validation of the exported dataset focusing only on data relevant for the admittance matrix. It is assumed that the currently active project in PowerFactory was used for the export. We can check the difference between both datasets by using get_difference_between_pf_and_pandapower_dataset.

We artificially set (and later undo) a deviation in the pandapower dataset here. A Dataframe with the divergent parameters is returned.

from pandas import DataFrame

try:
    pf_app.Hide()
    net["bus"].loc[0, "vn_kv"] = net["bus"].loc[0, "vn_kv"] + 1

    divergent_parameters = ppi.get_difference_between_pf_and_pandapower_dataset(net)
    net["bus"].loc[0, "vn_kv"] = net["bus"].loc[0, "vn_kv"] - 1

finally:
    pf_app.Show()

divergent_parameters
name pf_class pp_parameter pf_value pp_value
0 Bus 08 ElmTerm vn_kv 345.0 346.0

get_difference_between_pf_and_pandapower_dataset assumes default settings for the units in the PowerFactory project (see *Settings).

As mentioned, only a subset of classes and parameters is validated. The following mapping is used:

ppi.get_pandapower_2_pf_class_mapping()
{'bus': ['ElmTerm'],
 'line': ['ElmLne'],
 'trafo': ['ElmTr2', 'ElmTr3'],
 'impedance': ['ElmZpu', 'ElmSind']}

The parameter mapping is defined in get_pandapower_2_pf_parameter_mapping. It is best understood by looking at the source code and we use python’s inspect module to print the method. The mapping is either between the pandapower parameter strings or between a pandapower* parameter string and and a callable with the PowerFactory object as argument and returning the parameter value (used for example to get parameters from the type object).

import inspect

print(f"{inspect.getsource(ppi.get_pandapower_2_pf_parameter_mapping)}")
    def get_pandapower_2_pf_parameter_mapping(
        self,
    ) -> dict[str, dict[str, str | Callable]]:
        """Get parameter mapping between pandapower and PowerFactory.

        Only a small subset of all the parameters is currently implemented.

        Returns:
            dict[str, dict[str, str | Callable]]: For each pf class, a mapping between the pandapower and the pf parameter is provided. The pf parameter can be a string or a callable (input is the pf object; used for example to access a parameter of the type).
        """
        return {
            "ElmTerm": {
                "vn_kv": "uknom",
            },
            "ElmLne": {
                "length_km": "dline",
                "parallel": "nlnum",
                "r_ohm_per_km": lambda x: x.typ_id.rline,
                "x_ohm_per_km": lambda x: x.typ_id.xline,
                "c_nf_per_km": lambda x: x.typ_id.cline
                * 1000  # from micro to nano
                * x.typ_id.frnom  # nominal frequency is adapted to 50 Hz by pandapower
                / 50.0,
                "g_us_per_km": lambda x: x.typ_id.gline,
            },
            "ElmTr2": {
                "sn_mva": lambda x: x.typ_id.strn,
                "parallel": "ntnum",
                "vn_hv_kv": lambda x: x.typ_id.utrn_h,
                "vn_lv_kv": lambda x: x.typ_id.utrn_l,
                "vk_percent": lambda x: x.typ_id.uktr,
                "vkr_percent": lambda x: x.typ_id.uktrr,
            },
            "ElmTr3": {
                "parallel": "nt3nm",
                "sn_hv_mva": lambda x: x.typ_id.strn3_h,
                "sn_mv_mva": lambda x: x.typ_id.strn3_m,
                "sn_lv_mva": lambda x: x.typ_id.strn3_l,
                "vn_hv_kv": lambda x: x.typ_id.utrn3_h,
                "vn_mv_kv": lambda x: x.typ_id.utrn3_m,
                "vn_lv_kv": lambda x: x.typ_id.utrn3_l,
                "vk_hv_percent": lambda x: x.typ_id.uktr3_h,
                "vk_mv_percent": lambda x: x.typ_id.uktr3_m,
                "vk_lv_percent": lambda x: x.typ_id.uktr3_l,
                "vkr_hv_percent": lambda x: x.typ_id.uktrr3_h,
                "vkr_mv_percent": lambda x: x.typ_id.uktrr3_m,
                "vkr_lv_percent": lambda x: x.typ_id.uktrr3_l,
            },
            "ElmZpu": {
                "sn_mva": "Sn",
                "rft_pu": "r_pu",
                "xft_pu": "x_pu",
            },
            "ElmSind": {
                "sn_mva": "Sn",
                "rft_pu": lambda x: (x.rrea * x.Sn) / (x.ucn**2),
                "xft_pu": lambda x: (x.xrea * x.Sn) / (x.ucn**2),
            },
        }
Back to top