一种基于图数据库的GYK轨道车导航方法与系统与流程

文档序号:18981232发布日期:2019-10-29 03:47阅读:259来源:国知局
一种基于图数据库的GYK轨道车导航方法与系统与流程

本发明涉及轨道车导航技术领域,特别是一种基于图数据库的gyk轨道车导航方法与系统。



背景技术:

每天轨道车司机出车,需要通过查询机车交路示意图来确定交路号、车站号,然后通过站名站号查询该车站号对应的上下行里程并将查询参数输入gyk设备中。在运行途中还需要正确选择对标点和支线号等操作。虽然看似简单的操作,但在轨道车运行的特定环境中,各种不可思议的错误极易发生。面对越来越严格的轨道车管理要求和轨道车司机gyk设备运用的现状,急需一种方法来减少轨道车司机在gyk运用中的误操作,从而使得无论是什么年龄段的司机,都能够快速上手并准确操作。



技术实现要素:

本发明的目的是提供一种基于图数据库的gyk轨道车导航方法与系统,旨在解决现有技术中gyk轨道车易出现误操作的问题,实现gyk轨道车的导航,操作简单,降低误操作的发生率。

为达到上述技术目的,本发明提供了一种基于图数据库的gyk轨道车导航方法,所述方法包括以下步骤:

s1、利用图结构表达车站和线路,以车站为顶点,以线路里程为边;

s2、将车站数据保存至顶点集合,线路数据保存至边集合,以脚本形式将铁路数据批量导入gyk设备中;

s3、在gyk设备中输入起点车站和终点车站以及所在支线,查询两车站之间的路径;

s4、依次遍历起点车站以及起点车站所在的下行或上行车站,直至遍历所得车站名为终点车站名或遍历车站数大于预设阈值;

s5、输出所有符合条件的所有路径的车站名。

优选地,所述车站包括以下属性:站名、站号、交路、行别、进站里程、出站里程、上行对标位置以及下行对标位置。

优选地,所述线路包括以下属性:起点站号、终点站号、线别、行别、支线操作、起点里程以及终点里程。

优选地,所述脚本实现以下操作:

实现图对象的插入边、顶点标签,插入边、顶点属性接口,并把mysql数据库中的结构化数据作为数据源,先插入各顶点,即车站数据,再插入边,即线路数据,边中对应两车站的车站号,确立两个顶点和一条边的关系。

本发明还提供了一种基于图数据库的gyk轨道车导航系统,所述系统包括:

图结构表达模块,用于利用图结构表达车站和线路,以车站为顶点,以线路里程为边;

数据导入模块,用于将车站数据保存至顶点集合,线路数据保存至边集合,以脚本形式将铁路数据批量导入gyk设备中;

路径查询模块,用于在gyk设备中输入起点车站和终点车站以及所在支线,查询两车站之间的路径;

路径遍历模块,用于依次遍历起点车站以及起点车站所在的下行或上行车站,直至遍历所得车站名为终点车站名或遍历车站数大于预设阈值;

结果输出模块,用于输出所有符合条件的所有路径的车站名。

优选地,所述车站包括以下属性:站名、站号、交路、行别、进站里程、出站里程、上行对标位置以及下行对标位置。

优选地,所述线路包括以下属性:起点站号、终点站号、线别、行别、支线操作、起点里程以及终点里程。

优选地,所述脚本实现以下操作:

实现图对象的插入边、顶点标签,插入边、顶点属性接口,并把mysql数据库中的结构化数据作为数据源,先插入各顶点,即车站数据,再插入边,即线路数据,边中对应两车站的车站号,确立两个顶点和一条边的关系。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明实施例通过采用tinkpop框架下图结构作为铁路数据的数据结构,将车站数据作为顶点、路线作为边,从而构建图数据,并在gyk设备中导入图对象数据,轨道车司机只需在gyk设备中输入或者点选起点车站名和终点车站名以及所在支线即可进行两车站之间的路径查询,实现gyk轨道车的导航,操作简单,各年龄段司机均可快速上手,且由于本发明采用图结构来表达和计算站点和路线的关系,可有效保证操作的准确性,在查询时,通过遍历起点车站名以及所在的下行或者上行车站,当遍历所得的车站名为终点车站名或遍历数大于预设阈值时,即停止遍历,查询精度高,可有效避免司机操作错误导致重大事故的发生。

附图说明

图1为本发明实施例中所提供的一种基于图数据库的gyk轨道车导航方法流程图;

图2为本发明实施例中所提供的车站与线路的图数据结构示意图;

图3为本发明实施例中所提供的顶点数据结构示意图;

图4为本发明实施例中所提供的一种基于图数据库的gyk轨道车导航系统框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种基于图数据库的gyk轨道车导航方法与系统进行详细说明。

如图1所示,本发明实施例公开了一种基于图数据库的gyk轨道车导航方法,所述方法包括以下步骤:

s1、利用图结构表达车站和线路,以车站为顶点,以线路里程为边;

s2、将车站数据保存至顶点集合,线路数据保存至边集合,以脚本形式将铁路数据批量导入gyk设备中;

s3、在gyk设备中输入起点车站和终点车站以及所在支线,查询两车站之间的路径;

s4、依次遍历起点车站以及起点车站所在的下行或上行车站,直至遍历所得车站名为终点车站名或遍历车站数大于预设阈值;

s5、输出所有符合条件的所有路径的车站名。

本发明实施例使用基于tinkpop框架开源的图数据库janusgraph作为图计算框架,hbase作为后端存储,表达和计算站点和路线之间的关系。

