一种基于Spark的海量二三调数据成果流量高性能计算方法技术

技术编号:27811853 阅读:16 留言:0更新日期:2021-03-30 09:49
本发明专利技术公开了一种基于Spark的海量二三调数据成果流量高性能计算方法,属于地理信息系统领域。本发明专利技术的方法步骤包括:S1、对二调地类图斑与三调地类图斑进行相交处理;S2、对二调零星地物进行处理;S3、对二调线状地物进行处理;S4、进行二调与三调数据成果流量分析。本发明专利技术采用了完全开源的技术栈,基于Postgresql数据库实现二调和三调数据的分布式存储,基于Java GIS工具包GeoTools进行空间数据处理,基于分布式的计算引擎Spark来保证海量矢量数据计算的高效性与准确性。计算的高效性与准确性。计算的高效性与准确性。

【技术实现步骤摘要】
一种基于Spark的海量二三调数据成果流量高性能计算方法


[0001]本专利技术属于地理信息系统领域,具体涉及一种基于Spark的海量二三调数据成果流量高性能计算方法。

技术介绍

[0002]国土是生产之要、生存之本、生态之源、自然之基。国土调查是我国法定的一项重要制度,是全面查实查清土地资源的重要手段。开展第三次国土调查数据成果流量分析是为了准确把握国家土地利用变化总体趋势,为国家直接掌握翔实准确的全国土地利用现状和土地资源变化情况,进一步完善土地调查、监测和统计制度,实现成果信息化管理与共享,满足空间规划编制、供给侧结构性改革、国土空间用途管制等各项工作提供重要的数据支持。
[0003]目前市面上大多的地类流量分析模型都是基于ArcGIS应用程序来搭建的,但是,ArcGIS作为一个商业软件,使用者受限于开发公司的政策影响与权限控制,同时也无法看到底层实现数据计算的逻辑。因此如何基于开源平台实现二调与三调数据成果的流量分析,是目前亟待解决的技术问题。

技术实现思路

