Releases: e2nIEE/pandapower
pandapower 3.3.0 ☃️
[3.3.0] 2025-12-16
- fix missed dict constructors by @heckstrahler in #2742
- Update of Versions by @vogt31337 in #2743
- fix value in method documentaion for sn_mva in create_empty_network by @heckstrahler in #2746
- Adaptions due to geojson change by @KS-HTK in #2671
- Function that plots groups of buses in a pandapower net by @Researcher-Retorta in #2229
- [ADDED] cim2pp: additional info about referencePrios, modes and targetValues for ext_grid / gen / sgen by @mrifraunhofer in #2751
- cim2pp: fixed using the trafo characteristics for the correct tap changer at 2w trafos by @mrifraunhofer in #2753
- Cim2pp docu import fix by @heckstrahler in #2757
- removed converter module from base import by @KS-HTK in #2756
- Create functions refactored by @KS-HTK in #2754
from_cimparameterfile_listcan also be a string by @kornerc in #2759- cim2pp: extracting the additional info about referencePrios, modes and targetValues for ext_grid / gen / sgen by @mrifraunhofer in #2758
- cim2pp: extracting the additional info about referencePrios, modes and targetValues for ext_grid / gen / sgen by @mrifraunhofer in #2762
- Fix: Line loading colorbar not showing in plot generated by pf_res_plotly by @Dosclic98 in #2763
- cim2pp: added EquipmentContainer to BusbarSection and Junction, added max and min p to sgen, updated schemas by @mrifraunhofer in #2766
- fixed incorrect function call due to duplicate definition of function by @KS-HTK in #2768
- Fix Convert_CRS by @furqan463 in #2764
- increase readabillity in io_utils by @heckstrahler in #2770
- Feature/create transformers by @KS-HTK in #2769
- improve readabillity in toolbox and corresponding tests by @heckstrahler in #2771
- Feature/1917 improved imports again by @KS-HTK in #2765
- replaced insecure use of tagged version/branches with commit sha by @KS-HTK in #2774
- Endless recursion fix by @KS-HTK in #2773
- fix partial load pf import by @hilbrich in #2775
- Diagnostic readabillity by @heckstrahler in #2776
- fix converter import in runpm by @heckstrahler in #2777
- Converter init import fix by @heckstrahler in #2778
- fix cim2pp import in docu and tutorial by @heckstrahler in #2780
- Feature/sonarcube improvements by @KS-HTK in #2779
- Issues/docs errors line by @KS-HTK in #2786
- Fix for sonarcube warnings in cim converter by @KS-HTK in #2784
- Added epsilon on the leakage resistance/reactance during powerfactory… by @hilbrich in #2781
- pandera schemata by @heckstrahler in #2717
- improved loading of std_types from excel by @KS-HTK in #2792
- cim2pp: added ratedCurrent as in_ka to switch by @mrifraunhofer in #2793
- Diagnostic Imporvements by @KS-HTK in #2794
- cim2pp: added CurrentLimit values and OperationalLimitType to trafo and trafo3w by @mrifraunhofer in #2795
- Fixed impedance measurement input for station controller and added a … by @hilbrich in #2782
- fixed simbench logo link by @KS-HTK in #2799
- Q limits for station controller & adjustments in PF2pp converter by @pawellytaev in #2668
- update pandera schemata by @heckstrahler in #2807
- added warning to doc by @KS-HTK in #2815
- Weighted Marker Legend Scaling by @KS-HTK in #2814
- omitting certain tables when loading a json by @SimonRubenDrauz in #1634
- 1196/3ph not used parameter by @heckstrahler in #2816
- remove not used get isolated from test rundcpp by @heckstrahler in #2820
- Add pf zone area by @hilbrich in #2801
- fix typo in ieee_european_lv_asymmetric by @heckstrahler in #2821
- Check Droop convergence befor terminating BSC by @MMatthiessen in #2806
- support load_case_engine by @yasirroni in #2606
- Improved Diagnostics structure by @KS-HTK in #2802
- update of julia interface from pycall to juliacall by @vogt31337 in #2749
- fix pg port not used in from_postgres() by @HaiQ31 in #2826
- Feature/q capability curves in station controller by @pawellytaev in #2797
- repaired a lookup error by @vogt31337 in #2835
Full Changelog: v3.2.1...v3.3.0
pandapower 3.2.1
Hotfix for changelog and lxml dependency
pandapower 3.2.0
[3.2.0] - 2025-10-08
[CHANGED] Plotly is switching from mapbox to maplibre. This was also changed in our plotting functions.
[FIXED] Fixed res_trafo_3ph, including converter since it was wrong in code and did not adhere to documentation: 'p_a_l_mw' is now 'pl_a_mw', same for ql and all phases.
[FIXED] Fixed res_line_3ph, including converter since it was wrong in code and did not adhere to documentation: 'p_a_l_mw' is now 'pl_a_mw', same for ql and all phases.
[FIXED] Transformer Phase shift in negative sequence is reversed.
[FIXED] Transformer LV currents in result table are now taken from ppc isntead of adding load currents, as transformers are no more out-of-service in zero sequence
[FIXED] In zero-sequence transformers are no more out-of-service, but having very large impedance
[FIXED] Zero-Sequence parameters of traformers added to "branch" in ppc instead of bus for loadflow
[FIXED] Added "p_c_mw" attribute in res_line_3ph in network_structure.py
[ADDED] pf2pp: ElmLodlvp partial loads in lv loads inkl. night heat storage is implemented for conversion to pp
[ADDED] Station Controller for local voltage control with droop, adjusted powerfactory import
[FIXED] Case5 tests, now the calculated values are compared to results from powerfactory
[FIXED] FACTS tests through restructuring all of the tests
[ADDED] Load_dc and Source_dc, which represent a conventional load and a generator in dc
[ADDED] DMR controller, which calculates the current on metallic return lines
[ADDED] Back2Back VSC converter, including extensive tests
[FIXED] Setting the correct Dtype in io_utils for sql databases
[ADDED] std_types as a dict to be fetched from the network_structure
[ADDED] Station controller support for measurements on trafo3w and impedance
[CHANGED] Station controller with measurements at switches: added a topological search to find nearby line or transformer and relocated measurement to avoid small impedances on switches
[FIXED] Station controller bug with Q(U) (wrong sign in equation for droop calculation)
[ADDED] python: support for version 3.13 added to the test pipelines
[FIXED] create_buses_dc: incorrect handling of geodata
[ADDED] postgresql: support for setting a port for the connection
[FIXED] ensure proper handling of indent parameter for PPJSONEncoder, fixing compatibility with Python3.13
[FIXED] Case5 tests, now the calculated values are compared to results from powerfactory
[FIXED] FACTS tests through restructuring all of the tests
[ADDED] Load_dc and Source_dc, which represent a conventional load and a generator in dc
[ADDED] DMR controller, which calculates the current on metallic return lines
[ADDED] Back2Back VSC converter, including extensive tests
[ADDED] description for slack argument in docstring of create_gen function
[FIXED] pf2pp: dc-lines geodata error is fixed, outdated line_dc_geodata field replaced by newer geo-column
[FIXED] pf2pp: zip load import error fixed by replacing unknown ga() function with actual GetAttribute-function
[FIXED] pf2pp: Ipython tutorial converter_powerfactory import statements (pf) corrected by directly importing powerfactory as pf
[ADDED] pf2pp: Ipython tutorial converter_powerfactory now has additional text description and uses a standard 14-bus network example network
[REMOVED] kwargs in basic controller class
[ADDED] name attribute in basic controller class
[FIXED] remove print statement from results_bus.py
[FIXED] cim2pp: Make sure that the controllable flag is never nan for any generators
[FIXED] saturate_sn_mva parameter in DER controller
[CHANGED] move pandapower network pandas structure dict from create_empty_network to its own file
[FIXED] cim2pp: use pandapower network pandas structure dict to set needed dtypes instead of hardcoded values
[ADDED] cim2pp: export trafo tap_step_degree parameter
[ADDED] cim2pp: export trafo tap changer parameters for trafos with two tap changers
[CHANGED] renamed q_capability_curve_characteristic to q_capability_characteristic to fix the 31 character length limit from Excel
[ADDED] added documentation for q_capability_characteristic and q_capability_curve_table DataFrames in the pandapower net
[FIXED] cim2pp: add GeneratingUnit to SSH profile, add new cim16 schema
[FIXED] issue on case9 grid: Missing columns id_characteristic_table and step_dependency_table at shunt leading to errors when adding them
[CHANGED] separate voltage dependencies for P and Q for loads: const_z_percent --> const_z_p_percent, const_z_q_percent, const_i_percent --> const_i_p_percent, const_i_q_percent
[FIXED] fixed convert_format for missing information (in gen, sgen, shunt) and tables (q_capability_characteristic, q_capability_curve_table, id_characteristic_table, step_dependency_table)
[ADDED] added tests for q_capability_curve_table in cim2pp and convert_format.py for format_version 3.1.0
[FIXED] deserialising q_capability_characteristic in from_excel and added test for it
[FIXED] make network structure more accessible, including needed adaptation in pandapowerNet constructor
[FIXED] cim2pp: add more dtype parameters, fix some tests
[FIXED] convert_format fix check when net version is below format version
[FIXED] json io test with new network structure dict
[FIXED] DC OPF bug if verbose = True
[CHANGED] cim2pp conversion of SVC parameter active power: p is set to 0, instead of using the p-value from the SV-profile
[ADDED] Parellel contingency analysis using multiple cores through a multiprocessing worker pool
[Changed] DC-line mode to handle negative values in 2 different ways, inversing the line direction or considering powerflow always to correlate with the given from_bus
[FIXED] type annotations in create methods
[CHANGED] drop_inactive_elements performance improvements: using pandas methods instead of looping
[ADDED] add a few more tests for the grid modification functions
[FIXED] cim2pp: minor speed increase through faster dict creation and removal of not needed .keys() call
[Fixed] JAO converter: rename_locnames table updated to suit newest JAO network, _multi_str_repl function was refactored
[CHANGED] file_io.to_json: allow passing through sort_keys argument
[FIXED] create.py: remove needlessly slow dict(zip) constructs in favor of fast literal dict creation, some other small code refactoring
[ADDED] cim2pp: new shema files, added Junctions and shorcuts for busbars
[FIXED] create.pu set_multiple_entries remove not needed dict translation
pandapower 3.1.2
[3.1.2] - 2025-06-16
- [ADDED] iteration count for convergence as an output dict parameter
- [FIXED] pf2pp converter - corrected consideration of line temperature during import
- [FIXED] corrected create_continuous_elements_index to consider trafo_characteristic_tables correctly
- [FIXED] pp control - handle NaN in 'enabled' column when computing 'controlEnabled' to ensure safe boolean evaluation
- [FIXED] State Estimation: optimized SE code to minimize RAM usage
- [FIXED] State Estimation: optimized SE code to speed-up calculations
- [FIXED] State Estimation: converted internal matrices into sparse for better performance
- [FIXED] State Estimation: changed Jacobian creation to avoid useless computations for not existing measurements
- [ADDED] State Estimation: introduced option to run state estimation in debug mode and print relevant information during WLS iterations
- [FIXED] State Estimation: optimized merge computations for multiple measurements at the same element
- [ADDED] State Estimation: introduced multiple options for automatic creation of zero injection measurements
- [FIXED] State Estimation: fixed bugs with AF-WLS estimator
- [FIXED] State Estimation: fixed bugs with automatic test creation
pandapower 3.1.1
[3.1.1]
- [HOTFIX] digital attestation url was wrong
[3.1.0] - 2025-05-26
- [ADDED] pf2pp converter - import of shunt characteristic tables
- [ADDED] pf2pp conversion by considering tap dependent impedance
- [FIXED] cim2pp converter - set sgen 'controllable' flag as False when converting energySources to avoid ValueError when executing create_sgen
- [ADDED] PF2PP conversion by considering tap dependent impedance
- [ADDED] pf2pp converter - added columns origin_id in multiple equipment (ext_net, coup, load, (s)gen, shunts, zpu, vac, svc)
- [FIXED] pf2pp converter - trafo characteristic: Fixed tap changer type and included an if-clause that removes the zero sequence components in measurement report (for now)
- [FIXED] corrected implementation of tap changer at star point with tap changer tables
- [ADDED] cim2pp converter - extract 'controlenabled' flag from CGMES SSH profile and populate 'controllable' flag for gen and sgen elements
- [ADDED] add function to determine qmin and qmax based on current active power in build_gen and update the dataframe with the determined values
- [ADDED] parameter include_type_id to dump_to_geojson, to produce geojson features without the pp_index and pp_type field
- [FIXED] added a fix which hinders selection of a subsection of busses for plotting
- [ADDED] cim2pp converter - additional column "EquipmentContainer_id" in line table
- [ADDED] cim2pp: add tests for buses and switches for node breaker test net, add node breaker test net to CGMES folder
- [FIXED] DC loadflow after AC loadflow, had ambiguous results still present in net
- [ADDED] add three columns: id_q_capability_curve_table, reactive_capability_curve, curve_style in gen and sgen
- [ADDED] create q capability curve characteristics and diagnostics function
- [ADDED] cim2pp converter - import reactive power capability curve data synchronousMachinesCim16.py
- [ADDED] cim2pp converter - export parameter "governorSCD" in additional column in gen table
- [FIXED] a problem with create_nxgraph
- [ADDED] parameter slack_as_gen for from_ucte() converter (changed the default behavior)
- [FIXED] cim2pp: the ignore_errors parameter was not respected in the CimParser
- [FIXED] cim2pp: keep the busbar names and IDs for node breaker and bus branch models
- [FIXED] cim2pp: extend cim data structure with missing parameters
- [FIXED] cim2pp: better vector group assignment
- [FIXED] cim2pp: refactor cim2pp test
- [FIXED] cim2pp: manage crash when importing not supported dy profile
- [ADDED] cim2pp: add tests for short circuit parameters
- [ADDED] ucte2pp: consider G&B values in impedances
- [ADDED] cim2pp: add normalSections for shunts at CIM100 and removed old schema
- [ADDED] cim2pp: add DCLine component to cim16 and cim100 datastructures
- [FIXED] cim2pp: fix deprecation warning in cim_classes.py and fix bug in measurements
pandapower 3.0.0
[3.0.0] - 2025-03-06
• [ADDED] A switch to disable updating the vk and vkr values for trafo3w
• [ADDED] Add GeographicalRegion and SubGeographicalRegion names and ids to bus df in cim converter
• [ADDED] Add VSC element, dc buses, dc lines, and hybrid AC/DC power flow calculation
• [ADDED] added support for converting cgmes v3.0
• [ADDED] added support for reading cgmes v3.0 files
• [ADDED] API function rename_std_type()
• [ADDED] cim2pp converter - added tap changer type classification for trafo and trafo3w elements
• [ADDED] cim2pp converter - export NonlinearShuntCompensatorPoint values for shunt elements
• [ADDED] cim2pp converter - extract measurements for load, sgen, gen, shunt, ext_grid, ward and xward elements
• [ADDED] cim2pp converter - extract 'Terminal' and 'description' Analog fields in net.measurement
• [ADDED] cim2pp converter: Using lxml to parse XML files (better performance)
• [ADDED] Computation of matrix conditioning and warning in case of ill-conditioning
• [ADDED] converter for European EHV grid data from JAO, the "Single Allocation Platform (SAP) for all European Transmission System Operators (TSOs) that operate in accordance to EU legislation"
• [ADDED] converter for European EHV grid data from JAO, the "Single Allocation Platform (SAP) for all European Transmission System Operators (TSOs) that operate in accordance to EU legislation"
• [ADDED] Created estimation results for shunt elements
• [ADDED] creating series capacitor added in pf to pp converter
• [ADDED] DERController with multiple options to define DER reactive power provision depending on P and V
• [ADDED] Discrete shunt controller for local voltage regulation with shunt steps
• [ADDED] extend plotly draw traces: add trace kwargs, e.g. visibility="legendonly" to not show the trace by default
• [ADDED] extend plotly draw traces: if filename=None, no HTML will be created and just a ploty.Figure object is returned
• [ADDED] extend plotly function: add zoomlevel-parameter, dash-lines and hvdc lines
• [ADDED] fix lengths missmatch of output if ignore_zero_length is False in plotting utility function coords_from_node_geodata() and rename ignore_zero_length by ignore_no_geo_diff
• [ADDED] geodata to geojson converter
• [ADDED] id_characteristic_spline optional variable for shunt elements
• [ADDED] id_characteristic_spline optional variable for trafo and trafo3w elements
• [ADDED] id_characteristic_table variable for shunt elements
• [ADDED] Implementation of Allocation Factor WLS (AF-WLS) for non observable distribution grids
• [ADDED] improved lightsim2grid documentation including compatibility issues
• [ADDED] low voltage grid Schutterwald
• [ADDED] pandas series accessor for geo column
• [ADDED] pf2pp: min/max q_mvar and min/max p_mw limits for sgens and gen will be converted
• [ADDED] pf2pp: min/max q_mvar and min/max p_mw limits for sgens and gen will be converted
• [ADDED] PowerFactory converter: option to export lines with sections as a single line with averaged-out impedance, or export line sections as separate individual lines
• [ADDED] PowerFactory converter: support load types (constI, constZ) and the setting whether to consider voltage dependency of loads
• [ADDED] shunt components G and B for impedance elements, also supports unequal G and B parameters for from and to bus
• [ADDED] shunt_characteristic_spline table
• [ADDED] shunt_characteristic_table lookup table for step dependent values for shunt elements
• [ADDED] Static Var Compensator with Voltage Control
• [ADDED] Static Var Compensator with Voltage Control
• [ADDED] station controller functionality with voltage and reactive power control with and without droop and pf import support
• [ADDED] step_dependency_table flag for shunt elements
• [ADDED] support for unequal leakage resistance and reactance for HV and LV sides of a 2W-transformer
• [ADDED] switch results p and q
• [ADDED] tap_changer_type variable for net.trafo and net.trafo3w tables (supporting "Ratio", "Symmetrical", "Ideal" and "Tabular" tap changer types)
• [ADDED] the possibility to have unequal values for branch G and B for from and to buses by means of new columns in ppc['branch'] BR_B_ASYM and BR_G_ASYM
• [ADDED] transformer tap hunting detection for DiscreteTapControl
• [ADDED] UCTE-DEF (UCTE Data Exchange Format) converter
• [CHANGED] accelerate _integrate_power_elements_connected_with_switch_buses() in get_equivalent()
• [CHANGED] accelerate distributed slack power flow calculation by using sparse-aware operations in _subnetworks()
• [CHANGED] Capitalize first letter of columns busbar_id, busbar_name and substation_id in bus df for cim converter
• [CHANGED] cim converter: Avoid huge logging output when ignore_errors = True
• [CHANGED] cim data structure method in cim converter changed to blueprint approach
• [CHANGED] cim parser: Refactor parse source file method
• [CHANGED] cim2pp converter - removed default creation of trafo spline characteristics
• [CHANGED] considering trafo controller and improve implementation for other (bus element) controller at grid_equivalent creation
• [CHANGED] create consistent parameter names (element and element_index) in controllers -> Changes for TrafoController: trafotable & trafotype -> element, tid -> element_index
• [CHANGED] dataframes_equal adapted to properly compare geojson data
• [CHANGED] diagnostic for implausible impedance values includes xward, trafo, trafo3w
• [CHANGED] dump_to_geojson now requires the geodata to be present in the geo column of a network (see :code:convert_geodata_to_geojson)
• [CHANGED] e2n logo and naming is updated due to its official renaming
• [CHANGED] geopandas version to >= 1.0
• [CHANGED] grid_equivalent creation: improved consideration of controller
• [CHANGED] in to_ppc(), the default of calculate_voltage_angles is True now (as in previously changed in runpp()).
• [CHANGED] inf to np.full(...) with value inf for array operations in pypower folder
• [CHANGED] minor changes to the example networks (mainly added names to identify them in tests)
• [CHANGED] node existence check for multiple branch elements from mixed array and set operations to set operations only
• [CHANGED] parameter renaming in net.group: element -> element_index
• [CHANGED] plotting for voltage profile considers also gens that are slacks and only ext_grids and slack gens that are in service
• [CHANGED] PowerFactory converter has workarounds for implausible impedance values
• [CHANGED] renamed characteristic table to trafo_characteristic_spline table and changed its structure so that there is one row with all spline characteristic objects per trafo/trafo3w
• [CHANGED] renamed characteristic_temp lookup table to trafo_characteristic_table for trafo and trafo3w elements
• [CHANGED] renamed id_characteristic variable to id_characteristic_table for trafo and trafo3w elements
• [CHANGED] renamed tap_dependent_impedance flag to tap_dependency_table for trafo and trafo3w elements
• [CHANGED] required standard type parameters are made available by function :code:required_std_type_parameters()
• [CHANGED] split BR_B in ppc['branch'] (complex number) into BR_B and BR_G, BR_G is added as a new column, ppc['branch'] dtype changed to float64
• [CHANGED] switched from setup.py to pyproject.toml
• [CHANGED] toolbox replace functions (e.g. gen replacement by sgens): improved result table implementation and added profiles consideration
• [CHANGED] Trafo Controllers can now be added to elements that are out of service, changed self.nothing_to_do()
• [CHANGED] trigger a numpy error in makeYbus, makeBbus, _wye_delta instead of warning
• [CHANGED] update most geodata dependant functions to use geo column
• [CHANGED] updated MANIFEST.in to exclude the ci files from the wheel distribution
• [CHANGED] updated PowerFactory to pandapower converter to export measurement reports and reflect changes in trafo/trafo3w tap changer logic
• [CHANGED] updated simple_plot to use geojson data instead of bus_geo and line_geo
• [CHANGED] updated upload_release.py to install the uploaded package and print the version
• [CHANGED] updated upload_release.py to not call setup.py anymore (see https://packaging.python.org/en/latest/discussions/setup-py-deprecated/)
• [CHANGED] use of bus_geodata and line_geodata tables to geo column in bus and line table
• [CHANGED] vectorization of switch bus and element checks in create_switches()
• [CHANGED] vectorization of y_bus reordering in _calculate_equivalent_Ybus() within get_equivalent()
• [FIXED] Allow to consider all oos components in nx graph creation
• [FIXED] avoid duplicated keys in kwargs and pf_options in run_contingency()
• [FIXED] cast the column to the correct type before assigning values
• [FIXED] cim2pp add missing description to dcline
• [FIXED] cim2pp converter - correctly populate step, max_step and q_mvar / p_mw values per step for shunt elements
• [FIXED] cim2pp converter - correctly populate tap_step_degree and shift_degree variables for trafo and trafo3w elements
• [FIXED] cim2pp converter - removed nan rows in net.measurement
• [FIXED] cim2pp: fixed missing nominal voltages at SeriesCompensator
• [FIXED] cim2pp: set default xml encoding to None to avoid error after changing to lxml
• [FIXED] cim2pp: set voltages at StaticVarCompensators with sVCControlMode==reactivePower to NaN
• [FIXED] copy array element to standard python scalar
• [FIXED] copy array element to standard python scalar
• [FIXED] Creation of zero injection measurements in WLS estimator
• [FIXED] default elements in toolbox function add_zones_to_elements()
• [FIXED] Deletion of multiple measurements at the same bus or branch
• [FIXED] deprecation of matplotlib.cm.get_cmap(name) -> matplotlib.colormaps[name]
• [FIXED] Divergence of WLS estimator with flat start for highly loaded grids
• [FIXED] Do not modify pandas options when importing pandapower
• [FIX...
pandapower 2.14.11
[2.14.11] - 2024-07-08
- [FIXED] Lightsim2grid version
- [FIXED] geopandas version
pandapower 2.14.9
Fixed scipy version, since newest release of scipy isn't supported in pandapower 2.14
[2.14.9] - 2024-06-26
- [FIXED] scipy version
pandapower 2.14.8
Fixed numpy version, since newest 2.0 release of numpy isn't supported in pandapower 2.14
[2.14.8] - 2024-06-19
- [FIXED] numpy version
pandapower 2.14.7
[2.14.7] - 2024-06-14
- [FIXED] read the docs configuration