图是一种较线性表和树更为复杂的数据结构,图形结构中,节点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。采用图结构对站点和路线之间的关系进行表达。

确立图结构中的顶点和边,在本发明实施例中,以车站为顶点,车站之间的线路里程作为边。由于铁路上有上行下行之分,因此边使用有向边,以此作为区分。对于顶点和边中的每个属性,表示每个具体的附加信息,采用key-value结构储存,key即为属性字段,value即为具体值,如图2所示,例如key为“name”,相应的value为“济南西”。

顶点数据结构存储车站数据,车站中还包括以下属性:站名、站号、交路、行别、进站里程、出站里程、上行对标位置以及下行对标位置。顶点数据结构由partitionid、count、idpadding三部分组成,包含64个bit,以rowkey的形式存储在hbase中,如图3所示。

边数据结构存储线路数据,线路中还包括以下属性:起点站号、终点站号、线别、行别、支线操作、起点里程以及终点里程。边数据结构以cardinality形式存储在hbase中。

此外,属性数据结构也以cardinality形式存储在hbase中。

将站点数据保存到顶点集合中,线路数据保存至边集合中,根据顶点集合以及边集合形成图数据,并通过数据导入脚本将铁路数据批量导入到gyk设备中。所述数据导入脚本可实现以下内容:

实现图对象的插入边、顶点标签,插入边、顶点属性接口,并把mysql数据库中的结构化数据作为数据源,先插入各顶点,即车站数据,再插入边,即线路数据,边中对应两车站的车站号,可以确立两个顶点和一条边的关系。

在导入铁路数据后,对路线进行查询。在gyk设备中以输入或者点选方式,设置起点车站和终点车站,并选择起点和终点所在的直线,输出两车站之间的路径,该路径不应包含环路,且不超过60度的范围。

初始化车站和线路组成的图对象,遍历图对象找到起点车站id,采用链式编程继续遍历该起点车站所在的下行或者上行车站,直到遍历出来的车站名与终点车站名相同或者总遍历车站数大于60为止,输出所有符合条件的所有路径的车站名,从而结束图对象遍历,并关闭图对象。

本发明实施例通过采用tinkpop框架下图结构作为铁路数据的数据结构,将车站数据作为顶点、路线作为边,从而构建图数据,并在gyk设备中导入图对象数据,轨道车司机只需在gyk设备中输入或者点选起点车站名和终点车站名以及所在支线即可进行两车站之间的路径查询,实现gyk轨道车的导航,操作简单,各年龄段司机均可快速上手,且由于本发明采用图结构来表达和计算站点和路线的关系,可有效保证操作的准确性,在查询时,通过遍历起点车站名以及所在的下行或者上行车站,当遍历所得的车站名为终点车站名或遍历数大于预设阈值时,即停止遍历,查询精度高,可有效避免司机操作错误导致重大事故的发生。

如图4所示,本发明实施例还公开了一种基于图数据库的gyk轨道车导航系统,所述系统包括:

图结构表达模块,用于利用图结构表达车站和线路,以车站为顶点,以线路里程为边;

数据导入模块,用于将车站数据保存至顶点集合,线路数据保存至边集合,以脚本形式将铁路数据批量导入gyk设备中;

路径查询模块,用于在gyk设备中输入起点车站和终点车站以及所在支线,查询两车站之间的路径;

路径遍历模块,用于依次遍历起点车站以及起点车站所在的下行或上行车站,直至遍历所得车站名为终点车站名或遍历车站数大于预设阈值;

结果输出模块,用于输出所有符合条件的所有路径的车站名。

通过图结构表达模块确立图结构中的顶点和边,以车站为顶点,车站之间的线路里程作为边。由于铁路上有上行下行之分,因此边使用有向边,以此作为区分。对于顶点和边中的每个属性,表示每个具体的附加信息,采用key-value结构储存,key即为属性字段,value即为具体值,例如key为“name”,相应的value为“济南西”。

顶点数据结构存储车站数据,车站中还包括以下属性:站名、站号、交路、行别、进站里程、出站里程、上行对标位置以及下行对标位置。顶点数据结构由partitionid、count、idpadding三部分组成,包含64个bit,以rowkey的形式存储在hbase中。

边数据结构存储线路数据,线路中还包括以下属性:起点站号、终点站号、线别、行别、支线操作、起点里程以及终点里程。边数据结构以cardinality形式存储在hbase中。

此外,属性数据结构也以cardinality形式存储在hbase中。

通过数据导入模块将站点数据保存到顶点集合中,线路数据保存至边集合中,根据顶点集合以及边集合形成图数据,并通过数据导入脚本将铁路数据批量导入到gyk设备中。所述数据导入脚本可实现以下内容:

实现图对象的插入边、顶点标签,插入边、顶点属性接口,并把mysql数据库中的结构化数据作为数据源,先插入各顶点,即车站数据,再插入边,即线路数据,边中对应两车站的车站号,可以确立两个顶点和一条边的关系。

在导入铁路数据后,对路线进行查询。在gyk设备中通过路径查询模块以输入或者点选方式,设置起点车站和终点车站,并选择起点和终点所在的直线,输出两车站之间的路径,该路径不应包含环路,且不超过60度的范围。

初始化车站和线路组成的图对象,通过路径遍历模块遍历图对象找到起点车站id,采用链式编程继续遍历该起点车站所在的下行或者上行车站,直到遍历出来的车站名与终点车站名相同或者总遍历车站数大于60为止,利用结果输出模块输出所有符合条件的所有路径的车站名,从而结束图对象遍历,并关闭图对象。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1