Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
INPUT:
**net** - pandapower network
**bus_lookup** (dict) - the keys are the old bus indices, the values the new bus indices
OPTIONAL:
**partial_lookup** (bool, default False) - flag if bus_lookup is only part of the bus indices
"""
if partial_lookup:
full_bus_lookup = copy.deepcopy(bus_lookup)
full_bus_lookup.update({b: b for b in net.bus.index if b not in bus_lookup.keys()})
bus_lookup = full_bus_lookup
net.bus.index = get_indices(net.bus.index, bus_lookup)
net.res_bus.index = get_indices(net.res_bus.index, bus_lookup)
for element, value in element_bus_tuples():
net[element][value] = get_indices(net[element][value], bus_lookup)
net["bus_geodata"].set_index(get_indices(net["bus_geodata"].index, bus_lookup), inplace=True)
bb_switches = net.switch[net.switch.et == "b"]
net.switch.loc[bb_switches.index, "element"] = get_indices(bb_switches.element, bus_lookup)
bus_meas = net.measurement.element_type == "bus"
net.measurement.loc[bus_meas, "element"] = get_indices(net.measurement.loc[bus_meas, "element"],
bus_lookup)
side_meas = pd.to_numeric(net.measurement.side, errors="coerce").notnull()
net.measurement.loc[side_meas, "side"] = get_indices(net.measurement.loc[side_meas, "side"],
bus_lookup)
return bus_lookup
OPTIONAL:
**partial_lookup** (bool, default False) - flag if bus_lookup is only part of the bus indices
"""
if partial_lookup:
full_bus_lookup = copy.deepcopy(bus_lookup)
full_bus_lookup.update({b: b for b in net.bus.index if b not in bus_lookup.keys()})
bus_lookup = full_bus_lookup
net.bus.index = get_indices(net.bus.index, bus_lookup)
net.res_bus.index = get_indices(net.res_bus.index, bus_lookup)
for element, value in element_bus_tuples():
net[element][value] = get_indices(net[element][value], bus_lookup)
net["bus_geodata"].set_index(get_indices(net["bus_geodata"].index, bus_lookup), inplace=True)
bb_switches = net.switch[net.switch.et == "b"]
net.switch.loc[bb_switches.index, "element"] = get_indices(bb_switches.element, bus_lookup)
bus_meas = net.measurement.element_type == "bus"
net.measurement.loc[bus_meas, "element"] = get_indices(net.measurement.loc[bus_meas, "element"],
bus_lookup)
side_meas = pd.to_numeric(net.measurement.side, errors="coerce").notnull()
net.measurement.loc[side_meas, "side"] = get_indices(net.measurement.loc[side_meas, "side"],
bus_lookup)
return bus_lookup
**bus_lookup** (dict) - the keys are the old bus indices, the values the new bus indices
OPTIONAL:
**partial_lookup** (bool, default False) - flag if bus_lookup is only part of the bus indices
"""
if partial_lookup:
full_bus_lookup = copy.deepcopy(bus_lookup)
full_bus_lookup.update({b: b for b in net.bus.index if b not in bus_lookup.keys()})
bus_lookup = full_bus_lookup
net.bus.index = get_indices(net.bus.index, bus_lookup)
net.res_bus.index = get_indices(net.res_bus.index, bus_lookup)
for element, value in element_bus_tuples():
net[element][value] = get_indices(net[element][value], bus_lookup)
net["bus_geodata"].set_index(get_indices(net["bus_geodata"].index, bus_lookup), inplace=True)
bb_switches = net.switch[net.switch.et == "b"]
net.switch.loc[bb_switches.index, "element"] = get_indices(bb_switches.element, bus_lookup)
bus_meas = net.measurement.element_type == "bus"
net.measurement.loc[bus_meas, "element"] = get_indices(net.measurement.loc[bus_meas, "element"],
bus_lookup)
side_meas = pd.to_numeric(net.measurement.side, errors="coerce").notnull()
net.measurement.loc[side_meas, "side"] = get_indices(net.measurement.loc[side_meas, "side"],
bus_lookup)
return bus_lookup
"""
if partial_lookup:
full_bus_lookup = copy.deepcopy(bus_lookup)
full_bus_lookup.update({b: b for b in net.bus.index if b not in bus_lookup.keys()})
bus_lookup = full_bus_lookup
net.bus.index = get_indices(net.bus.index, bus_lookup)
net.res_bus.index = get_indices(net.res_bus.index, bus_lookup)
for element, value in element_bus_tuples():
net[element][value] = get_indices(net[element][value], bus_lookup)
net["bus_geodata"].set_index(get_indices(net["bus_geodata"].index, bus_lookup), inplace=True)
bb_switches = net.switch[net.switch.et == "b"]
net.switch.loc[bb_switches.index, "element"] = get_indices(bb_switches.element, bus_lookup)
bus_meas = net.measurement.element_type == "bus"
net.measurement.loc[bus_meas, "element"] = get_indices(net.measurement.loc[bus_meas, "element"],
bus_lookup)
side_meas = pd.to_numeric(net.measurement.side, errors="coerce").notnull()
net.measurement.loc[side_meas, "side"] = get_indices(net.measurement.loc[side_meas, "side"],
bus_lookup)
return bus_lookup
if element == "bus":
partial = len(new_indices) < net[element].shape[0]
reindex_buses(net, lookup, partial_lookup=partial)
return
# --- reindex
net[element]["index"] = net[element].index
net[element].loc[old_indices, "index"] = get_indices(old_indices, lookup)
net[element].set_index("index", inplace=True)
# --- adapt measurement link
if element in ["line", "trafo", "trafo3w"]:
affected = net.measurement[(net.measurement.element_type == element) &
(net.measurement.element.isin(old_indices))]
if len(affected):
net.measurement.loc[affected.index, "element"] = get_indices(affected.element, lookup)
# --- adapt switch link
if element in ["line", "trafo"]:
affected = net.switch[(net.switch.et == element[0]) &
(net.switch.element.isin(old_indices))]
if len(affected):
net.switch.loc[affected.index, "element"] = get_indices(affected.element, lookup)
# --- adapt line_geodata index
if element == "line" and "line_geodata" in net and net["line_geodata"].shape[0]:
net["line_geodata"]["index"] = net["line_geodata"].index
net["line_geodata"].loc[old_indices, "index"] = get_indices(old_indices, lookup)
net["line_geodata"].set_index("index", inplace=True)