Skip to content
Open
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3103e9a
similarity search
lezneew Oct 8, 2025
b26a7d4
similarity search v2
lezneew Oct 8, 2025
dbe59ee
similarity search working
lezneew Oct 9, 2025
863f4df
extended similarity search for table columns
lezneew Oct 15, 2025
614b0e5
refactored code. added documentation
lezneew Oct 15, 2025
c07d5e7
Merge remote-tracking branch 'origin/JAO-converter' into JAO-converter
lezneew Oct 15, 2025
4f05829
refactored code
lezneew Oct 15, 2025
bc9ca00
refactored code
lezneew Oct 15, 2025
0bda73d
[CHANGED] refactored typing
lezneew Oct 16, 2025
4342fd1
[FIXED] potential regex backtracking
lezneew Oct 16, 2025
847e5b7
[FIX] Regex backtracking
lezneew Oct 23, 2025
9438296
Refactored Code
lezneew Oct 23, 2025
31f6c55
Refactored Code
lezneew Oct 23, 2025
5e38dc6
Merge branch 'develop' into JAO-converter
lezneew Oct 23, 2025
7baadbe
[Fix] regex
lezneew Oct 23, 2025
5675cce
Merge remote-tracking branch 'origin/JAO-converter' into JAO-converter
lezneew Oct 23, 2025
7214e70
Merge branch 'develop' into JAO-converter
lezneew Oct 28, 2025
99798a8
refactored code
lezneew Oct 28, 2025
78b5eae
moved helper functions for norm. of strings and fuzzy matching to new…
lezneew Oct 29, 2025
e9e9008
Copyright added to utils.py
lezneew Oct 29, 2025
3509842
Merge branch 'develop' into JAO-converter
lezneew Oct 29, 2025
04670d7
[ADDED] mapping between JAO and pp documentation
lezneew Nov 5, 2025
7d41c1e
Merge branch 'develop' into JAO-converter
lezneew Nov 5, 2025
293be8d
[FIXED] test
lezneew Nov 5, 2025
d33f195
Merge remote-tracking branch 'origin/JAO-converter' into JAO-converter
lezneew Nov 5, 2025
7d6636d
[FIXED] newest JAO release had non-connecting lines and typing issues…
lezneew Nov 5, 2025
e8d1632
Merge branch 'develop' into JAO-converter
lezneew Dec 3, 2025
04c517e
-sphinx documentation refactored from numpy notation,
lezneew Dec 4, 2025
32987c1
Merge remote-tracking branch 'origin/JAO-converter' into JAO-converter
lezneew Dec 4, 2025
c5b8dd4
Rework of jao converter, to be more readable and maintainable.
vogt31337 Jul 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Change Log