[0004]本专利技术的目的在于解决现有技术中存在的问题,并提供一种基于Spark的海量二三调数据成果流量高性能计算方法。
[0005]本专利技术所采用的具体技术方案如下:
[0006]一种基于Spark的海量二三调数据成果流量高性能计算方法,该方法步骤如下:
[0007]S1、按照S11~S14对二调地类图斑与三调地类图斑进行相交处理:
[0008]S11:分别对二调地类图斑与三调地类图斑进行相同的格网化操作,使空间位置相同的地类图斑赋予相同的格网编号;然后使用cogroup算子将两个格网中格网编号相同的图斑连接起来;
[0009]S12:针对S11中连接后的格网,遍历格网中的每一个格网,判断当前格网内的每一个三调地类图斑是否存在相交的二调地类图斑,若存在则新建一个对应的MultiPolygon类型的要素图层存储三调地类图斑和二调地类图斑的相交图斑,并在其属性表中记录原三调地类图斑和二调地类图斑的基本信息以及每个相交图斑的标识码bsm23和面积信息;
[0010]S13:对于要素图层中存储的每一个相交图斑,对该相交图斑进行负向缓冲区操作,将负向缓冲区操作后新的相交图斑与要素图层中存储的相交图斑进行对比,若二者外包矩形框长宽比变化范围超过阈值,则以新的相交图斑替换要素图层中原先存储的相交图斑,否则依然保留要素图层中原先存储的相交图斑;
[0011]S14:将存储了所有格网中的相交图斑的要素图层以及其属性表以Tuple2格式的元组形式输出,形成第一结果集;
[0012]S2、按照S21~S24对二调零星地物进行处理:
[0013]S21:将所述第一结果集和二调中的零星地物图层进行相同的格网化操作,使空间位置相同的相交图斑和二调零星地物赋予相同的格网编号;然后使用leftOuterJoin算子,将两个格网中格网编号相同的相交图斑和零星地物连接起来,返回的结果集包含了第一结果集的全部数据和两个图层中有交集的数据;
[0014]S22:针对S21中连接后的格网,使用mapToPair算子,遍历格网中的各个格网,如果格网内没有零星地物,则直接返回格网内的相交图斑及其标识码bsm23;如果格网内有零星地物,判断零星地物落在哪一个相交图斑中,并将该零星地物的信息记入该相交图斑的属性表中,返回相交图斑和零星地物以及由相交图斑标识码和零星地物标识码拼接成的组合标识码bsm23_lx;
[0015]S23:使用reduceByKey算子对S22中的返回结果进行去重操作,保证一个组合标识码bsm23_lx仅有一条返回数据,使同一组合标识码bsm23_lx仅对应一个相交图斑;
[0016]S24:使用mapToPair算子将S23处理后的所有返回数据内的组合标识码bsm23_lx替换成所属的相交图斑的标识码bsm23;再使用groupByKey算子将同一标识码的返回数据进行分类后,使用mapToPair算子将标识码bsm23相同的同一个相交图斑对应的所有零星地物信息合并,得到落入每一个相交图斑的所有零星地物;最后在所述第一结果集基础上,针对每一个相交图斑,将落入其中的所有零星地物要素更新至要素图层中,并将落入其中的所有零星地物信息以及相交图斑扣除所有内部零星地物后的面积信息更新至该相交图斑的属性表中,得到第二结果集;
[0017]S3、按照S31~S32对二调线状地物进行处理:
[0018]S31:将所述第二结果集中的相交图斑要素图层和二调中的线状地物图层通过格网连接后,将相交图斑边界和线状地物的交点作为分割点,在每个分割点处将线状地物分割断开,形成一系列最小线单元,每一段最小线单元只落在一个相交图斑中,每一段最小线单元重新计算其标识码和属性信息;
[0019]S32:将每一段最小线单元视为零星地物,按照S2中的处理方法确定每一个相交多边形中的所有最小线单元;并在所述第二结果集基础上,针对每一个相交图斑,将落入其中的所有最小线单元要素更新至要素图层中,并将落入其中的所有最小线单元信息以及相交图斑扣除所有内部最小线单元后的面积信息更新至该相交图斑的属性表中,得到第三结果集;
[0020]S4、按照S1~S3得到的结果,进行二调与三调数据成果流量分析:
[0021]基于所述第三结果集,以其中的每一个相交图斑为基本计算单元,统计基本计算单元的二调和三调土地利用类型和面积,合并输出不同土地利用类型的流量。
[0022]作为优选,所述的S31具体步骤如下:
[0023]S311:将所述第二结果集和二调中的线状地物图层进行相同的格网化操作,使空间位置相同的相交图斑和线状地物赋予相同的格网编号;然后使用cogroup算子将两个格网中格网编号相同的相交图斑和线状地物连接起来,返回的结果集为位于同一个格网编号内的第二结果集中相交图斑集合和线状地物集合所组合成的Tuple2元组;
[0024]S312:对于每一个格网中的相交图斑和线状地物,判断线状地物是否与相交图斑的边界重合,并根据判断结果进行处理:
[0025]若相交图斑和线状地物的边界重合,则先通过snap操作使相交图斑吸附至线状地
物上,再重新通过snap操作使线状地物吸附至相交图斑上,在线状地物与相交图斑外边界相交位置形成分割点;
[0026]若相交图斑的边界和线状地物不重合,则将相交图斑与线状地物做intersect操作,若重合则通过snap操作使线状地物吸附至相交图斑上,在线状地物与相交图斑外边界相交位置形成分割点;
[0027]S313:对于同一条线状地物与不同相交图斑形成的分割点,对其进行合并操作;
[0028]S314:将增加分割点后的线状地物按照线上的分割点进行逐段分解,形成若干最小线单元;重新计算每一段最小线单元的属性信息以及赋予唯一的标识码;
[0029]S315:在每一段最小线单元的中点位置设置缓冲区,判断缓冲区是否与某一相交图斑相交,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Spark的海量二三调数据成果流量高性能计算方法,其特征在于,方法步骤如下:S1、按照S11~S14对二调地类图斑与三调地类图斑进行相交处理:S11:分别对二调地类图斑与三调地类图斑进行相同的格网化操作,使空间位置相同的地类图斑赋予相同的格网编号;然后使用cogroup算子将两个格网中格网编号相同的图斑连接起来;S12:针对S11中连接后的格网,遍历格网中的每一个格网,判断当前格网内的每一个三调地类图斑是否存在相交的二调地类图斑,若存在则新建一个对应的MultiPolygon类型的要素图层存储三调地类图斑和二调地类图斑的相交图斑,并在其属性表中记录原三调地类图斑和二调地类图斑的基本信息以及每个相交图斑的标识码bsm23和面积信息;S13:对于要素图层中存储的每一个相交图斑,对该相交图斑进行负向缓冲区操作,将负向缓冲区操作后新的相交图斑与要素图层中存储的相交图斑进行对比,若二者外包矩形框长宽比变化范围超过阈值,则以新的相交图斑替换要素图层中原先存储的相交图斑,否则依然保留要素图层中原先存储的相交图斑;S14:将存储了所有格网中的相交图斑的要素图层以及其属性表以Tuple2格式的元组形式输出,形成第一结果集;S2、按照S21~S24对二调零星地物进行处理:S21:将所述第一结果集和二调中的零星地物图层进行相同的格网化操作,使空间位置相同的相交图斑和二调零星地物赋予相同的格网编号;然后使用leftOuterJoin算子,将两个格网中格网编号相同的相交图斑和零星地物连接起来,返回的结果集包含了第一结果集的全部数据和两个图层中有交集的数据;S22:针对S21中连接后的格网,使用mapToPair算子,遍历格网中的各个格网,如果格网内没有零星地物,则直接返回格网内的相交图斑及其标识码bsm23;如果格网内有零星地物,判断零星地物落在哪一个相交图斑中,并将该零星地物的信息记入该相交图斑的属性表中,返回相交图斑和零星地物以及由相交图斑标识码和零星地物标识码拼接成的组合标识码bsm23_lx;S23:使用reduceByKey算子对S22中的返回结果进行去重操作,保证一个组合标识码bsm23_lx仅有一条返回数据,使同一组合标识码bsm23_lx仅对应一个相交图斑;S24:使用mapToPair算子将S23处理后的所有返回数据内的组合标识码bsm23_lx替换成所属的相交图斑的标识码bsm23;再使用groupByKey算子将同一标识码的返回数据进行分类后,使用mapToPair算子将标识码bsm23相同的同一个相交图斑对应的所有零星地物信息合并,得到落入每一个相交图斑的所有零星地物;最后在所述第一结果集基础上,针对每一个相交图斑,将落入其中的所有零星地物要素更新至要素图层中,并将落入其中的所有零星地物信息以及相交图斑扣除所有内部零星地物后的面积信息更新至该相交图斑的属性表中,得到第二结果集;S3、按照S31~S32对二调线状地物进行处理:S31:将所述第二结果集中的相交图斑要素图层和二调中的线状地物图层通过格网连接后,将相交图斑边界和线状地物的交点作为分割点,在每个分割点处将线状地物分割断开,形成一系列最小线单元,每一段最小线单元只落在一个相交图斑中,每一段最小线单元
重新计算其标识码和属性信息;S32:将每一段最小线单元视为零星地物,按照S2中的处理方法确定每一个相交多边形中的所有最小线单元;并在所述第二结果集基础上,针对每一个相交图斑,将落入其中的所有最小线单元要素更新至要素图层中,并将落入其中的所有最小线单元信息以及相交图斑扣除所有内部最小线单元后的面积信息更新至该相交图斑的属性表中,得到第三结果集;S4、按照S1~S3得到的结果,进行二调与三调数据成果流量分析:基于所述第三结果集,以其中的每一个相交图斑为基本计算单元,统计基本计算单元的二调和三调土地利用类型和面积,合并输出不同土地利用类型的流量。2.如权利要求1所述的基于Spark的海量二三调数据成果流量高性能计算方法,其特征在于,所述的S31具体步骤如下:S311:将所述第二结果集和二调中的线状地物图层进行相同的格网化操作,使空间位置相同的相交图斑和线状地物赋予相同的格网编号;然后使用cogroup算子将两个格网中格网编号相同的相交图斑和线状地物连接起来,返回的结果集为位于同一个格网编号内的第二结果集中相交图斑集合和线状地物集合所组合成的Tuple2元组;S312:对于每一个格网中的相交图斑和线状地物,判断线状地物是否与相交图斑的边界重合,并根据判断结果进行处理:若相交图斑和线状地物的边界重合,则先通过snap操作使相交图斑吸附至线状地物上,再重新通过snap操作使线状地物吸附至相交图斑上,在线状地物与相交...

【专利技术属性】
技术研发人员:姚勇徐志红宋林刚王善华蒋晓敏方涯盼钟朝阳李翔
申请(专利权)人:浙江省自然资源调查登记中心
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1