diff --git a/app/algorithms/burst_location/network_partitioner.py b/app/algorithms/burst_location/network_partitioner.py index 5cd63b9..4699565 100644 --- a/app/algorithms/burst_location/network_partitioner.py +++ b/app/algorithms/burst_location/network_partitioner.py @@ -85,16 +85,25 @@ def metis_grouping_pipe_weight( correspond_dic = {} count_node = 0 w = [] - for line in generate_adjlist_with_all_edges(G1, delimiter): - temp_node_name = line.split(sep=delimiter) + for node_name, neighbors in G1.adjacency(): w_temp = [] - for i in range(len(temp_node_name) - 1): - temp_name_1 = temp_node_name[0] + "," + temp_node_name[i + 1] - w_temp.append(couple_node_length[temp_name_1]) + n_t = [node_dict[node_name]] + for neighbor_name, edge_data in neighbors.items(): + edge_key = f"{node_name},{neighbor_name}" + reverse_edge_key = f"{neighbor_name},{node_name}" + if edge_key in couple_node_length: + edge_weight = couple_node_length[edge_key] + elif reverse_edge_key in couple_node_length: + edge_weight = couple_node_length[reverse_edge_key] + elif edge_data.get("weight") is not None: + edge_weight = float(edge_data["weight"]) + else: + raise KeyError( + f"Missing edge weight for partition edge '{edge_key}' in burst locator." + ) + w_temp.append(edge_weight) + n_t.append(node_dict[neighbor_name]) w.append(w_temp) - n_t = [] - for each_node in temp_node_name: - n_t.append(node_dict[each_node]) correspond_dic[n_t[0]] = count_node count_node = count_node + 1 # del n_t[0]