[upcoming release] - 2025-..-..
-------------------------------
- [CHANGED] from_jao: converter now uses fuzzy matching with difflib module to find matching buses instead of as well as table column names if they are inconsistent between files. Added mapping to jao.rst
- [FIXED] julia implementation, now using juliacall
- [CHANGED] diagnostics restructured for better extensibility
- [FIXED] implausible impedance test results never showing in report
Expand Down
29 changes: 29 additions & 0 deletions doc/converter/jao-converter.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
pandapower table,pandapower column,JAO sheet,JAO column (typical, variants),Transformation/notes
net.line,from_bus,"Lines, Tielines",Substation_1 / Full Name + Voltage_level(kV),Matched to an existing bus by name and VN, fuzzy name normalization applied.
net.line,to_bus,"Lines, Tielines",Substation_2 / Full Name + Voltage_level(kV),Matched to an existing bus by name and VN, fuzzy name normalization applied.
net.line,length_km,"Lines, Tielines",Electrical Parameters / Length_(km),"If 0 or NaN, set to 1 km (with log warning)."
net.line,r_ohm_per_km,"Lines, Tielines","Electrical Parameters / Resistance_R(Ω) or (""resistance r ohm"")",Total R divided by Length (km).
net.line,x_ohm_per_km,"Lines, Tielines","Electrical Parameters / Reactance_X(Ω) or (""reactance x ohm"")",Total X divided by Length (km).
net.line,c_nf_per_km,"Lines, Tielines","Susceptance_B(μS) (or ""Susceptance_B (µS)"")",B_total/Length (km) is passed into c_nf_per_km (units μS/km)
net.line,g_us_per_km,-,-,Not set (no JAO line conductance column used), defaults to 0 in pandapower.
net.line,max_i_ka,"Lines, Tielines",Maximum Current Imax (A) / Fixed,"Converted A to kA, if missing, filled with max_i_ka_fillna."
net.line,parallel,-,-,Not provided by JAO - defaults to 1.
net.line,df,-,-,Not provided by JAO - defaults to 1.
net.line,in_service,-,-,Not provided by JAO - defaults to True.
net.bus,vn_kv,"Lines, Tielines","Voltage_level(kV) (Voltage_level (kV), Voltage_level [kV])",Numeric conversion
net.bus,in_service,-,-,"Not provided by JAO, defaults to True."
net.transformer,hv_bus,Transformers + Buses,Location / Full Name + Primary/Secondary Voltage,"High-voltage side bus index. Location matched to existing bus at required VN, if no exact VN, nearest VN at location is used or a new bus is created (per converter rules)."
net.transformer,lv_bus,Transformers + Buses,Location / Full Name + Primary/Secondary Voltage,"Low-voltage side bus index, analogous to hv_bus. Ensured hv_bus != lv_bus (LV duplicated if necessary)."
net.transformer,sn_mva,Transformers,Maximum Current Imax (A) primary (Fixed/Max) + VN,Rated apparent power [MVA]. Computed: sn_mva = √3 · Imax_primary(A) · vn_hv_kv(kV) / 1e3. Falls back to “Max” or global fill if Fixed is missing.
net.transformer,vn_hv_kv,Transformers,Voltage level Primary/Secondary,"Rated HV voltage [kV], vn_hv_kv = max(Primary, Secondary)."
net.transformer,vn_lv_kv,Transformers,Voltage level Primary/Secondary,"Rated LV voltage [kV], vn_lv_kv = min(Primary, Secondary)."
net.transformer,vk_percent,Transformers,resistance r ohm, reactance x ohm,"Short-circuit voltage [%], compute per-unit r_k = R_ohm/z_base, x_k = X_ohm/z_base with z_base = vn_lv_kv²/s_n, vk% = sign(x_k)·√(r_k² + x_k²)·100."
net.transformer,vkr_percent,Transformers,resistance r ohm,Real component of short-circuit voltage [%], vkr% = r_k·100 (same base as vk%).
net.transformer,pfe_kw,Transformers,conductance g (μS),"Iron losses [kW], pfe_kw = g0 · sn_mva · 1e3, where g0 is per-unit conductance from G (μS)."
net.transformer,i0_percent,Transformers,"susceptance b (μS), conductance g (μS)","No-load current [%], i0% = 100 · √(b0² + g0²) · (system sn_mva) / sn_mva, b0,g0 from B,G (μS) on transformer base."
net.transformer,shift_degree,Transformers,theta degree,"Phase shift angle [deg], default 0 if missing."
net.transformer,in_service,-,-,"Not provided by JAO, defaults to True."
net.transformer,oltc,-,-,Optional in create_transformer_from_parameters. Defaults to False
net.transformer,power_station_unit,-,-,"Not provided by JAO, defaults to False."
net.transformer,leakage_resistance_ratio_hv,-,-,Ratio of transformer short-circuit resistance allocated on HV side (default 0.5).
net.transformer,leakage_reactance_ratio_hv,-,-,Ratio of transformer short-circuit reactance allocated on HV side (default 0.5).
9 changes: 9 additions & 0 deletions doc/converter/jao.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,16 @@

The ``from_jao`` function allows users to convert the Static Grid Model provided by JAO (Joint Allocation Office) into a pandapower network by reading and processing the provided Excel and HTML files.

The table below shows the mapping of the JAO columns to pandapower parameters necessary for executing a balanced power flow calculation.

.. tabularcolumns:: |p{0.15\linewidth}|p{0.15\linewidth}|p{0.10\linewidth}|p{0.25\linewidth}|p{0.35\linewidth}|
.. csv-table:: JAO - pandapower mapping
:file: jao-converter.csv
:delim: ,
:quote: "
:header-rows: 1
:widths: 15, 15, 10, 25, 35
Function Overview

Check warning on line 15 in doc/converter/jao.rst

View workflow job for this annotation

GitHub Actions / Sphinx docs check

Explicit markup ends without a blank line; unexpected unindent. [docutils]
-----------------

.. autofunction:: pandapower.converter.jao.from_jao
Loading
Loading