Skip to content

Commit d6f0d93

Browse files
committed
Merge branch 'release/v2.14.5'
2 parents 6718045 + 72b7872 commit d6f0d93

File tree

94 files changed

+762
-746
lines changed

Some content is hidden

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

94 files changed

+762
-746
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Change Log
44
[upcoming release] - 2024-..-..
55
-------------------------------
66

7+
[2.14.5] - 2024-03-28
8+
-------------------------------
9+
- [CHANGED] added possibility to provide custom weights to switches and transformers (before - always zero) when creating a graph
10+
- [FIXED] many futurewarnings and deprecation warnings
11+
712
[2.14.4] - 2024-03-28
813
-------------------------------
914
- [FIXED] internal pgm test returns ANOTHER error when using python 3.8
@@ -66,6 +71,7 @@ Change Log
6671
- [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes
6772
- [CHANGED] cim2pp: reformat documentation for reading in files
6873
- [CHANGED] allow providing grid_tables as a parameter to the function that downloads net from PostgreSQL
74+
- [FIXED] avoid FutureWarning of pandas 2.2
6975
- [FIXED] compatibility with lightsim2grid after new version 0.8.0
7076
- [ADDED] allow passing custom runpp-function to pp.diagnostic
7177

pandapower/auxiliary.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -967,9 +967,9 @@ def _clean_up(net, res=True):
967967
# res_bus.drop(xward_buses, inplace=True)
968968
if len(net["dcline"]) > 0:
969969
dc_gens = net.gen.index[(len(net.gen) - len(net.dcline) * 2):]
970-
net.gen.drop(dc_gens, inplace=True)
970+
net.gen = net.gen.drop(dc_gens)
971971
if res:
972-
net.res_gen.drop(dc_gens, inplace=True)
972+
net.res_gen = net.res_gen.drop(dc_gens)
973973

974974

975975
def _set_isolated_buses_out_of_service(net, ppc):

pandapower/control/util/auxiliary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ def drop_same_type_existing_controllers(net, this_ctrl_type, index=None, matchin
188188
same_type_existing_ctrl = get_controller_index(net, ctrl_type=this_ctrl_type,
189189
parameters=matching_params)
190190
if len(same_type_existing_ctrl):
191-
net.controller.drop(same_type_existing_ctrl, inplace=True)
191+
net.controller = net.controller.drop(same_type_existing_ctrl)
192192
logger.debug("Controllers " + str(['%i' % idx for idx in same_type_existing_ctrl]) +
193193
"got removed because of same type and matching parameters as new " +
194194
"controller " + index + ".")

pandapower/convert_format.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,9 @@ def _create_seperate_cost_tables(net, elements_to_deserialize):
216216

217217
def _rename_columns(net, elements_to_deserialize):
218218
if _check_elements_to_deserialize('line', elements_to_deserialize):
219-
net.line.rename(columns={'imax_ka': 'max_i_ka'}, inplace=True)
219+
net.line = net.line.rename(columns={'imax_ka': 'max_i_ka'})
220220
if _check_elements_to_deserialize('gen', elements_to_deserialize):
221-
net.gen.rename(columns={"qmin_mvar": "min_q_mvar", "qmax_mvar": "max_q_mvar"}, inplace=True)
221+
net.gen = net.gen.rename(columns={"qmin_mvar": "min_q_mvar", "qmax_mvar": "max_q_mvar"})
222222
for typ, data in net.std_types["line"].items():
223223
if "imax_ka" in data:
224224
net.std_types["line"][typ]["max_i_ka"] = net.std_types["line"][typ].pop("imax_ka")
@@ -235,11 +235,11 @@ def _rename_columns(net, elements_to_deserialize):
235235
net.measurement.loc[bus_measurements, "bus"].values
236236
net.measurement.loc[~bus_measurements, "side"] = \
237237
net.measurement.loc[~bus_measurements, "bus"].values
238-
net.measurement.rename(columns={'type': 'measurement_type'}, inplace=True)
239-
net.measurement.drop(["bus"], axis=1, inplace=True)
238+
net.measurement = net.measurement.rename(columns={'type': 'measurement_type'})
239+
net.measurement = net.measurement.drop(["bus"], axis=1)
240240
if _check_elements_to_deserialize('controller', elements_to_deserialize):
241241
if "controller" in net:
242-
net["controller"].rename(columns={"controller": "object"}, inplace=True)
242+
net["controller"] = net["controller"].rename(columns={"controller": "object"})
243243
if "options" in net:
244244
if "recycle" in net["options"]:
245245
if "Ybus" in net["options"]["recycle"]:
@@ -371,7 +371,7 @@ def _update_trafo_parameter_names(net, elements_to_deserialize):
371371
for element in update_data:
372372
replace_cols = {col: _update_column(col) for col in net[element].columns if
373373
col.startswith("tp") or col.startswith("vsc")}
374-
net[element].rename(columns=replace_cols, inplace=True)
374+
net[element] = net[element].rename(columns=replace_cols)
375375
_update_trafo_type_parameter_names(net)
376376

377377

@@ -399,16 +399,16 @@ def _set_data_type_of_columns(net):
399399

400400
def _convert_to_mw(net):
401401
replace = [("kw", "mw"), ("kvar", "mvar"), ("kva", "mva")]
402-
for element, tab in net.items():
403-
if isinstance(tab, pd.DataFrame):
402+
for element in net.keys():
403+
if isinstance(net[element], pd.DataFrame):
404404
for old, new in replace:
405-
diff = {column: column.replace(old, new) for column in tab.columns if old in column
406-
and column != "pfe_kw"}
407-
tab.rename(columns=diff, inplace=True)
408-
if len(tab) == 0:
405+
diff = {column: column.replace(old, new) for column in net[element].columns if
406+
old in column and column != "pfe_kw"}
407+
net[element] = net[element].rename(columns=diff)
408+
if len(net[element]) == 0:
409409
continue
410410
for old, new in diff.items():
411-
tab[new] *= 1e-3
411+
net[element][new] *= 1e-3
412412

413413
for element, std_types in net.std_types.items():
414414
for std_type, parameters in std_types.items():

pandapower/converter/cim/cim2pp/build_pp_net.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa
219219
# fuse boundary ConnectivityNodes with their TopologicalNodes
220220
bus_t = self.net.bus.reset_index(level=0, drop=False)
221221
bus_drop = bus_t.loc[bus_t[sc['o_prf']] == 'eq_bd', ['index', sc['o_id'], 'cim_topnode']]
222-
bus_drop.rename(columns={'index': 'b1'}, inplace=True)
222+
bus_drop = bus_drop.rename(columns={'index': 'b1'})
223223
bus_drop = pd.merge(bus_drop, bus_t[['index', sc['o_id']]].rename(columns={'index': 'b2', sc['o_id']: 'o_id2'}),
224224
how='inner', left_on='cim_topnode', right_on='o_id2')
225225
if bus_drop.index.size > 0:

pandapower/converter/cim/cim2pp/convert_measurements.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ def create_measurements_from_analog(self):
4444
'PowerSystemResource', 'positiveFlowIn']],
4545
self.cim['eq']['AnalogValue'][['sensorAccuracy', 'MeasurementValueSource', 'Analog', 'value']],
4646
how='inner', left_on='rdfId', right_on='Analog')
47-
analogs.drop(columns=['rdfId', 'Analog'], inplace=True)
47+
analogs = analogs.drop(columns=['rdfId', 'Analog'])
4848
analogs = pd.merge(analogs, self.cim['eq']['MeasurementValueSource'], how='left',
4949
left_on='MeasurementValueSource',
5050
right_on='rdfId')
51-
analogs.drop(columns=['rdfId', 'MeasurementValueSource'], inplace=True)
51+
analogs = analogs.drop(columns=['rdfId', 'MeasurementValueSource'])
5252
# collect all the assets (line, trafo, trafo3w) and its connections
5353
assets = pd.DataFrame(None, columns=['element_type', 'side'])
5454
append_dict = dict({'line': {'from_bus': 'from', 'to_bus': 'to'},
@@ -61,7 +61,7 @@ def create_measurements_from_analog(self):
6161
temp['element_type'] = element_type
6262
temp['side'] = side
6363
assets = pd.concat([assets, temp], sort=False)
64-
assets.rename(columns={'index': 'element'}, inplace=True)
64+
assets = assets.rename(columns={'index': 'element'})
6565
# now join the analogs with the assets
6666
psr = pd.merge(analogs, assets, how='inner', left_on='PowerSystemResource', right_on=sc['o_id'])
6767
# keep only entries which are associated to the terminal from the asset
@@ -96,24 +96,24 @@ def create_measurements_from_sv(self):
9696
sc = cim_tools.get_pp_net_special_columns_dict()
9797
# get the measurements from the sv profile and set the Terminal as index
9898
sv_powerflow = self.cim['sv']['SvPowerFlow'][['Terminal', 'p', 'q']]
99-
sv_powerflow.set_index('Terminal', inplace=True)
99+
sv_powerflow = sv_powerflow.set_index('Terminal')
100100

101101
# ---------------------------------------measure: bus v---------------------------------------------------
102102
busses_temp = self.net.bus[['name', 'vn_kv', sc['ct']]].copy()
103-
busses_temp.reset_index(level=0, inplace=True)
104-
busses_temp.rename(columns={'index': 'element', sc['ct']: 'TopologicalNode'}, inplace=True)
103+
busses_temp = busses_temp.reset_index(level=0)
104+
busses_temp = busses_temp.rename(columns={'index': 'element', sc['ct']: 'TopologicalNode'})
105105
sv_sv_voltages = pd.merge(self.cim['sv']['SvVoltage'][['TopologicalNode', 'v']], busses_temp,
106106
how='left', on='TopologicalNode')
107107
# drop all the rows mit vn_kv == np.NaN (no measurements available for that bus)
108-
sv_sv_voltages.dropna(subset=['vn_kv'], inplace=True)
108+
sv_sv_voltages = sv_sv_voltages.dropna(subset=['vn_kv'])
109109
sv_sv_voltages.reset_index(inplace=True)
110110
if 'index' in sv_sv_voltages.columns:
111-
sv_sv_voltages.drop(['index'], inplace=True, axis=1)
111+
sv_sv_voltages = sv_sv_voltages.drop(['index'], axis=1)
112112
# value -> voltage ()
113113
sv_sv_voltages['value'] = sv_sv_voltages.v / sv_sv_voltages.vn_kv
114114
sv_sv_voltages['value'].replace(0, np.nan, inplace=True)
115115
# drop all the rows mit value == np.NaN
116-
sv_sv_voltages.dropna(subset=['value'], inplace=True)
116+
sv_sv_voltages = sv_sv_voltages.dropna(subset=['value'])
117117
sv_sv_voltages.reset_index(inplace=True)
118118
sv_sv_voltages['value_stddev'] = sv_sv_voltages.value * 0.001
119119
sv_sv_voltages['vn_kv_stddev'] = 0.1 / sv_sv_voltages.vn_kv
@@ -136,7 +136,7 @@ def create_measurements_from_sv(self):
136136
line_temp['q_to'] = \
137137
pd.merge(line_temp[sc['t_to']], sv_powerflow['q'], left_on=sc['t_to'], right_index=True)['q']
138138

139-
line_temp.dropna(subset=['p_from', 'p_to', 'q_from', 'q_to'], thresh=4, inplace=True)
139+
line_temp = line_temp.dropna(subset=['p_from', 'p_to', 'q_from', 'q_to'], thresh=4)
140140

141141
line_temp['stddev_line_from_p'] = abs(line_temp.p_from) * sigma_line + 1.
142142
line_temp['stddev_line_to_p'] = abs(line_temp.p_to) * sigma_line + 1.
@@ -181,7 +181,7 @@ def create_measurements_from_sv(self):
181181
trafo_temp['q_lv'] = \
182182
pd.merge(trafo_temp[sc['t_lv']], sv_powerflow['q'], left_on=sc['t_lv'], right_index=True)['q']
183183

184-
trafo_temp.dropna(subset=['p_hv', 'p_lv', 'q_hv', 'q_lv'], thresh=4, inplace=True)
184+
trafo_temp = trafo_temp.dropna(subset=['p_hv', 'p_lv', 'q_hv', 'q_lv'], thresh=4)
185185

186186
trafo_temp['stddev_trafo_hv_p'] = abs(trafo_temp.p_hv) * sigma_trafo + 1.
187187
trafo_temp['stddev_trafo_lv_p'] = abs(trafo_temp.p_lv) * sigma_trafo + 1.
@@ -230,7 +230,7 @@ def create_measurements_from_sv(self):
230230
trafo3w_temp['q_lv'] = \
231231
pd.merge(trafo3w_temp[sc['t_lv']], sv_powerflow['q'], left_on=sc['t_lv'], right_index=True)['q']
232232

233-
trafo3w_temp.dropna(subset=['p_hv', 'p_mv', 'p_lv', 'q_hv', 'q_mv', 'q_lv'], thresh=6, inplace=True)
233+
trafo3w_temp = trafo3w_temp.dropna(subset=['p_hv', 'p_mv', 'p_lv', 'q_hv', 'q_mv', 'q_lv'], thresh=6)
234234

235235
trafo3w_temp['stddev_trafo_hv_p'] = abs(trafo3w_temp.p_hv) * sigma_trafo3w + 1.
236236
trafo3w_temp['stddev_trafo_mv_p'] = abs(trafo3w_temp.p_mv) * sigma_trafo3w + 1.
@@ -275,7 +275,7 @@ def create_measurements_from_sv(self):
275275
self._copy_to_measurement(trafo3w_temp)
276276

277277
# remove NaN values
278-
self.net.measurement.dropna(subset=['value'], inplace=True)
278+
self.net.measurement = self.net.measurement.dropna(subset=['value'])
279279
# set the element from float to default uint32
280280
self._set_measurement_element_datatype()
281281

0 commit comments

Comments
 (0)