Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

台鐵誤點與跨運具轉乘斷鏈分析

用 TDX 開放資料實測「台鐵誤點導致旅客錯過下一段高鐵」的發生率。 資料期間 2025-01-21 ~ 2026-07-27(553 天),約 3,940 萬筆列車動態紀錄。


一個反直覺的結果

在板橋站台鐵轉高鐵的行程中,約 12.4% 會因上游誤點而錯過原訂班次 — 大約每 8 次轉乘就有 1 次接不上。

真正意外的是:多留緩衝時間幾乎沒有幫助。

預留轉乘緩衝 斷鏈率
10 分鐘 12.43%
15 分鐘 11.42%
20 分鐘 11.71%

緩衝加倍,斷鏈率只降 0.7 個百分點,甚至在 20 分鐘時回升。

原因是高鐵板橋站的班距中位數只有 10 分鐘:無論你多早出門,系統都會把你排進「表定抵達 + 緩衝」之後最早的一班,所以你相對於那一班的寬裕度永遠落在 0–10 分鐘之間。提早出門只是換到另一班同樣脆弱的車。

推論:這個問題旅客無法靠自己的行為解決,只能靠事前資訊。

完整方法、口徑與限制見 docs/findings.md


這個 repo 對誰有用

如果你要用 TDX 歷史 API — 直接看 docs/tdx-api-notes.md。 裡面是實測踩出來的坑,官方文件上查不到:

  • 歷史 API 的路徑要有 /Historical/ 這一段,少了就 404
  • 同一個 API 群組有三種回傳格式(單一 JSON 物件 / JSON 陣列 / NDJSON),要分別處理
  • 日期參數有兩種慣例:時刻表走路徑 /Date/{date},其他走查詢字串 ?Dates=
  • 氣象資料用 -99 當缺值哨符,不轉換會污染統計
  • 保存期限:文件寫 2021/06 起,實測只回溯到 2025-01-21,是約 18 個月的滾動窗口
  • 高鐵 AlertInfo 在特定日期會固定回 HTTP 500(伺服器端 bug,重試無效)

如果你想重現這個分析 — 見下方「重現步驟」。


目錄結構

路徑 內容
src/ 全部程式(抓取、轉檔、分析、繪圖)
docs/tdx-api-notes.md TDX 端點盤點與踩坑筆記(本 repo 最有參考價值的部分)
docs/data-catalog.md 各資料集的欄位、筆數與兩種台鐵動態資料來源的差異
docs/findings.md 分析結果、方法與限制
output/ 分析圖表與結果 CSV
data/ 資料集本體(不在版控內,2.9 GB,需自行抓取)

重現步驟

pip install -r requirements.txt
cp .env.example .env      # 填入自己的 TDX 憑證

TDX 憑證申請:https://tdx.transportdata.tw/register 歷史資料 API 需要歷史資料等級的訂閱權限,一般帳號會拿到 403。

python -u src/fetch_extra_api.py    # 抓歷史資料(可中斷續跑,會跳過已存在的日期)
python src/analyze_connection.py    # 產出斷鏈率分析
python src/analyze.py               # 產出誤點分布圖表

fetch_extra_api.py 逐日抓取並寫成 parquet,已存在的日期會自動跳過,所以中斷後直接重跑即可。全量約需數小時。


⚠️ 資料會過期

TDX 歷史 API 是約 18 個月的滾動窗口,舊資料會持續往外掉。

這個 repo 不含資料本體,而本文的分析期間(2025-01-21 起)已有部分落在窗口外,無法再抓取。若你要完整重現,實際能拿到的起始日會晚於此。

想長期累積的話,把 fetch_extra_api.py 設成每日排程抓前一天,成本極低。


授權與資料條款

程式碼採 MIT License — 可自由使用、修改、散布,保留著作權標示即可。

授權只涵蓋程式碼,不涵蓋資料。 TDX 與各政府開放平台的資料各有其使用條款,再散布前請自行確認。本專案的做法是只提供抓取程式,資料由使用者以自己的憑證取得。


環境備註

  • 開發環境為 Windows 11 + Python 3.13
  • requirements.txtpandas==3.0.0 / pyarrow==22.0.0刻意鎖版:更新版本的 pyarrow DLL 會被 Windows Smart App Control 阻擋而無法載入

About

用 TDX 開放資料實測台鐵誤點造成的跨運具轉乘斷鏈率(553 天、3,940 萬筆),附 TDX 歷史 API 踩坑筆記

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages