修复find_new_center_pipe中心点代码错误的bug

This commit is contained in:
2026-03-08 20:45:22 +08:00
parent 9a4a91c328
commit b3d58379ef
3 changed files with 40 additions and 26 deletions
@@ -577,7 +577,7 @@ def cal_similarity_all_multi_new_sq_improve_double_lzr(
similarity[each_candidate] = similarity_all.loc[
:, each_candidate
].mean()
similarity = similarity.sort_values(ascending=False)
similarity = similarity.sort_values(ascending=False, kind="mergesort")
detail_index = [str(pipe) for pipe in candidate_pipe]
similarity_detail = pd.DataFrame(index=detail_index)
similarity_detail.index.name = "pipe_id"
@@ -620,7 +620,7 @@ def cal_similarity_all_multi_new_sq_improve_double_lzr(
similarity_detail["pressure_sensor_count"] = int(len(important_p_sensor))
similarity_detail["flow_sensor_count"] = int(len(important_f_sensor))
similarity_detail = similarity_detail.sort_values(
by="final_similarity", ascending=False
by="final_similarity", ascending=False, kind="mergesort"
)
else:
break_flag = 1
@@ -729,7 +729,7 @@ def cal_top_sensors(monitor_p, predict_p, Top_sensor_num):
dpressure = abs(predict_p - monitor_p)
if type(dpressure) == pd.core.frame.DataFrame:
dpressure = dpressure.mean()
dpressure_rank = dpressure.sort_values(ascending=False)
dpressure_rank = dpressure.sort_values(ascending=False, kind="mergesort")
return list(dpressure_rank.index[:Top_sensor_num])
@@ -747,7 +747,7 @@ def remove_3_sigma(similarity_t):
def update_similarity(leak_candidate_center, similarity, leak_center_dict):
similarity_new = pd.Series(dtype=object)
similarity_new = pd.Series(dtype=float)
for each_center in leak_candidate_center:
houxuan_center = leak_center_dict[each_center]
if len(houxuan_center) > 1:
@@ -758,7 +758,7 @@ def update_similarity(leak_candidate_center, similarity, leak_center_dict):
similarity_new[each_center] = similarity[each_center].mean()
else:
similarity_new[each_center] = similarity[each_center]
similarity_new = similarity_new.sort_values(ascending=False)
similarity_new = similarity_new.sort_values(ascending=False, kind="mergesort")
return similarity_new
@@ -767,10 +767,10 @@ def extra_judge(similarity):
record_sensor = []
record_value = []
for i in range(len(similarity.index)):
if similarity.iloc[i] >= mean_similarity:
if similarity.iloc[i] >= mean_similarity - 1e-10:
record_value.append(similarity.iloc[i])
record_sensor.append(similarity.index[i])
out_put_similarity = pd.Series(record_value, index=record_sensor, dtype=object)
out_put_similarity = pd.Series(record_value, index=record_sensor, dtype=float)
cut_ratio = len(out_put_similarity.index) / len(similarity.index)
return cut_ratio, out_put_similarity