发明内容
为解决上述问题,本发明提供了一种自动化的比对方法和系统用以能提高数据比对结果的准确性。
根据本发明的一个方面,提供了一种LKJ基础数据比对方法,包括以下步骤,
步骤一、将需要对比的基础数据源文件解析以获取对应的第一基础数据;
步骤二、将所述第一基础数据拆分为独立数据块以获取对应的第二基础数据;
步骤三、将所述第二基础数据按业务类型重新分类以建立模块化架构数据并设置搜索关键字;
步骤四、在所述模块化架构数据中输入关键字进行匹配并将匹配的关键字对应的搜索信息进行比对后输出比对结果;
步骤五、对所述比对结果进行判断并依据判断结果自动生成数据修改明细表和数据模拟试验大纲。
根据本发明的一个实施例,在步骤二中,将所述第一基础数据拆分为独立数据块包括:
将所述第一基础数据按交路拆分为交路数据;
将所述交路数据按上下行线路拆分为独立数据块。
根据本发明的一个实施例,建立模块化架构数据包括:
将所述第二基础数据按业务类型分类为业务数据,所述业务数据包括运输类运行组织数据、机务类运行组织数据、工务类线路基础数据、电务类线路基础数据和机务类线路基础数据;
建立对应放置所述业务数据的数据模块并将所述业务数据放置于所述数据模块中以建立模块化架构数据。
根据本发明的一个实施例,所述搜索关键字包括车站、信号机、里程变化点、应答器、股道、标号和转移数据。
根据本发明的一个实施例,在步骤四中,进一步包括:
精确匹配过程,在对比的模块化架构数据和被对比的模块化构架数据中搜索完全相同的关键字,如搜索到完全相同的关键字且该关键字在对比的模块化架构数据和被对比的模块化构架数据中的所有属性信息完全相同,则关键字精确匹配成功,将该关键字对应的搜索信息进行比对并输出比对结果;
如精确匹配不成功,则进入模糊匹配过程,在对比的模块化架构数据中重新搜索,如对比的模块化架构数据中某条数据与被对比的模块化架构数据中一条数据的数据类型相同、制式属性相同且编号和里程相同或相似,且该条数据之后的第一条数据中的关键字信息与被对比的模块化架构数据中的一条数据相同或相似,则模糊匹配成功,将获得的搜索信息进行比对并输出比对结果。
根据本发明的一个实施例,在步骤五中,所述判断包括:
如比对结果为一对一,则将比对结果自动生成数据修改明细表和数据模拟实验大纲;
如比对结果为一对多,则采用人机交互方式设置搜索范围重新进行关键字匹配直到比对结果为一对一,将比对结果自动生成数据修改明细表和数据模拟试验大纲。
根据本发明的一个实施例,所述人机交互方式设置搜索范围包括按站名表、数据块、交路数据和文件改变所述关键字的搜索范围。
根据本发明的另一个方面,还提供了一种LKJ基础数据比对系统,包括:
基础数据源文件解析模块,其用于将基础数据源文件解析为第一基础数据;
基础数据比对模块,其用于将所述第一基础数据拆分为独立数据块以获取第二基础数据,将所述第二基础数据按业务类型重新分类并建立模块化架构数据,同时设置搜索关键字,在所述模块化架构数据中输入关键字进行匹配,将匹配的关键字对应的搜索信息进行比对并输出比对结果;
比对结果智能化显示模块,其用于将所述基础数据比对模块输出的数据差异用不同色彩进行直观显示;
数据修改明细表模块,其用于将比对结果自动生成数据修改明细表;
数据模拟试验大纲模块,其用于依据所述数据修改明细表自动生成数据模拟试验大纲。
根据本发明的一个实施例,所述基础数据比对模块包括:
站名表比较子模块,其用于对站名表划分范围内的数据进行比较;
数据块比较子模块,其用于对指定数据块范围内的数据进行比较;
交路数据比较子模块,其用于对指定交路数据范围内的数据进行比较;
文件比较子模块,其用于对整个对比文件范围内的数据进行比较。
本发明带来了以下有益效果:
本发明可以不通过数据转换来直接比对基础数据源文件,省去了数据转换环节,提高了数据的安全性。本发明同时实现了数据比对和结果输出的自动化和智能化,代替人工核对,提高了工作效率。本发明根据LKJ基础数据结构,设置关键字精确匹配和模糊匹配两种工作方式,并可人工设置匹配范围,从而提高了比对结果的准确性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
LKJ基础数据是指纳入铁路局《列车运行图技术资料》中的线路、信号、接触网、站场等设备、设施的线路基础数据,以及车站接发车经由股道、开车对标距离特殊地点等的运行组织数据。LKJ基础数据是LKJ控制列车安全运行的基础。当LKJ基础数据发生变更时,需要对数据变化内容进行分析。
现有的查找LKJ基础数据差异的方法主要有两种。一种为采用人工核对方式查找数据差异、人工编写数据修改明细表和数据模拟试验大纲。该方法手段原始、效率低下,并且容易遗漏数据。另外一种为将基础数据源文件转化为文本文件,利用通用数据比较软件对文本文件进行比对,人工确认比较结果后编写数据修改明细表和数据模拟试验大纲。该方法需要进行中间转换,依赖数据协议,通用性差。同时,比对时采用的哈希表或正则表达式等算法本身并未考虑到LKJ基础数据特定的数据结构,容易出现比较结果不准确问题。因此,以上两种方式均存在安全性问题。所以本发明提出了一种自动化的比对方法和系统用以能提高数据比对结果的准确性。
第一实施例
图1所示为根据本发明一实施例的LKJ基础数据比对方法的方法流程图。下面参考图1对本发明的各个步骤进行详细说明。
在步骤S001中,对需要对比的基础数据源文件进行解析来获取第一基础数据。LKJ基础数据包括线路基础数据和运行组织数据。这两种基础数据分别由不同的铁路工作部门提供。各个工作部门将提供的基础数据通过专用软件编辑形成基础数据源文件后提交到相应部门。相应部门对接收到的基础数据源文件进行解析以得到所需的基础数据。
在步骤S002中,将解析后的第一基础数据拆分为独立数据块以获取第二基础数据。在该步骤中,数据的拆分可分为两步。
首先,基于列车运行的交路将第一基础数据拆分为交路数据。交路为机车担当运输任务的固定周转区段。
然后,将交路数据按列车上下行路线拆分为独立数据块从而获得第二基础数据。此处上下行线路为铁路线路的工务的上下行,如指定京广线为1号交路,则上行线为列车运行方向为广州至北京的线路,反之为下行线路。
在步骤S003中,基于基础数据的业务类型对第二基础数据的每个独立数据块重新拆分从而建立模块化架构数据,同时设置搜索关键字。
LKJ基础数据分为运行组织数据和线路基础数据两部分。运行组织数据按业务类型分类为运输类和机务类两类数据。运输类包括车站正线股道、旅客列车车站接发车经由股道和道岔、线路线编号为二线(多线)交汇车站通过列车径路、线路所位置、固定径路列车信息等数据。机务类包括停车靠标困难特殊车站(股道)、机外大坡道特殊车站、开车对标距离特殊地点、机车(动车组)担当区段等数据。
线路基础数据按业务类型分类为工务类、电务类和机务类三类数据。工务类包括线路名称表、车站、股道、道岔、线路允许速度、坡道、曲线、桥梁、隧道、道口、线路里程断链明细、车站平面示意图(配线图)、正线起讫里程表等数据。电务类包括信号机坐标、半自闭接近区段上码地点坐标、信号机间距离、轨道电路制式、特殊发码地点、车站股道固定无码、关联发码特殊信号机显示关系、防护18号及以上道岔信号机位置、级间转换、车站及区间信号机设置的平面示意图等数据。机务类包括接触网分相、接触网限制速度、长大下坡道百吨闸瓦压力列车限速等数据。
基于以上所述的业务类型建立数据模块,将第二基础数据中的各个独立数据块按业务类型分类为业务数据后放入对应的数据模块中从而建立模块化架构数据。例如,在一个LKJ基础数据文件中,一共含有50万条数据记录。将文件解析之后,按交路号和上下行线路创建了64个独立的数据块(其中包括32条交路数据,每条交路数据分为上行线路数据和下行线路数据)。再将每个独立的数据块中的数据按业务类型分类,并将分类后的数据放入对应的数据模块中,多个数据模块形成模块化架构数据。
同时,在该步骤中,将模块化架构数据中具有标志意义的数据设置为关键字。此处设置的关键字包括车站、信号机、里程变化点、应答器、股道、标号和转移数据。搜索设置的关键字就能获得关联该关键字的信息。其中,车站用来描述铁路线路上具有接发车功能的车站信息;信号机是设立在铁路道旁的机械或电子设备,用以传送路线前方状态的相关资讯给予列车驾驶员;里程变化点用于表示列车运行过程中行驶的距离和位置信息;应答器用于向通过的列车发送前方轨道信息;股道描述铁轨轨道信息;标号为运行组织数据的链接定位点;转移数据描述运行组织数据的链接关系。
在步骤S004中,基于关键字对需要对比的模块化架构数据进行精确匹配。
在对比的模块化架构数据中和被对比的模块化架构数据中搜索完全相同的关键字,如果搜索到完全相同的关键字且该关键字在对比的模块化架构数据中和被对比的模块化数据中对应的所有属性信息完全相同,则关键字精确匹配成功。
例如,设两个参与比较的文件中(文件名分别记为A和B),都含有1号交路的上行数据,那么在形成的模块化架构数据中,均有一个1号交路上行数据模块,模块名称分别记为A-1-0,B-1-0。将这两个模块从头开始顺序比较其中的数据记录。如A-1-0中首条数据为出站信号机,该信号机的所有属性信息(编号、类型、制式、里程等)组成一个字符串记为SA,然后在B-1-0中从首条开始查找数据类型为出站信号机并且其所有属性信息组成一个字符串SB。如果找到的SB与SA具有相同的记录,则认为精确匹配成功。
在步骤S005中,对精确匹配的结果进行判断。如果匹配成功,则将比对结果显示出来。
如果匹配不成功,则进入模糊匹配过程。在步骤S006中,在对比的模块化架构数据中重新搜索。如对比的模块化架构数据中某条数据与被对比的模块化架构数据中一条数据的数据类型相同、制式属性相同且编号和里程相同或相似,且该条数据之后的第一条数据中的关键字信息与被对比模块架构数据中的一条数据相同或相似,则模糊匹配成功,将获得的搜索信息进行比对并输出比对结果。
例如,接上面的精确匹配例子,如果未找到与SA相同的SB,则再次回到B-1-0的首位置,重新开始查找,若找到一条数据记录具有以下特征:SB不等于SA;数据类型为出站信号机;紧跟SB的第一条数据为车站信息,且本条车站信息与A-1-0中SA后面的一条数据相同或相似;SB与SA的制式属性相同;SB与SA的编号、里程属性分别相同或相似,即可认为模糊匹配成功,SA和SB即可建立对应关系。
在步骤S007中,判断比对结果是否符合要求。此处符合要求是指对比的模块化架构数据进的比对结果为一一对应关系。如果符合该要求,则进入步骤S008将比对结果自动生成数据修改明细表和数据模拟实验大纲。
如果不符合要求,即比对结果出现一对多的情况。在这种情况下则进入步骤S009,采用人机交互方式设置搜索范围,重新进行关键字的匹配直到获得一对一的比对结果,再将比对结果自动生成数据修改明细表和数据模拟试验大纲。人机交互方式设置搜索范围包括按站名表、数据块、交路数据和文件改变关键字的搜索范围。
理论上讲,线路基础数据中可能会出现重复数据,如数据中不同位置的3条信号机记录描述的是铁路线路上的同一架信号机。接上述模糊匹配例子,以搜索范围为数据块为例进行说明。若选定在数据块B-1-0中进行模糊匹配时,找到了3条符合条件的SB,分别记为SB1,SB2,SB3,三条记录在B-1-0中的位置编号分别为1、500、1000,这样就形成了一个从SA到SB的一对多关系,软件无法知道具体跟哪一条去对应,一般根据上下文和位置关系选择一条建立对应关系,如本例中软件会选择SB1,但是实际应用中用户可能希望SA与SB2对应,于是软件提供了人工设置比较范围功能,可将B-1-0的比较范围限定在2~999行,这样就屏蔽了SB1和SB3,SA只能与SB2建立对应关系,从而达到用户想要的结果。
第二实施例
如图2所示为根据本发明另一实施例的一种LKJ基础数据比对系统的结构示意图。下面参考图2来说明该比对系统的各个模块的功能。
该比对系统主要包括五个模块,分别为基础数据源文件解析模块、基础数据比对模块、比对结果智能化显示模块、数据修改明细表模块和数据模拟实验大纲模块。
基础数据源文件解析模块主要用于将对比的基础数据源文件解析为第一基础数据。
基础数据比对模块完成的功能包括:将第一基础数据拆分为具有独立数据块的第二基础数据,将第二基础数据按业务类型重新分类以建立模块化构架数据,同时设置搜索关键字,在模块化数据架构中输入关键字进行匹配,将匹配的关键字对应的搜索信息进行比对并输出比对结果;
该基础数据比对模块依据匹配范围的不同,可以设置不同的比较子模块。比较子模块包括文件比较子模块、交路数据比较子模块、数据块比较子模块、站名表比较子模块。文件比较子模块用于对两个基础数据文件中的数据进行比较。交路数据比较子模块用于对指定的交路数据进行比较。数据块比较子模块用于对指定的数据块范围内的数据进行比较。站名表比较子模块用于对指定的站名表范围内的数据进行比较。
比对结果智能化显示模块主要用于将基础数据比对模块得到的比对结果在显示装置上直观显示出来。在该模块中,利用不同色彩,将不同类型的数据差异进行直观显示。显示的信息具有详细模式和概要模式。详细模式将全部的比对结果显示出来。概要模式选择部分比对结果进行显示。同时该模块还具备快速定位关键信息的功能。
数据修改明细表模块用于将比对结果得到的差异数据汇总并自动生成数据修改明细表。
数据模拟试验大纲模块基于数据修改明细表自动生成数据模拟试验大纲。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。