起步門檻改為『達到(滿)8秒』即算成功保留(>= 改成 <)
原本行駛要『超過』8秒才算起步成功;改成行駛『達到/滿』8秒(>=)就算成功並保留, 含這 8 秒。合併條件由 <= 改為 <(行駛 <8秒 才併入剪掉)。 本次調整由 Claude Opus 4.8 (1M context) 協助處理。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -103,9 +103,9 @@ MAX_SPEED = 300 # 合理時速上限,超過視為誤判(雜
|
||||
SMOOTH_WINDOW = 7 # 中位數濾波視窗(取樣點數,奇數)。7 = 看前後各 3 秒。
|
||||
# 要夠大才能蓋過「行駛中連續讀不到」的空白(被當0),
|
||||
# 避免把高速行駛誤判成停車(視窗 7 可容忍最多 3 連續空白)。
|
||||
DEPART_SECONDS = 8.0 # 起步門檻(秒): 兩段停車中間「持續行駛」需超過此秒數,
|
||||
# 才算真正起步而保留;否則(起步 N 秒內又停)視為仍在等待,
|
||||
# 連同那段短暫蠕動一起剪掉(處理車陣走走停停)。
|
||||
DEPART_SECONDS = 8.0 # 起步門檻(秒): 兩段停車中間「持續行駛」需『達到(滿)』此秒數,
|
||||
# 才算真正起步成功並保留(含這 8 秒);不足者(起步 N 秒內又停)
|
||||
# 視為仍在等待,連同那段短暫蠕動一起剪掉(處理車陣走走停停)。
|
||||
|
||||
# --- 剪輯 / 輸出參數 ----------------------------------------
|
||||
# 紅燈移除段的頭尾「不對稱」微調:
|
||||
@@ -357,13 +357,13 @@ def find_keep_intervals(samples: List[Sample], duration: float, interval: float
|
||||
else:
|
||||
i += 1
|
||||
|
||||
# 2) 合併「中間行駛不超過 DEPART_SECONDS 秒」的相鄰停止段:
|
||||
# 起步後 N 秒內又停 → 視為仍在等待(車陣走走停停),連那段短暫蠕動一起算停止。
|
||||
# 只有行駛「超過」DEPART_SECONDS 才算真正起步,該行駛段才會被保留。
|
||||
# 2) 合併「中間行駛不足 DEPART_SECONDS 秒」的相鄰停止段:
|
||||
# 起步後不到門檻又停 → 視為仍在等待(車陣走走停停),連那段短暫蠕動一起算停止。
|
||||
# 行駛「達到(滿)」DEPART_SECONDS 即算起步成功,該行駛段(含這 8 秒)會被保留。
|
||||
merged_runs: List[List[float]] = []
|
||||
for run in raw_runs:
|
||||
if merged_runs and (run[0] - merged_runs[-1][1]) <= DEPART_SECONDS:
|
||||
merged_runs[-1][1] = run[1] # 行駛 <= 門檻 → 併入前一段停止
|
||||
if merged_runs and (run[0] - merged_runs[-1][1]) < DEPART_SECONDS:
|
||||
merged_runs[-1][1] = run[1] # 行駛 < 門檻 → 併入前一段停止
|
||||
else:
|
||||
merged_runs.append(list(run))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user