修复问题诊断接口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,
|
'slc_company': slc_company_name,
|
||||||
'internet': internet_str,
|
'internet': internet_str,
|
||||||
'cross_model': cross_model,
|
'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,
|
'road_special_info': sorted_road_special_info,
|
||||||
'length_info': sorted_length_info,
|
'length_info': sorted_length_info,
|
||||||
'avg_length': avg_length
|
'avg_length': avg_length
|
||||||
|
|
@ -445,6 +445,8 @@ def gen_dir_light_info_dict(light_infos):
|
||||||
def check_outside_left(lane_turn_info):
|
def check_outside_left(lane_turn_info):
|
||||||
seen_s = False # 是否已出现直行车道
|
seen_s = False # 是否已出现直行车道
|
||||||
for func in lane_turn_info:
|
for func in lane_turn_info:
|
||||||
|
if func == '-':
|
||||||
|
continue
|
||||||
turn_type_str = g_turn2str[str(func)]
|
turn_type_str = g_turn2str[str(func)]
|
||||||
if 's' in turn_type_str: # 当前是直行车道
|
if 's' in turn_type_str: # 当前是直行车道
|
||||||
seen_s = True
|
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)
|
inroad_info = g_roadnet.query_road(roadid)
|
||||||
split_turns_set = set()
|
split_turns_set = set()
|
||||||
for outroadid in outroadid_list:
|
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:
|
if abs(angle) <= 30:
|
||||||
split_turns_set.add(0)
|
split_turns_set.add(0)
|
||||||
elif abs(angle) >= 150:
|
elif abs(angle) >= 150:
|
||||||
|
|
@ -558,7 +563,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
||||||
else:
|
else:
|
||||||
split_turns_set.add(1)
|
split_turns_set.add(1)
|
||||||
car_num = road_delay_dict[roadid].delay_info.car_num
|
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
|
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
|
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
|
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
|
s_num = road_delay_dict[roadid].delay_info.turn_ratio_0
|
||||||
r_num = road_delay_dict[roadid].delay_info.turn_ratio_2
|
r_num = road_delay_dict[roadid].delay_info.turn_ratio_2
|
||||||
rate_list = fix_to_100(l_rate, s_rate, r_rate)
|
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']
|
out_road_id = roads_dir_dict[dir]['out']
|
||||||
if out_road_id != '-' and out_road_id in outroad_info_dict.keys():
|
if out_road_id != '-' and out_road_id in outroad_info_dict.keys():
|
||||||
out_road_info = g_roadnet.query_road(out_road_id)
|
out_road_info = g_roadnet.query_road(out_road_id)
|
||||||
merge_turns_set = set()
|
merge_turns_set = set()
|
||||||
for inroadid in inroadid_list:
|
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:
|
if abs(angle) <= 30:
|
||||||
merge_turns_set.add(0)
|
merge_turns_set.add(0)
|
||||||
elif abs(angle) >= 150:
|
elif abs(angle) >= 150:
|
||||||
|
|
@ -588,7 +596,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
||||||
else:
|
else:
|
||||||
merge_turns_set.add(1)
|
merge_turns_set.add(1)
|
||||||
out_car_num = outroad_info_dict[out_road_id].turn_info.car_num
|
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_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_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
|
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_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
|
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)
|
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] = {
|
road_flow_turn_rate[roadid] = {
|
||||||
'src_dir': dir,
|
'src_dir': dir,
|
||||||
'in_flow_rate': in_flow_rate,
|
'in_flow_rate': in_flow_rate,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue