VBA在公路OD 调查数据处理中的应用

2013-11-06 02:54:56王卫东潘文刚
山西建筑 2013年5期
关键词:数组数据处理车型

王卫东 孙 伟 潘文刚

(青岛市市政工程设计研究院有限责任公司,山东青岛 266000)

0 引言

按照现行的交通部部颁公路网规划和工预可编制办法,公路OD调查是公路网规划、公路工预可研究交通量预测交通四阶段方法的数据基础。笔者实践了多个工预可研究项目,OD调查数据的后期处理一直是最费时间和人力的工作,往往一个项目内业部分的2/3的时间都在进行OD调查基础数据的处理。大量重复枯燥无味的重复性、机械性工作导致了工作效率低下,工作难度增加。

具体表现为如下几个方面:

1)现有OD数据处理软件格式要求严格:数据处理过程要不断手工进行数据模式的转换。

2)现有OD数据处理软件大多基于DOS界面,操作繁琐。

3)数据微调工作难度大:往往加几个小区、调整车辆特征可能要重复所有的数据处理过程。

4)纯手工操作过程过多,工作效能低下。

采用VBA对Excel进行二次开发的办法进行OD处理,可以很好的解决以上问题。

1 VBA

VBA是Visual Basic Application的简写,是微软应用可编程应用软件对办公软件进行操作的完美实现,它作为一种通用的宏语言可操作常用应用软件,例如 Excel,Word,Access,AutoCAD,TransCAD等。

一种可跨越多个应用软件,使常用应用软件产品具有高效、灵活且一致性的开发工具以根据用户和工作需要提高软件的操作性和扩展软件的功能一度是软件使用者所梦寐以求的目标,VBA正是微软为了解决这一问题而开发出来的。常用的Excel,Word,Access,Project等都采用通用的宏语言供用户开发使用,不需要独立的去学习专用语言,它们之间互相兼容,使得数据可以在各个应用软件之间进行互联,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界面,而且VBA与原应用软件的宏语言相兼容,以保障用户在代码和工作上的成果。

VBA Excel正是基于VBA的Excel编程技术。它可以解决Excel数据表格存储和处理中各种数据操作的重复性劳作,节省时间,简化工作步骤,减少工作量,降低失误,实现数据操作的连续性、准确性和编辑性。

2 公路规划OD数据处理

公路规划的原始OD调查数据是包括调查点、车型(客、货、拖拉机等)、货类(人、煤炭、石油、矿产等)、机动车起点(数字编号)、机动车终点(数字编号)、是否旅游等信息的逐条数据条。因为后续分析和四步骤法预测的需要,必须进行数据处理获取分类OD表和分析表。数据处理主要步骤结构图见图1。

公路规划的OD数据处理主要任务:

1)把现场采集的分条原始OD数据进行重新分类和列表,获取各种车型和货类OD表;

2)要将原始OD数据进行描述性分析,获取各种货类的指标性数据;

3)要将各调查点原始OD数据进行合并处理,获取整个区域内的OD数据表;

4)要将原始OD数据进行加工整理,便于交通规划软件输入和后期统计分析;

5)要将原始OD数据进行扩样操作,以获取每种车型出行量OD表。

首先是将分条的OD记录按照分车型和分货类转换成OD表格式。

其次要对原始OD表进行扩样,扩样采用如下公式进行:

Qijk=Vijk·αk·Sk·Wk·Mk。

式中:Qijk——i区到j区的第k种车型的出行量;

Vijk——i区到j区的第k种车型的OD调查样本量;

αk——第k种车型的昼夜比;

Sk——抽样率倒数;

Wk——周日不均匀系数;

Mk——月不均匀系数。

图1 数据处理主要步骤结构图

再次是按照《公路工程技术标准》规定的车辆折算比例进行标准车折算。

最后按照常规串并联规则进行OD的合并汇总获取区域的OD数据。

车辆运输特性文件的主要输出内容包括分车型实载率、里程利用率和货车重车率、车辆数、额载等有关指标。货物载运状况文件则是列出分车型、分货类的装载量调查统计分析结果。

无需置疑,这些数据操作如果用人工进行逐条操作会浪费太多的人力和时间,大量操作无疑会导致人为错误的出现。现在业内常采用的软件基于DOS环境编写的Fortran和C++编程序,存在数据格式要求苛刻,需要人工反复进行数据格式转换,不具备Windows界面,操作复杂,不易上手等问题,也不允许用户更改参数和优化处理步骤。

3 VBA Excel实现OD数据处理

VBA Excel可以实现对常用Excel表格的程序化管理,实现数据的程序化操作。程序存储于数据表内,以宏的形式运行,易于被用户接受。Excel表格是目前计算机存储数据最为普遍的形式,并且提供了多种其他形式数据文件的无缝导入,兼容性比较强。

VBA Excel处理数据就是运用VBA程序操作各个Excel数据文件,使得数据按照算法不断的计算,交换,获取处理结果。按照如上所述公路OD处理的原理,作者设计了基于VBA Excel的公路OD处理程序。

首先,参数输入过程。将所要处理的车型、折算系数、扩大系数、串并联规则都放入设定好的Excel工作簿主文件的4个工作表里,格式采用固定格式,以确保操作代码能够找到这些输入数据。

第二,编写代码对各参数进行读取,并命名成数组,进驻内存,备用。

第三,打开原始OD条工作簿,读取要处理的原始OD条,并命名为数组,进驻内存,备用。

第四,按照算法对读取的各个数组进行数据交换处理,并命名为数组,将处理结果存储于该数组,进驻内存。

第五,将处理的结果数组按照不同的点和车型进行分组存储为工作簿文件。

最后,将结果工作簿文件格式进行处理,以获取更加简洁、清晰的处理结果,并关闭打开的原始OD条工作簿。

4 实例及结语

以四川某高速公路工可为例,对程序进行演示和分析。对实例采用以往OD处理软件和VBA程序两种不同方法进行处理分析(见图2~图4及表1)。

图2 程序主要文件构成

图3 数据输入示意图

图4 数据处理结果

表1 不同方法处理效率对比表

通过实例分析可以看出用VBA进行数据处理简单易行,优点突出,可以作为OD处理的新办法推广进行。

[1] 晶辰工作室.Excel2000 VBA开发实例指南[M].北京:电子工业出版社,2000.

[2] 李晓玫,杨小平.Excel中的VBA程序设计[J].四川师范大学学报(自然科学版),2004(10):6.

[3] 符耀华.公路交通量及OD调查统计分析软件开发[J].交通标准化,2008(5):11.

附:源代码(部分)

猜你喜欢
数组数据处理车型
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
心理学报(2022年4期)2022-04-12 07:38:02
JAVA稀疏矩阵算法
电脑报(2022年13期)2022-04-12 00:32:38
2022全球期待车型 TOP10
车迷(2022年1期)2022-03-29 00:50:20
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
水泵技术(2021年3期)2021-08-14 02:09:20
一种高速自由流车型识别系统
JAVA玩转数学之二维数组排序
电脑报(2020年24期)2020-07-15 06:12:41
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
车型 (五)
2016年最值得期待的十款国产车型
车迷(2015年12期)2015-08-23 01:30:32
寻找勾股数组的历程