在Android 1.3.0版及iOS 1.1.0版中,TransTaiwan加入了列車即時地圖的功能,將台鐵和高鐵所有位於路線上的列車即時呈現於地圖中。
由於我們所能取得的資料有限,因此本功能含有相當大的估計成分,以下將說明TransTaiwan的即時位置演算法中所考慮到的已知條件,以及常見的造成預測不準之因素。
演算法所考量之條件
1. 時刻表
顯而易見的,演算法最核心的部分就是依照台鐵/高鐵的官方時刻表來計算出發和到達時間,值得注意的是,演算法所計算出的起訖時間並非時刻表中的0秒,而是會根據其他因素略為提早或延遲。 例如高鐵8XX次站站停列車,在待避站前的排點通常較鬆,因此計算出的到達時間可能會較為提早。
2. 各型列車之最高速以及加減速
想要計算列車的位置,也必須考慮列車本身的性能,因此我們的演算法對於各型列車會使用不同的加減速函數,而且根據排點的鬆緊不同,也會採取不同的行駛模式,意即採用不同的加減速函數。
例如台鐵柴聯自強號在西部的排點極鬆,因此演算法會採用節能運轉模式,並不會全速出力,也不會使列車加速至營運最高速限,且達到一定速度後會採取滑行模式。
本演算法採用各種策略來模擬不同路況與排點中列車最有可能採取的運轉模式,根據實測這些策略能夠使預測結果更為接近實際列車行駛狀況。
3. 彎道限速和中性區間
本演算法在列車過彎時會根據該彎道之速限行駛,彎道之速限為根據我們所記錄到的台鐵速限標誌,另外,太魯閣號採用TEMU速限,普悠瑪號則用TEMU速限-10km/h做計算。
在正常情況行駛中必拐的道岔也會視為彎道限速,一併考慮,例如嘉義北上列車出站必拐道岔,彰化北上經海線必拐道岔等等。
演算法同時也會考量中性區間,所有電氣化列車在通過中性區間時不會加速。
4. 誤點狀況
當列車誤點時,演算法會使用誤點後的時間來做上述計算,因此當列車誤點狀況變動時,預估的位置也會有跳動情形。
造成預測的準度降低之常見原因
1. 施工慢行
根據實測,本演算法最常遇到的問題是施工慢行造成的延誤,使預估準度降低,需要等列車通過下一個有誤點紀錄之車站才能修正準度。
實務上,本演算法難以將施工慢行列入考量原因主要有二,一為我們無法得知所有慢行的確切路段和限速,二為演算法在遇到慢行路段時會因正常行駛無法準點抵達造成計算上的困難。
2. 支線路段或較長的無資料路段
當列車位於台鐵支線路段,或是較長的無即時資料路段中,若發生誤點狀態變動也會因無法取得資料而造成預估準度下降。
3. 來源端資料的即時性以及準確性
TransTaiwan的資料來源為交通部PTX平台,而其中台鐵的誤點資料的品質並非一直很穩定,根據我們的觀察發現有時會有部分錯誤資料,或是因PTX平台故障時,也會造成預估不準。 另外,也可能發生實際運用車種和時刻表公布的不符(區間車尤其常見),也會造成些微誤差。
4. 列車臨時被抓待避
由於我們的資料來源只有當列車離站後才會有誤點記錄,因此當列車臨時被抓待避而長時間停於站內時,我們無法得知最新的誤點狀態。
5. 其他
本演算法所計算出的結果為正常狀態下列車可能的位置,因此任何預期外的行駛狀況,如吃閉塞、梅花燈,或因旅客因素使得延誤關門時間等,都會造成預估失準。 同時,也有部分演算法難以考慮的因素(時刻表隱藏的秒數(台鐵最小單位30秒,高鐵15秒)、路段上下坡、進站是否拐道岔、中性區間PP和EMU無電時間不同、不在時刻表上的待避點等等),也可能是不準的因素。