首页 > 专利 > 武汉联图时空信息科技有限公司 > 路网约束下的空间自相关Spark并行计算方法专利详情

路网约束下的空间自相关Spark并行计算方法   0    0

实质审查 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-10-31
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-03-24
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-10-31
基本信息
有效性 实质审查 专利类型 发明专利
申请号 CN201911052465.0 申请日 2019-10-31
公开/公告号 CN110851395A 公开/公告日 2020-02-28
授权日 预估到期日 2039-10-31
申请年 2019年 公开/公告年 2020年
缴费截止日
分类号 G06F15/16G06F16/29 主分类号 G06F15/16
是否联合申请 独立申请 文献类型号 A
独权数量 1 从权数量 9
权利要求数量 10 非专利引证数量 0
引用专利数量 4 被引证专利数量 0
非专利引证
引用专利 CN105788263A、CN106355881A、CN109739585A、CN109903554A 被引证专利
专利权维持 99 专利申请国编码 CN
专利事件 事务标签 公开、实质审查
申请人信息
申请人 第一申请人
专利权人 武汉联图时空信息科技有限公司 当前专利权人 武汉联图时空信息科技有限公司
发明人 常莉红、朱欣焰、佘冰、呙维 第一发明人 常莉红
地址 湖北省武汉市洪山区珞瑜路312号东科楼四楼4121室 邮编 430070
申请人数量 1 发明人数量 4
申请人所在省 湖北省 申请人所在市 湖北省武汉市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
武汉华强专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
温珊姗
摘要
本发明公开了路网约束下的空间自相关Spark并行计算方法,包括步骤:(1)采用LineInfo描述道路网中各单条道路的道路信息;(2)excutor节点分别分割各单条道路;(3)excutor节点统计各线性单元的事件点总数;(4)各excutor节点根据网络拓扑结构,计算各线性单元的邻接线性单元;(5)在Driver节点,利用Spark的累加器实现空间自相关指数的计算。本发明基于Spark,设计了路网约束下空间自相关的Spark并行计算方法,该方法充分利用计算机的多核运算,提高了大规模数据量下空间运算的效率,可满足海量数据下的运算需求。
  • 摘要附图
    路网约束下的空间自相关Spark并行计算方法
  • 说明书附图:图1
    路网约束下的空间自相关Spark并行计算方法
  • 说明书附图:图2
    路网约束下的空间自相关Spark并行计算方法
  • 说明书附图:图3
    路网约束下的空间自相关Spark并行计算方法
  • 说明书附图:图4
    路网约束下的空间自相关Spark并行计算方法
  • 说明书附图:图5
    路网约束下的空间自相关Spark并行计算方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-03-24 实质审查的生效 IPC(主分类): G06F 15/16 专利申请号: 201911052465.0 申请日: 2019.10.31
2 2020-02-28 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.路网约束下的空间自相关Spark并行计算方法,其特征是,包括步骤:
(1)采用LineInfo描述道路网中各单条道路的道路信息;
(2)Spark中driver节点向集群广播道路网,excutor节点执行:
各excutor节点分别计算任意两条道路之间的交点,并在LineInfo中记录交点坐标信息;从道路网获取每条道路的起止点、拐点、交点的坐标并排列,构建坐标序列;以起止点、交点为分割点,分别分割各单条道路,分割单条道路获得的线性单元发送至driver节点;
(3)driver节点将各线性单元按位置顺序存储入有序线性单元集中,再次向集群广播;
excutor节点根据交点坐标信息及线性单元编号构建路网拓扑结构,并统计各线性单元的事件点总数;各excutor节点统计的各线性单元的事件点总数发送至driver节点;
(4)driver节点再次将统计的事件点总数向集群广播;各excutor节点根据网络拓扑结构,计算各线性单元的邻接线性单元;
(5)在Driver节点,利用Spark的累加器实现空间自相关指数的计算。

2.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
LineInfo描述的道路信息包括道路编号id、分区编号partitionNum、道路的Geometry形式LineString、道路分段信息segments、与其他道路的交点信息crossPoints、路网拓扑结构intersections、交点的位置信息relationInfo、每个线性单云的邻接单元信息weight、邻域内的事件点数pointcount。

