巢小俊 上海鐵路局計(jì)劃統(tǒng)計(jì)處(同濟(jì)大學(xué))
2012年9月28日,長三角首條采用公交化運(yùn)營的市域鐵路—金山鐵路(上海市稱軌交22號線)開通,金山鐵路全長56 km,圖定每天開行旅客列車36對,采用一站直達(dá)和站站停兩種模式運(yùn)行,列車運(yùn)行最高時速160 km。列車全線運(yùn)行時間最短32 min。金山鐵路的建成和開通運(yùn)營,在沿線城區(qū)構(gòu)建了一條方便快捷的運(yùn)輸通道,在完善上海市交通網(wǎng)絡(luò)、推動地方經(jīng)濟(jì)發(fā)展和進(jìn)一步促進(jìn)城鄉(xiāng)一體化等方面發(fā)揮了重要的作用。金山鐵路是原鐵道部和上海市共同出資建設(shè),按鐵路控股合資公司方式運(yùn)營的。按照《鐵路旅客運(yùn)輸統(tǒng)計(jì)規(guī)則》相關(guān)規(guī)定,需要對該線路的運(yùn)輸情況進(jìn)行統(tǒng)計(jì)。
金山鐵路采用的是鐵路售票系統(tǒng)售票和上海市公共交通卡刷卡進(jìn)站兩種運(yùn)作方式。鐵路售票系統(tǒng)的車票信息,因?yàn)檠赜迷械慕y(tǒng)計(jì)數(shù)據(jù)接口,產(chǎn)生的原始數(shù)據(jù)能滿足鐵路旅客運(yùn)輸統(tǒng)計(jì)的要求。而上海市公共交通卡刷卡方式,因其沒有直接滿足鐵路旅客運(yùn)輸統(tǒng)計(jì)要求的數(shù)據(jù)接口,需要對數(shù)據(jù)進(jìn)行一定的處理以達(dá)到鐵路旅客運(yùn)輸統(tǒng)計(jì)的需要。
根據(jù)《鐵路旅客運(yùn)輸統(tǒng)計(jì)規(guī)則》統(tǒng)計(jì)項(xiàng)目和統(tǒng)計(jì)指標(biāo)相關(guān)規(guī)定,需對發(fā)站、到站、旅客列車車次、旅客列車席別、旅客列車擔(dān)當(dāng)企業(yè)等項(xiàng)目進(jìn)行統(tǒng)計(jì)。
上海市公共交通卡系統(tǒng)只能按以下數(shù)據(jù)結(jié)構(gòu)提供信息:
①交易事件碼;②交通卡號;③設(shè)備節(jié)點(diǎn)號;④流水號;⑤刷卡日期;⑥刷卡時間;⑦卡原金額;⑧本次刷卡金額
其中,交易事件碼為2位16進(jìn)制碼,是在交通卡相關(guān)設(shè)備上產(chǎn)生交易的事件的代碼,比如進(jìn)站,出站扣款等。
設(shè)備節(jié)點(diǎn)號為8位的字符串,第1、2位為線路碼,第3、4位為車站碼,第5、6位為設(shè)備類型,第7、8位為設(shè)備碼(為16進(jìn)制)。根據(jù)設(shè)備節(jié)點(diǎn)號前4位,可以確定交易產(chǎn)生的車站,例如在金山鐵路代表金山衛(wèi)站的代碼前四位為2229。前四位2221的代表上海南站。5、6位設(shè)備類型表示該設(shè)備承擔(dān)的作用,為16進(jìn)制碼,比如1A代表進(jìn)站閘機(jī),15代表出站閘機(jī)等。
顯然,對照《鐵路旅客運(yùn)輸統(tǒng)計(jì)規(guī)則》,上海市公共交通卡系統(tǒng)并不能直接提供發(fā)到站、車次、席別等鐵路旅客運(yùn)輸統(tǒng)計(jì)需要的信息。
僅從數(shù)據(jù)結(jié)構(gòu)來看,經(jīng)過簡單處理還是應(yīng)該能得到相關(guān)數(shù)據(jù)的,但現(xiàn)實(shí)中數(shù)據(jù)遠(yuǎn)比理想狀態(tài)下復(fù)雜。
理想狀態(tài)下,所有旅客均正常進(jìn)出站,閘機(jī)依次留下每位旅客的進(jìn)出站信息,交通卡系統(tǒng)提供的信息應(yīng)為一進(jìn)一出成對出現(xiàn),而且按時間先后可以按先進(jìn)后出配對分組。這種情況下,通過設(shè)備節(jié)點(diǎn)可以確定刷卡車站,通過相應(yīng)的交易事件碼,可以確定是進(jìn)站還是出站信息;通過交通卡號,以及刷卡日期、刷卡時間,將同一交通卡按刷卡的時間順序排序后,就可以生成相應(yīng)的發(fā)到信息對;通過信息對進(jìn)出閘機(jī)的時間(HHMMSS格式),只要建立詳細(xì)的車次字典,通過匹配車次在發(fā)到站??康臅r間,按一定的規(guī)則就可以匹配到相關(guān)的車次,車次的擔(dān)當(dāng)也可以確定;而席別,因?yàn)樵摼€路采用單一席別售票方式也可以解決。
然而,現(xiàn)實(shí)情況是交通卡數(shù)據(jù)每日進(jìn)站數(shù)與出站數(shù)就有不小的差距,而同一交通卡,由于旅客主觀逃票、旅客進(jìn)出閘機(jī)間隔太小、閘機(jī)設(shè)備偶發(fā)故障等原因,有時只有進(jìn)站信息沒有出站信息,有時只有出站信息而沒有進(jìn)站信息,還有些數(shù)據(jù)對的進(jìn)出時間差遠(yuǎn)遠(yuǎn)大于正常列車的運(yùn)行時間。進(jìn)一步匹配后還發(fā)現(xiàn)有發(fā)到站相同的記錄。這些問題的解決,對數(shù)據(jù)處理提出了很大的挑戰(zhàn)。
如何解決以上問題,確保數(shù)據(jù)實(shí)現(xiàn)鐵路旅客運(yùn)輸統(tǒng)計(jì)的要求。經(jīng)過調(diào)查、討論,提出以下設(shè)想:
在線路中心建立進(jìn)出站統(tǒng)計(jì)報(bào)表用于每日進(jìn)出站閘機(jī)刷卡的總量控制,結(jié)構(gòu)如表1所示。
表1 每日進(jìn)出站閘機(jī)刷卡總量控制表
其中設(shè)備/車站ID對應(yīng)的是設(shè)備節(jié)點(diǎn)號第7、8位設(shè)備碼。
總量控制具體流程如下:
(1)讀取數(shù)據(jù)文件全信息加載到原始數(shù)據(jù)表。
(2)讀取進(jìn)出站統(tǒng)計(jì)報(bào)表全信息加載到控制文件數(shù)據(jù)表。
(3)按日匯總原始數(shù)據(jù)表中設(shè)備節(jié)點(diǎn)號第 5,6位為 15(進(jìn)站)和 1A(出站)的記錄,并與控制表文件中交通卡進(jìn)站和出站數(shù)量核對,數(shù)據(jù)發(fā)生不一致時報(bào)錯提示。
(4)按照流水號進(jìn)行連號,每個車站的每個設(shè)備每月產(chǎn)生的數(shù)據(jù)順序號都應(yīng)該是連續(xù)的,且每月首日重置。因此,從每月2日起即可與上一日數(shù)據(jù)進(jìn)行連號檢查,以避免數(shù)據(jù)缺失。
(1)按乘車日期從“原始數(shù)據(jù)表”中讀取每張交通卡的交易記錄,按進(jìn)(出)閘機(jī)的時分逐一匹配,并將匹配結(jié)果存放于“原始匹配表”中。一天內(nèi)同一交通卡數(shù)據(jù)一進(jìn)一出成對,且按時間先后必須為先進(jìn)后出的,對于這類數(shù)據(jù),認(rèn)定為成功匹配的記錄 設(shè)置相應(yīng)狀態(tài)碼字段例如:“00”(代碼為臨時表達(dá),實(shí)際處理時另定義,下同);
對有進(jìn)無出或者只出不進(jìn)等未能配對的非正常情況數(shù)據(jù),設(shè)置相應(yīng)的狀態(tài)碼。例如:
有發(fā)站沒有到站的記錄,狀態(tài)碼字段置為“11”;有到站沒有發(fā)站的記錄,狀態(tài)碼字段置為“22”;
(2)對于能匹配成對,但發(fā)站和到站相同的記錄,狀態(tài)碼字段置為“33”;
(3)通過了解,有進(jìn)無出或者只出不進(jìn)等未能配對的非正常情況數(shù)據(jù),在下一次進(jìn)站的時候都需要到BOM窗口進(jìn)行進(jìn)、出站更新操作。為此在月末需要對按日匹配狀態(tài)碼為“11”和“22”的數(shù)據(jù)在全月范圍內(nèi)的BOM窗口數(shù)據(jù)進(jìn)行再次匹配;
①有發(fā)站沒有到站的記錄(狀態(tài)碼為“11”),如匹配成功,則狀態(tài)碼更新為“44”,更新相關(guān)的到站信息;
②同時與之對應(yīng)的有到無發(fā)站記錄(狀態(tài)碼為“22”),如匹配成功,狀態(tài)碼更新為“55”,更新相關(guān)的發(fā)站信息;
③接著檢查狀態(tài)碼為“55”的記錄發(fā)到站是否一致,如一致則修改狀態(tài)碼為“66”;
(4)異常數(shù)據(jù)的處理:
通過以上步驟的處理,仍有部分?jǐn)?shù)據(jù)由于交通卡未再次在金山線各站再次使用,沒有匹配到相關(guān)的“進(jìn)出站更新”數(shù)據(jù),因此必須做異常處理:
①對于有發(fā)站沒有到站的記錄(狀態(tài)碼為“11”)的按照該發(fā)站最遠(yuǎn)的到站匹配;
②對于有到站沒有發(fā)站的記錄(狀態(tài)碼為“22”)的按照到站和票價匹配滿足到站和票價的最遠(yuǎn)發(fā)站匹配;
(5)根據(jù)《鐵路金山線上海市公共交通使用規(guī)則》的相關(guān)規(guī)定,對于發(fā)到站相同的記錄(狀態(tài)碼為“33”和“66”的),如果進(jìn)出站時間間隔小于15 min,可以認(rèn)定為未發(fā)生實(shí)際運(yùn)輸,則狀態(tài)碼為“33”的更新為“88”,狀態(tài)碼為“66”的更新為“99”。進(jìn)出站間隔大于15 min但在1 h內(nèi)的數(shù)據(jù)以該站3元最遠(yuǎn)往返一次生成數(shù)據(jù),超過1 h的,按最遠(yuǎn)距離數(shù)據(jù)往返一次生成數(shù)據(jù),狀態(tài)碼設(shè)定為“77”。
(1)建立按日詳細(xì)車次??孔值洹?/p>
(2)根據(jù)對旅客出行習(xí)慣的分析,旅客在出發(fā)時在車站滯留時間相對旅客到達(dá)時在車站滯留的時間更具不規(guī)律性,因此對于數(shù)據(jù)的處理,在有到站時間情況下,以出閘機(jī)時分為準(zhǔn),選取列車??康秸镜臅r間在旅客出閘機(jī)時分之前,且離出閘機(jī)時分最近的車次進(jìn)行匹配。
(3)對于有發(fā)無到的數(shù)據(jù)匹配,則以進(jìn)閘時分為準(zhǔn),列車??砍霭l(fā)站的時間在旅客進(jìn)閘機(jī)時分之后,且離進(jìn)閘機(jī)時分最近的車次進(jìn)行匹配。
將車次匹配完畢的有效數(shù)據(jù)(根據(jù)上述處理過程,狀態(tài)碼為“00”、“11”、“22”、“55”、“77”的為有效數(shù)據(jù))傳輸?shù)阶罱K結(jié)果表中,在月末匯總至用于報(bào)表生產(chǎn)的數(shù)據(jù)接口。
根據(jù)以上設(shè)想,用相當(dāng)天數(shù)的數(shù)據(jù)進(jìn)行試驗(yàn),對得到的最終結(jié)果進(jìn)行了相關(guān)分析,分時段運(yùn)輸量的變化曲線與金山線運(yùn)行各車次的實(shí)際運(yùn)輸峰谷波動的規(guī)律基本吻合。根據(jù)試驗(yàn)情況,按以上設(shè)計(jì)思想優(yōu)化,組織軟件人員細(xì)化流程,建立相關(guān)字典(如金山線站名字典、按日車次??孔值?、票價字典等),編制軟件并投入正式生產(chǎn),還建立了一系列數(shù)據(jù)控制表以確保數(shù)據(jù)在鐵路旅客運(yùn)輸統(tǒng)計(jì)各工序間流轉(zhuǎn)時的質(zhì)量。通過對該軟件在投入運(yùn)行后半年時間的數(shù)據(jù)跟蹤分析,分時段運(yùn)輸量的變化曲線基本呈穩(wěn)定狀態(tài),因此,可以認(rèn)為該設(shè)計(jì)思想是成功的。