王衛(wèi)東 孫 偉 潘文剛
(青島市市政工程設(shè)計研究院有限責(zé)任公司,山東青島 266000)
按照現(xiàn)行的交通部部頒公路網(wǎng)規(guī)劃和工預(yù)可編制辦法,公路OD調(diào)查是公路網(wǎng)規(guī)劃、公路工預(yù)可研究交通量預(yù)測交通四階段方法的數(shù)據(jù)基礎(chǔ)。筆者實踐了多個工預(yù)可研究項目,OD調(diào)查數(shù)據(jù)的后期處理一直是最費時間和人力的工作,往往一個項目內(nèi)業(yè)部分的2/3的時間都在進(jìn)行OD調(diào)查基礎(chǔ)數(shù)據(jù)的處理。大量重復(fù)枯燥無味的重復(fù)性、機(jī)械性工作導(dǎo)致了工作效率低下,工作難度增加。
具體表現(xiàn)為如下幾個方面:
1)現(xiàn)有OD數(shù)據(jù)處理軟件格式要求嚴(yán)格:數(shù)據(jù)處理過程要不斷手工進(jìn)行數(shù)據(jù)模式的轉(zhuǎn)換。
2)現(xiàn)有OD數(shù)據(jù)處理軟件大多基于DOS界面,操作繁瑣。
3)數(shù)據(jù)微調(diào)工作難度大:往往加幾個小區(qū)、調(diào)整車輛特征可能要重復(fù)所有的數(shù)據(jù)處理過程。
4)純手工操作過程過多,工作效能低下。
采用VBA對Excel進(jìn)行二次開發(fā)的辦法進(jìn)行OD處理,可以很好的解決以上問題。
VBA是Visual Basic Application的簡寫,是微軟應(yīng)用可編程應(yīng)用軟件對辦公軟件進(jìn)行操作的完美實現(xiàn),它作為一種通用的宏語言可操作常用應(yīng)用軟件,例如 Excel,Word,Access,AutoCAD,TransCAD等。
一種可跨越多個應(yīng)用軟件,使常用應(yīng)用軟件產(chǎn)品具有高效、靈活且一致性的開發(fā)工具以根據(jù)用戶和工作需要提高軟件的操作性和擴(kuò)展軟件的功能一度是軟件使用者所夢寐以求的目標(biāo),VBA正是微軟為了解決這一問題而開發(fā)出來的。常用的Excel,Word,Access,Project等都采用通用的宏語言供用戶開發(fā)使用,不需要獨立的去學(xué)習(xí)專用語言,它們之間互相兼容,使得數(shù)據(jù)可以在各個應(yīng)用軟件之間進(jìn)行互聯(lián),使得程序設(shè)計人員僅需學(xué)習(xí)一種統(tǒng)一的標(biāo)準(zhǔn)宏語言,就可以轉(zhuǎn)換到特定的應(yīng)用軟件上去,程序設(shè)計人員在編程和調(diào)試代碼時所看到的是相同的用戶界面,而且VBA與原應(yīng)用軟件的宏語言相兼容,以保障用戶在代碼和工作上的成果。
VBA Excel正是基于VBA的Excel編程技術(shù)。它可以解決Excel數(shù)據(jù)表格存儲和處理中各種數(shù)據(jù)操作的重復(fù)性勞作,節(jié)省時間,簡化工作步驟,減少工作量,降低失誤,實現(xiàn)數(shù)據(jù)操作的連續(xù)性、準(zhǔn)確性和編輯性。
公路規(guī)劃的原始OD調(diào)查數(shù)據(jù)是包括調(diào)查點、車型(客、貨、拖拉機(jī)等)、貨類(人、煤炭、石油、礦產(chǎn)等)、機(jī)動車起點(數(shù)字編號)、機(jī)動車終點(數(shù)字編號)、是否旅游等信息的逐條數(shù)據(jù)條。因為后續(xù)分析和四步驟法預(yù)測的需要,必須進(jìn)行數(shù)據(jù)處理獲取分類OD表和分析表。數(shù)據(jù)處理主要步驟結(jié)構(gòu)圖見圖1。
公路規(guī)劃的OD數(shù)據(jù)處理主要任務(wù):
1)把現(xiàn)場采集的分條原始OD數(shù)據(jù)進(jìn)行重新分類和列表,獲取各種車型和貨類OD表;
2)要將原始OD數(shù)據(jù)進(jìn)行描述性分析,獲取各種貨類的指標(biāo)性數(shù)據(jù);
3)要將各調(diào)查點原始OD數(shù)據(jù)進(jìn)行合并處理,獲取整個區(qū)域內(nèi)的OD數(shù)據(jù)表;
4)要將原始OD數(shù)據(jù)進(jìn)行加工整理,便于交通規(guī)劃軟件輸入和后期統(tǒng)計分析;
5)要將原始OD數(shù)據(jù)進(jìn)行擴(kuò)樣操作,以獲取每種車型出行量OD表。
首先是將分條的OD記錄按照分車型和分貨類轉(zhuǎn)換成OD表格式。
其次要對原始OD表進(jìn)行擴(kuò)樣,擴(kuò)樣采用如下公式進(jìn)行:
Qijk=Vijk·αk·Sk·Wk·Mk。
式中:Qijk——i區(qū)到j(luò)區(qū)的第k種車型的出行量;
Vijk——i區(qū)到j(luò)區(qū)的第k種車型的OD調(diào)查樣本量;
αk——第k種車型的晝夜比;
Sk——抽樣率倒數(shù);
Wk——周日不均勻系數(shù);
Mk——月不均勻系數(shù)。
圖1 數(shù)據(jù)處理主要步驟結(jié)構(gòu)圖
再次是按照《公路工程技術(shù)標(biāo)準(zhǔn)》規(guī)定的車輛折算比例進(jìn)行標(biāo)準(zhǔn)車折算。
最后按照常規(guī)串并聯(lián)規(guī)則進(jìn)行OD的合并匯總獲取區(qū)域的OD數(shù)據(jù)。
車輛運輸特性文件的主要輸出內(nèi)容包括分車型實載率、里程利用率和貨車重車率、車輛數(shù)、額載等有關(guān)指標(biāo)。貨物載運狀況文件則是列出分車型、分貨類的裝載量調(diào)查統(tǒng)計分析結(jié)果。
無需置疑,這些數(shù)據(jù)操作如果用人工進(jìn)行逐條操作會浪費太多的人力和時間,大量操作無疑會導(dǎo)致人為錯誤的出現(xiàn)。現(xiàn)在業(yè)內(nèi)常采用的軟件基于DOS環(huán)境編寫的Fortran和C++編程序,存在數(shù)據(jù)格式要求苛刻,需要人工反復(fù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,不具備Windows界面,操作復(fù)雜,不易上手等問題,也不允許用戶更改參數(shù)和優(yōu)化處理步驟。
VBA Excel可以實現(xiàn)對常用Excel表格的程序化管理,實現(xiàn)數(shù)據(jù)的程序化操作。程序存儲于數(shù)據(jù)表內(nèi),以宏的形式運行,易于被用戶接受。Excel表格是目前計算機(jī)存儲數(shù)據(jù)最為普遍的形式,并且提供了多種其他形式數(shù)據(jù)文件的無縫導(dǎo)入,兼容性比較強(qiáng)。
VBA Excel處理數(shù)據(jù)就是運用VBA程序操作各個Excel數(shù)據(jù)文件,使得數(shù)據(jù)按照算法不斷的計算,交換,獲取處理結(jié)果。按照如上所述公路OD處理的原理,作者設(shè)計了基于VBA Excel的公路OD處理程序。
首先,參數(shù)輸入過程。將所要處理的車型、折算系數(shù)、擴(kuò)大系數(shù)、串并聯(lián)規(guī)則都放入設(shè)定好的Excel工作簿主文件的4個工作表里,格式采用固定格式,以確保操作代碼能夠找到這些輸入數(shù)據(jù)。
第二,編寫代碼對各參數(shù)進(jìn)行讀取,并命名成數(shù)組,進(jìn)駐內(nèi)存,備用。
第三,打開原始OD條工作簿,讀取要處理的原始OD條,并命名為數(shù)組,進(jìn)駐內(nèi)存,備用。
第四,按照算法對讀取的各個數(shù)組進(jìn)行數(shù)據(jù)交換處理,并命名為數(shù)組,將處理結(jié)果存儲于該數(shù)組,進(jìn)駐內(nèi)存。
第五,將處理的結(jié)果數(shù)組按照不同的點和車型進(jìn)行分組存儲為工作簿文件。
最后,將結(jié)果工作簿文件格式進(jìn)行處理,以獲取更加簡潔、清晰的處理結(jié)果,并關(guān)閉打開的原始OD條工作簿。
以四川某高速公路工可為例,對程序進(jìn)行演示和分析。對實例采用以往OD處理軟件和VBA程序兩種不同方法進(jìn)行處理分析(見圖2~圖4及表1)。
圖2 程序主要文件構(gòu)成
圖3 數(shù)據(jù)輸入示意圖
圖4 數(shù)據(jù)處理結(jié)果
表1 不同方法處理效率對比表
通過實例分析可以看出用VBA進(jìn)行數(shù)據(jù)處理簡單易行,優(yōu)點突出,可以作為OD處理的新辦法推廣進(jìn)行。
[1] 晶辰工作室.Excel2000 VBA開發(fā)實例指南[M].北京:電子工業(yè)出版社,2000.
[2] 李曉玫,楊小平.Excel中的VBA程序設(shè)計[J].四川師范大學(xué)學(xué)報(自然科學(xué)版),2004(10):6.
[3] 符耀華.公路交通量及OD調(diào)查統(tǒng)計分析軟件開發(fā)[J].交通標(biāo)準(zhǔn)化,2008(5):11.
附:源代碼(部分)