3.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
分割各单条道路时,按照预设的线性单元长度划分道路,不足一个线性单元长度的按照一个线性单元处理。

4.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
构建路网拓扑结构时,对有序线性单元集中各线性单元的首尾节点顺次编号,第m个线性单元的首节点和尾节点分别编号为m-1、m;针对每个线性单元,结合其所在道路的起止点和交点坐标信息,构建路网拓扑结构;路网拓扑结构中Map数组的键为交点编号,值为与交点相交的其他道路的道路信息。

5.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
事件点总数的统计方法为:
计算输入的计算各事件点集中各事件点与各条道路的距离,选择距离最短的道路Lmin;
再分别计算各事件点与Lmin的每个线性单元的距离,找出距离最短的线性单元,若该最短距离未超出预设的阈值范围,将该线性单元的计数值加1。

6.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
还包括步骤:
在Spark的每个分区,随机置换每个线性单元的统计事件点数,完成随机分布模拟,再次计算自相关指数。

7.如权利要求6所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
所述随机置换为全局随机置换,其具体为:将道路集合广播到集群,在各个分区内,交换线性单元的统计事件点数。

8.如权利要求6所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
所述随机置换为局部随机置换,其具体为:将道路集合广播到集群,在各Excutor节点,每个线性单元随机挑选m个线性单元的事件统计值分别作为m个邻接线性单元的事件统计值,模拟随机置换。

9.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
自相关指数计算为全局或局部自相关指数计算。

10.如权利要求1所述的路网约束下的空间自相关Spark并行计算方法,其特征是:
当为局部自相关指数计算时,具体流程如下:
通过累加器实现整体线性单元对应点事件统计值的平均值、标准差的计算;
在excutor节点对每个线性单元的点事件统计值标准化;
在excutor节点,得到每个线性单元所对应的邻接线性单元的点事件统计值,计算局部自相关指数。
说明书

技术领域

[0001] 本发明属于空间统计分析与并行化技术领域,具体涉及路网约束下的空间自相关Spark并行计算方法。

背景技术

[0002] 空间分析一直是地理信息研究的重点。空间自相关分析用来研究空间相邻点位间属性值的关系,通过自相关系数可以得到观察值与邻接值之间的关系。如果指数为正,则空间相邻点位的属性值呈正相关;如果指数为负,则为负相关;如果为零,则表示随机分布。空间自相关也可以用来发现“热点”、“冷点”等异常值,为决策分析提供支持。传统的空间自相关分析主要基于二维平面的分析,当遇到明显沿道路分布的事件时,会有一定的偏差,因此本发明将路网引入到空间自相关分析中。
[0003] 随着城市现代化建设的加快,城市间的道路变得越来越密集,道路数据增加,沿道路发生的事件数量呈井喷式的增长,传统的单机算法受到内存和计算能力的影响,无法满足实际需求。

发明内容

