|
@@ -295,16 +295,17 @@ def warningDelayTimeofReachDecel_LST(data):
|
|
|
# 将correctwarning保存到data对象中,供图表生成使用
|
|
|
data.correctwarning = correctwarning
|
|
|
ego_df = data.ego_data
|
|
|
- ego_speed_simtime = ego_df[ego_df['accel'] <= -4]['simTime'].tolist() # 单位m/s^2
|
|
|
+ obj_df = data.obj_data
|
|
|
+ obj_speed_simtime = obj_df[obj_df['accel'] <= -4]['simTime'].tolist() # 单位m/s^2
|
|
|
warning_simTime = ego_df[ego_df['ifwarning'] == correctwarning]['simTime'].tolist()
|
|
|
- if (len(warning_simTime) == 0) and (len(ego_speed_simtime) == 0):
|
|
|
+ if (len(warning_simTime) == 0) and (len(obj_speed_simtime) == 0):
|
|
|
return {"warningDelayTimeofReachDecel_LST": 0}
|
|
|
- elif (len(warning_simTime) == 0) and (len(ego_speed_simtime) > 0):
|
|
|
- return {"warningDelayTimeofReachDecel_LST": ego_speed_simtime[0]}
|
|
|
- elif (len(warning_simTime) > 0) and (len(ego_speed_simtime) == 0):
|
|
|
+ elif (len(warning_simTime) == 0) and (len(obj_speed_simtime) > 0):
|
|
|
+ return {"warningDelayTimeofReachDecel_LST": obj_speed_simtime[0]}
|
|
|
+ elif (len(warning_simTime) > 0) and (len(obj_speed_simtime) == 0):
|
|
|
return {"warningDelayTimeofReachDecel_LST": None}
|
|
|
else:
|
|
|
- return {"warningDelayTimeofReachDecel_LST": warning_simTime[0] - ego_speed_simtime[0]}
|
|
|
+ return {"warningDelayTimeofReachDecel_LST": warning_simTime[0] - obj_speed_simtime[0]}
|
|
|
|
|
|
|
|
|
def rightWarningSignal_LST(data):
|
|
@@ -450,17 +451,10 @@ def crossJunctionToTargetLane_LST(data):
|
|
|
|
|
|
def keepInLane_LST(data):
|
|
|
ego_df = data.ego_data
|
|
|
- scenario_name = find_nested_name(data.function_config["function"])
|
|
|
- target_road_type = data.function_config["function"][scenario_name]["keepInLane_LST"]['max']
|
|
|
- data_in_tunnel = ego_df[ego_df['road_type'] == target_road_type]
|
|
|
- if data_in_tunnel.empty:
|
|
|
+ notkeepinlane = ego_df[ego_df['laneOffset'] > ego_df['lane_width']/2].tolist()
|
|
|
+ if len(notkeepinlane):
|
|
|
return {"keepInLane_LST": -1}
|
|
|
- else:
|
|
|
- tunnel_lane = data_in_tunnel['lane_id'].tolist()
|
|
|
- if len(set(tunnel_lane)) >= 2:
|
|
|
- return {"keepInLane_LST": -1}
|
|
|
- else:
|
|
|
- return {"keepInLane_LST": target_road_type}
|
|
|
+ return {"keepInLane_LST": 1}
|
|
|
|
|
|
|
|
|
def leastLateralDistance_LST(data):
|