12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import pandas as pd
- def find_intervals_exceeding_threshold(df_ego, threshold=0.2):
- start_time_list = []
- time_length_list = []
- time_list = df_ego[(df_ego["obstacle"] == 1) & (abs(df_ego["speed_linear"]) < 0.01)]["simTime"].tolist()
-
- if len(time_list) < 2:
- return []
-
- start_time = time_list[0]
- intervals = []
-
- for i in range(1, len(time_list)):
-
- difference = time_list[i] - time_list[i - 1]
-
- if difference > threshold:
-
-
-
-
- interval_length = time_list[i - 1] - start_time
- intervals.append((start_time, time_list[i - 1], interval_length))
-
- start_time = time_list[i]
-
- if time_list[-1] != start_time:
-
-
- interval_length = time_list[-1] - start_time
- intervals.append((start_time, time_list[-1], interval_length))
- interval_count = len(intervals)
- for start, end, length in intervals:
- start_time_list.append(start)
- time_length_list.append(length)
-
-
-
- return start_time_list, time_length_list, interval_count
- if __name__ == "__main__":
- df_ego = pd.read_csv(r"D:\Cicv\朴津项目\pji_outdoor_robot_evaluate_real_0818\task\test_0807-1\EgoState_pji.csv")
- intervals = find_intervals_exceeding_threshold(df_ego)
- print("intervals is", intervals)
- for start, end, length in intervals:
- print(f"时间段从 {start:.2f}s 到 {end:.2f}s,长度为 {length:.2f}s")
|