[0004] 为提高大数据量下路网约束下的空间自相关的运算效率,本发明提供了路网约束下全局空间自相关与局部空间自相关的Spark并行计算方法。
[0005] 传统的空间自相关分析主要基于二维平面的分析,当遇到明显沿道路分布的事件时,会有一定的偏差,因此本发明将路网引入到空间自相关分析中。基于路网约束的空间自相关将发生事件放在了网络距离上进行计算。Spark并行化将单机算法应用到了集群中,充分利用了多台计算机的多核运算性能。
[0006] 本发明提供的路网约束下的空间自相关Spark并行计算方法,包括步骤:
[0007] (1)采用LineInfo描述道路网中各单条道路的道路信息;
[0008] (2)Spark中driver节点向集群广播道路网,excutor节点执行:
[0009] 各excutor节点分别计算任意两条道路之间的交点,并在LineInfo中记录交点坐标信息;从道路网获取每条道路的起止点、拐点、交点的坐标并排列,构建坐标序列;以起止点、交点为分割点,分别分割各单条道路,分割单条道路获得的线性单元发送至driver节点;
[0010] (3)driver节点将各线性单元按位置顺序存储入有序线性单元集中,再次向集群广播;
[0011] excutor节点根据交点坐标信息及线性单元编号构建路网拓扑结构,并统计各线性单元的事件点总数;各excutor节点统计的各线性单元的事件点总数发送至driver节点;
[0012] (4)driver节点再次将统计的事件点总数向集群广播;各excutor节点根据网络拓扑结构,计算各线性单元的邻接线性单元;
[0013] (5)在Driver节点,利用Spark的累加器实现空间自相关指数的计算。
[0014] 进一步的,LineInfo描述的道路信息包括道路编号id、分区编号partitionNum、道路的Geometry形式LineString、道路分段信息segments、与其他道路的交点信息crossPoints、路网拓扑结构intersections、交点的位置信息relationInfo、每个线性单云的邻接单元信息weight、邻域内的事件点数pointcount。
[0015] 进一步的,分割各单条道路时,按照预设的线性单元长度划分道路,不足一个线性单元长度的按照一个线性单元处理。
[0016] 进一步的,构建路网拓扑结构时,对有序线性单元集中各线性单元的首尾节点顺次编号,第m个线性单元的首节点和尾节点分别编号为m-1、m;针对每个线性单元,结合其所在道路的起止点和交点坐标信息,构建路网拓扑结构;路网拓扑结构中Map数组的键为交点编号,值为与交点相交的其他道路的道路信息。
[0017] 进一步的,事件点总数的统计方法为:
[0018] 计算输入的计算各事件点集中各事件点与各条道路的距离,选择距离最短的道路Lmin;再分别计算各事件点与Lmin的每个线性单元的距离,找出距离最短的线性单元,若该最短距离未超出预设的阈值范围,将该线性单元的计数值加1;
[0019] 进一步的,还包括步骤:
[0020] 在Spark的每个分区,随机置换每个线性单元的统计事件点数,完成随机分布模拟,再次计算自相关指数。
[0021] 进一步的,所述随机置换为全局随机置换,其具体为:将道路集合广播到集群,在各个分区内,交换线性单元的统计事件点数。
[0022] 进一步的,所述随机置换为局部随机置换,其具体为:将道路集合广播到集群,在各Excutor节点,每个线性单元随机挑选m个线性单元的事件统计值分别作为m个邻接线性单元的事件统计值,模拟随机置换。
[0023] 进一步的,自相关指数计算为全局或局部自相关指数计算。
[0024] 当为局部自相关指数计算时,具体流程如下:
[0025] 通过累加器实现整体线性单元对应点事件统计值的平均值、标准差的计算;
[0026] 在excutor节点对每个线性单元的点事件统计值标准化;
[0027] 在excutor节点,得到每个线性单元所对应的邻接线性单元的点事件统计值,计算局部自相关指数。
[0028] 和现有技术相比,本发明具有如下优点和有益效果:
[0029] 本发明基于Spark,设计了路网约束下K函数的Spark并行计算方法,该方法充分利用计算机的多核运算,提高了大规模数据量下空间运算的效率,可满足海量数据下的运算需求。
[0030] 经试验验证,在线性单元总数为135272,事故点数为532414,置换次数为99时,采用本发明方法的运算时间为9min,可满足海量数据下的运算需求。

实施方案

