我们对采集的原始数据进行分析,可以总结出,在数据采集过程中错误数据的产生的原因有以下几个方面:
(1) 检测设备出现故障。这种问题的产生是由于铺设在道路上的线圈自身的原因,在某一时刻或者某一段时间内,线圈作为一种硬件检测设备,难免会存在一定的失灵情况,由于硬件的不稳定就会造成在该时间段内线圈并不能够正常工作,从而会对原始数据的采集造成一定的影响,造成数据的不完整[29]。
(2) 传输线路的故障。在线圈采集到数据之后会用过特定的通讯设备将数据传输到数据接收端,在这个过程中,由于线路被破坏,或者受到一定的干扰,都会造成数据在传输过程中丢失过着出现数据失真。
(3) 突发的交通事故或认为因素造成的交通状况。这种突发情况的发生会使得交通流出现异常的波动,但是这种异常的波动属于真实的交通状况,我们称之为异常数据。
结合错误数据产生的不同原因,我们分析交通数据的错误表现,可以将错误数据分成3类:
(4) 数据缺失:数据缺失是指在数据接收端拿到的原始数据中,某一个或者多个线圈在一定的时间段内没有数据。数据缺失的表现形式主要是在数据库中该线圈的流量、速度、车流密度的值均为0
(5) 数据失真:数据失真也叫数据错误,是指数据与真实的数据不相符,这类数据的外在数据形态与正常的数据并无太大的差别,但是并不是交通状况的真实反映,不能用来进行预测。
(6) 数据异常:数据异常是指数据不同正常情况的,较之正常情况出现一定的波动,这种情况的产生通常是由于突发交通事故或者人为造成的交通状况等,数据异常并不是数据的失真,是交通状况的真实反映。
2.2 C#简介
如上所述,C#是可用于创建要运行在.NET CLR上的应用程序的语言之一,它从C和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语有的许多优点,并解决了它们的问题。
使用C#开发应用程序比使用C++简单,因为其语法比较简单。但是,C#是一种强大的语言,在C++中能完成的任务在C#中也能完成。如前所述,C#中与C++比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。这个高级编程技术是非常危险的(正如它的名称),因为它可能覆盖系统中重要的内存块,导致严重的后果。
C#代码常常比C++略长一些。这是因为C#是一种类型安全的语言(与C++不同)。在外行人看来,这表示一旦为某些数据指定了类型,就不能转换为另一个不相关的类型。所以,在类型之间转换时,必须遵守严格的规则。执行相同的任务时,用C#编写的代码通常比C++长。但C#代码更健壮,调试也比较简单。在C#中,不能完成诸如“把4字节的内存放在数据中,并把它解释为X”等的任务,但这并不是一件坏事。
C#只是.NET开发的一种语言,但在我看来,这是最好的一种语言。C#的优点是,它是唯一为.NET而设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。要使语言如VB.NET尽可能类似了其以前的语言,且仍遵循CLR,就不能完全支持.NET代码库的某些功能。但C#能使用.NET代码库提供的每种功能。
面向对象编成(Object-Oriented Programming)是创建计算机应用程序的一种相当新的方法,它解决了所谓的传统编程技巧带来的问题。在这之前的编程方法称为函数(或过程)化编程,常常会导致所谓的单一应用程序,即所有的功能包含在几个代码模块中(常常是一个代码模块)。而使用OOP技术,常常要使用许多代码模块,每个模块多提供特定的功能,每个模块都是孤立的,甚至与其他模块完全独立。这种编程方法提供了非常大的多样性,大大增加了代码的重用机会。 C#交通数据采集及整理方法的设计与实现(5):http://www.youerw.com/jisuanji/lunwen_274.html