修复问题诊断接口bug
This commit is contained in:
parent
756e55bf0d
commit
a115eadbec
|
|
@ -404,7 +404,7 @@ def gen_cross_static_info(crossid, nodeid, area_id, cross_ledger_info_dict):
|
|||
'slc_company': slc_company_name,
|
||||
'internet': internet_str,
|
||||
'cross_model': cross_model,
|
||||
'lane_nums_list': list(sort_lane_num_info.values()),
|
||||
'lane_nums_list': [item[0] for item in list(sort_lane_num_info.values())],
|
||||
'road_special_info': sorted_road_special_info,
|
||||
'length_info': sorted_length_info,
|
||||
'avg_length': avg_length
|
||||
|
|
@ -445,6 +445,8 @@ def gen_dir_light_info_dict(light_infos):
|
|||
def check_outside_left(lane_turn_info):
|
||||
seen_s = False # 是否已出现直行车道
|
||||
for func in lane_turn_info:
|
||||
if func == '-':
|
||||
continue
|
||||
turn_type_str = g_turn2str[str(func)]
|
||||
if 's' in turn_type_str: # 当前是直行车道
|
||||
seen_s = True
|
||||
|
|
@ -548,7 +550,10 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
inroad_info = g_roadnet.query_road(roadid)
|
||||
split_turns_set = set()
|
||||
for outroadid in outroadid_list:
|
||||
angle = g_roadnet.calc_road_turn_angle_without_abs(inroad_info, g_roadnet.query_road(outroadid))
|
||||
outroad = g_roadnet.query_road(outroadid)
|
||||
if not outroad:
|
||||
continue
|
||||
angle = g_roadnet.calc_road_turn_angle_without_abs(inroad_info, outroad)
|
||||
if abs(angle) <= 30:
|
||||
split_turns_set.add(0)
|
||||
elif abs(angle) >= 150:
|
||||
|
|
@ -558,7 +563,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
else:
|
||||
split_turns_set.add(1)
|
||||
car_num = road_delay_dict[roadid].delay_info.car_num
|
||||
in_flow_rate = round(car_num / cross_sum_car_num, 2) if cross_out_sum_car_num != 0 else 0
|
||||
in_flow_rate = round(car_num / cross_sum_car_num, 2) * 100 if cross_out_sum_car_num != 0 else 0
|
||||
l_rate = round(road_delay_dict[roadid].delay_info.turn_ratio_1 / car_num, 2) * 100 if car_num != 0 else 0
|
||||
s_rate = round(road_delay_dict[roadid].delay_info.turn_ratio_0 / car_num, 2) * 100 if car_num != 0 else 0
|
||||
r_rate = round(road_delay_dict[roadid].delay_info.turn_ratio_2 / car_num, 2) * 100 if car_num != 0 else 0
|
||||
|
|
@ -572,13 +577,16 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
s_num = road_delay_dict[roadid].delay_info.turn_ratio_0
|
||||
r_num = road_delay_dict[roadid].delay_info.turn_ratio_2
|
||||
rate_list = fix_to_100(l_rate, s_rate, r_rate)
|
||||
l_rate, s_rate, r_rate = rate_list[0], rate_list[1], rate_list[2]
|
||||
l_rate, s_rate, r_rate = rate_list[0] if rate_list[0] == '-' else round(rate_list[0], 2), rate_list[1] if rate_list[1] == '-' else round(rate_list[1], 2), rate_list[2] if rate_list[2] == '-' else round(rate_list[2], 2)
|
||||
out_road_id = roads_dir_dict[dir]['out']
|
||||
if out_road_id != '-' and out_road_id in outroad_info_dict.keys():
|
||||
out_road_info = g_roadnet.query_road(out_road_id)
|
||||
merge_turns_set = set()
|
||||
for inroadid in inroadid_list:
|
||||
angle = g_roadnet.calc_road_turn_angle_without_abs(out_road_info, g_roadnet.query_road(inroadid))
|
||||
inroad = g_roadnet.query_road(inroadid)
|
||||
if not inroad:
|
||||
continue
|
||||
angle = g_roadnet.calc_road_turn_angle_without_abs(out_road_info, inroad)
|
||||
if abs(angle) <= 30:
|
||||
merge_turns_set.add(0)
|
||||
elif abs(angle) >= 150:
|
||||
|
|
@ -588,7 +596,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
else:
|
||||
merge_turns_set.add(1)
|
||||
out_car_num = outroad_info_dict[out_road_id].turn_info.car_num
|
||||
out_flow_rate = round(out_car_num / cross_out_sum_car_num, 2) if cross_out_sum_car_num != 0 else 0
|
||||
out_flow_rate = round(out_car_num / cross_out_sum_car_num, 2) * 100 if cross_out_sum_car_num != 0 else 0
|
||||
out_l_rate = round(outroad_info_dict[out_road_id].turn_info.turn_ratio_1 / out_car_num, 2) * 100 if out_car_num != 0 else 0
|
||||
out_s_rate = round(outroad_info_dict[out_road_id].turn_info.turn_ratio_0 / out_car_num, 2) * 100 if out_car_num != 0 else 0
|
||||
out_r_rate = round(outroad_info_dict[out_road_id].turn_info.turn_ratio_2 / out_car_num, 2) * 100 if out_car_num != 0 else 0
|
||||
|
|
@ -600,7 +608,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
out_r_rate = '-'
|
||||
out_l_num, out_s_num, out_r_num = outroad_info_dict[out_road_id].turn_info.turn_ratio_1, outroad_info_dict[out_road_id].turn_info.turn_ratio_0, outroad_info_dict[out_road_id].turn_info.turn_ratio_2
|
||||
rate_list = fix_to_100(out_l_rate, out_s_rate, out_r_rate)
|
||||
out_l_rate, out_s_rate, out_r_rate = rate_list[0], rate_list[1], rate_list[2]
|
||||
out_l_rate, out_s_rate, out_r_rate = rate_list[0] if rate_list[0] == '-' else round(rate_list[0], 2), rate_list[1] if rate_list[1] == '-' else round(rate_list[1], 2), rate_list[2] if rate_list[2] == '-' else round(rate_list[2], 2)
|
||||
road_flow_turn_rate[roadid] = {
|
||||
'src_dir': dir,
|
||||
'in_flow_rate': in_flow_rate,
|
||||
|
|
|
|||
Loading…
Reference in New Issue