[0036] 为了更清楚地说明本发明的技术方案和技术效果,下面将对照附图对本发明的具体实施方式进行详细说明。显而易见地,下面描述仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0037] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
[0038] 本发明的技术思路为:Spark中的driver节点(驱动器节点),将所有excutor节点(执行器节点)都使用到的公用数据通过broadcast机制进行广播,各个excutor节点加载一部分数据,然后各个excutor节点完成各自节点的计算任务,充分利用多核CPU的计算性能。
[0039] driver节点为Spark中的主节点,主要用来控制任务分发,协调各节点的运行等。executor是从节点,主要完成各个分区的计算任务。弹性式分布数据集(Resilient Distributed Dataset,RDD)是Spark中的基本数据抽象,具有自动容错、位置感知调度及可伸缩性等特点。Partition是数据组织的基本单位,类似于hdfs文件被切分为多个block存储在各个节点上,RDD被切分为多个partition。RDDs有transformations和actions两种操作形式,前者指的是从已有数据集中创造出新的数据集出来,如RDDs,后者将数据集上计算得到的结果返回给Driver。
[0040] 具体实施时,主要针对单条道路分别进行运算,运算的相关信息如下:
[0041] 单条道路的数据结构采用LineInfo来描述,LineInfo中包括了道路编号(id),分区编号(partitionNum),道路的Geometry形式(LineString),道路分段信息(segments),与其他道路的交点信息(CrossPoints),路网交点的索引结构(intersections),交点的位置信息(relationInfo),每个线性单云的邻接单元信息(weight),邻域内的事件点数(pointcount)等。路网交点的索引结构intersections即路网拓扑结构。
[0042] 其中,分区编号partitionNum指Spark分区的编号,具体以1,2,3……等编号;道路的Geometry形式为postgres数据库存储数据的一种格式;交点信息CrossPoints用来存储每条道路与其他道路的交点信息,具体用来存储相交道路的编号以及交点坐标;交点的位置信息relationInfo用来存储交点的位置信息,具体用来存储道路上的点索引编号及交点索引编号。
[0043] 本具体实施方式中,全局自相关指数计算的具体步骤如下:
[0044] 步骤1,将整个道路网标记为A,采用LineInfo来描述道路网中各单条道路的道路信息,赋给A中的每一条道路一个唯一编号标识,记为Li(i=1,2,…n),Li表示第i条道路的编号标识,n为道路网中道路数量;其中唯一的编号标识值Li由道路信息LineInfo中的id来标识。
[0045] 步骤2,Spark中driver节点向集群广播道路网A,excutor节点执行如下:
[0046] 2.1各个excutor节点分别计算任意两条道路之间的交点,在道路信息LineInfo的crossPoint中记录所计算出的交点信息。每个excutor节点完成一部分的交点计算。因为两条道路之间相交可能存在多个交点,所以crossPoints变量为List>类型,二元组Tuple的键为道路的编号,值为交点坐标。如,编号为1的道路与编号为2的道路相交于点a,点a的坐标为coordinateA,则对于道路1,crossPoints中的一个值为Tuple2<1,coordinate>;
[0047] 2.2各excutor节点从道路网获取每条道路的起止点、交点的坐标并排列,构建坐标序列;
[0048] 2.3各excutor节点以起止点、交点为分割点,将每条道路划分为多条路段,再将每条路段按照预设的线性单元长度分割为多个线性单元,不足一个线性单元长度的按照一个线性单元处理。
[0049] 步骤3,步骤2中excutor节点执行的结果发送给driver节点,driver节点将各线性单元按位置顺序存储入有序线性单元集中,再次向集群广播,excutor节点执行:
[0050] 3.1excutor节点根据crossPoint记录的交点坐标信息及segments中的线性单元编号构建路网拓扑结构,用于标识第i条道路Li的第k段线性单元lik与另一条道路Lj的第t段线性单元ljt之间的邻接关系;
[0051] 在构建路网结构的过程中,对segments中各线性单元的首尾节点进行顺次编号,第一个线性单元的首节点编号为0,尾节点编号为1,第二个线性单元的首节点编号为1,尾节点编号为2,第m个线性单元的首节点编号为m-1,尾节点编号为m。针对每个线性单元,结合crossPoints中信息和节点编号信息,即可完成路网拓扑结构intersections的构建。intersections中Map数组的键为当前LineInfo中交点编号,值为与该节点相交的其他LineInfo信息集合(可能有多条道路与一个节点相交),二元组Tuple的键为LineInfo编号,值为segments的节点编号。
[0052] 3.2excutor节点统计各线性单元的事件点总数;各excutor节点统计的各线性单元的事件点总数发送至driver节点;
[0053] 将每个线性单元的统计事件点数初始化为0,输入事件点集合,计算每个事件点与每条道路的距离,选择与事件点距离最短的道路Lmin,再分别计算该事件点与Lmin上每个线性单元的距离,如果该事件点与某线性单元距离最短,则在该线性单元的计数值上加1,计数值即统计事件点数;如果最短距离超过阈值范围,则表明此事件点不沿该道路分布,事件点无效,不作统计。阈值范围根据道路的密度而设定,当道路密度较大,则阈值范围的上下限均设为较小值;反之,则其上下限均设为较大值。
[0054] 步骤4,步骤3中excutor节点执行的结果发送给driver节点,driver节点向集群广播,excutor节点执行:每个excutor节点根据网络拓扑结构,得到每条道路Li上各段线性单元的邻接线性单元,并计算相应的空间权重。所述邻接线性单元指:对线性单元a,与其具有相同节点的所有其他线性单元,均为线性单元a的邻接线性单元。
[0055] 本发明路网约束下的空间权重主要采用近邻权重,即,相邻的线性单元权重为1,不相邻的线性单元权重为0。道路是否相邻按照最短网络距离来判断,主要有两种考虑方式:
[0056] 与线性单元具有相同节点的线性单元为相邻线性单元,其权重为1,其余权重为0,类似于空间邻近权重。见图5,线性单元5的端点为E和F,节点为E的线性单元有4,节点为F的线性单元有6、9、10,所以线性单元5的邻接单元为线性单元4、6、9、10,这些与线性单元5相邻的线性单元的权重为1,其他线性单元的权重为0。
[0057] 线性单元带宽范围内的线性单元为相邻线性单元。如图5权重图,假设线性单元长度为20米,带宽为40米,则距离线性单元40米范围内的线性单元为相邻线性单元。此时的距离为网络距离。如线性单元3的相邻线性单元为1、2、4、5。
[0058] 步骤5,在driver节点,基于空间权重矩阵,通过Spark中的累加器,根据公式(1):实现空间自相关指数I的计算,此处I为全局空间自相关指数,
其中xi是线性单元i的事件统计值,i为线性单元的编号,j为线性单元i对应的邻接单元编号,n为线性单元的总数, 和s分别是线性单元的事件统计值的平均值和标准差;wij是空间权重矩阵,具体来说wij表示线性单元i和j之间的权重,当线性单元j为线性单元i的邻接单元时,wij取1;否则,wij取0。
[0059] 步骤6,在Spark的每个分区,随机置换每个线性单元的统计事件点数,完成随机分布模拟,并计算自相关指数。
[0060] 步骤7,将步骤6重复m次,m为预设的最大迭代次数,一般取9~999;以重复m次后获得的一系列自相关指数作为随机分布,根据 检验自相关指数的显著性;其中,Z(I)为显著性检验指标,I为步骤5计算所得的自相关指数,E(I)、VAR(I)分别为m次重复计算所得一系列自相关指数的平均值和方差。
[0061] 随机置换包括全局随机置换和局部随机置换,全局随机置换的流程如下:
[0062] (1)将道路网广播到集群;
[0063] (2)在Executor节点的各个分区内,随机交换线性单元的统计事件点数;
[0064] (3)收集道路集合数据A,在Driver节点计算自相关指数。
[0065] 对于局部空间自相关指数计算,其和全局空间自相关指数计算相比,区别在于步骤5和步骤6。
[0066] 局部随机置换的流程如下:
[0067] (1)将道路网广播到集群;
[0068] (2)在Excutor节点,每个线性单元随机挑选p个线性单元的事件统计值作为邻接线性单元的事件统计值,模拟随机置换;例如线性单元5,其邻接的线性单元为线性单元1、2、3,所对应的事件统计值分别记为A1、A2、A3,为模拟随机置换,随机挑选线性单元5的3个邻接线性单元所对应的统计值,所挑选的3个线性单元可能包含线性单元1、2、3中的部分或不包含线性单元1、2、3,将所挑选的统计值分别作为线性单元1、2、3的统计值。本发明中,p一般取9、99、999等。
[0069] 对自相关指数技术,包括局部空间自相关指数计算和全局空间自相关指数计算。前文公式(1)为全局空间自相关指数计算公式,而局部空间自相关指数计算为:
[0070] 在driver节点,基于空间权重矩阵,通过Spark中的累加器,计算整体线性单元对应点事件统计值的平均值和标准差;此处,整体线性单元指全部的线性单元;
[0071] 在excutor节点,利用平均值和标准差,对每个线性单元的点事件统计值标准化;
[0072] 在excutor节点,得到各线性单元所对应的邻接线性单元的点事件统计值,具体参见步骤3,根据公式(2): 计算局部空间自相关指数Ii。
[0073] 应当理解的是,本说明书未详细阐述的部分均属于现有技术。
[0074] 应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

附图说明

[0031] 图1为全局空间自相关指数计算的流程图;
[0032] 图2为全局自相关随机置换图;
[0033] 图3为局部空间自相关指数计算的流程图;
[0034] 图4为局部空间自相关随机置换图;
[0035] 图5为空间权重计算示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号