CN112487125B - 一种面向时空大数据计算的分布式空间对象组织方法 - Google Patents

一种面向时空大数据计算的分布式空间对象组织方法 Download PDF

Info

Publication number
CN112487125B
CN112487125B CN202011447802.9A CN202011447802A CN112487125B CN 112487125 B CN112487125 B CN 112487125B CN 202011447802 A CN202011447802 A CN 202011447802A CN 112487125 B CN112487125 B CN 112487125B
Authority
CN
China
Prior art keywords
space
observation
elastic
spatial
big data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011447802.9A
Other languages
English (en)
Other versions
CN112487125A (zh
Inventor
乐鹏
上官博屹
龚健雅
姜良存
张明达
胡磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202011447802.9A priority Critical patent/CN112487125B/zh
Publication of CN112487125A publication Critical patent/CN112487125A/zh
Application granted granted Critical
Publication of CN112487125B publication Critical patent/CN112487125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出了一种面向时空大数据计算的分布式空间对象组织方法。本发明基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟简单要素空间数据模型与传感网观测数据模型构建空间弹性分布式数据集模型与空间观测弹性分布式数据集,并进一步将空间弹性分布式数据集转化为空间点弹性分布式数据集、空间线弹性分布式数据集和空间面弹性分布式数据集,以支持时空点、线、面、观测大数据的分布式处理。本发明能够支持海量空间数据进行高效的组织和处理,并兼容对传感网观测数据进行高效的组织和处理,运用先进的分布式处理架构为空间数据的组织及计算带来高性能与高可用的特色。

Description

一种面向时空大数据计算的分布式空间对象组织方法
技术领域
本发明属于地理信息系统领域,涉及一种面向时空大数据计算的分布式空间对象组织方法。
背景技术
近年来,随着城市信息化的快速发展,传感器网络、移动互联网、全球定位系统等技术得到了广泛应用,数据的空间分辨率和时间分辨率显著提高,具有时间和空间维度的数据呈指数级爆炸式增长。目前,时空大数据的量级已经达到了PB级甚至EB级,给存储和处理都带来了巨大的压力。随着摩尔定律失效,计算技术开始向多核多CPU、通用GPU计算、集群环境、分布式处理架构方向发展,时空大数据的分布式组织和管理是分布式处理、维护与共享的基础,是目前时空大数据管理的主要技术手段,也是未来发展的必然趋势,同时运用分布式并行计算方式来解决日趋庞大的时空大数据的处理、计算与分析成为必由之路。
发明内容
因而为解决上述问题,本发明提供了一种面向时空大数据计算的分布式空间对象组织方法,基于SPARK弹性分布式数据集,结合开放地理空间信息联盟提出的简单要素空间数据模型和传感网观测数据模型,实现了针对海量空间点、线、面、观测对象的分布式组织和处理。
本发明所采用的技术方案是一种面向时空大数据计算的分布式空间对象处理方法,实现方式包括以下步骤:
步骤1,构建空间弹性分布式数据集模型;
步骤1所述构建空间弹性分布式数据集为:
GeometryRDD={SpatialGeometryPartitionp},p∈{1,2,…,P}
SpatialGeometryPartitionp={<SGeometryIndexCodenp,Geometrynp>},np∈{1,2,…,Np}
其中,空间弹性分布式数据集由P个时空大数据分区组成,SpatialGeometryPartitionp表示第p个时空大数据分区;
每个时空大数据分区单独在分布式系统的不同节点进行管理,SpatialGeometryPartitionp由Np个二元组组成;
<SGeometryIndexCodenp,Geometrynp>表示第p个二元组;
Geometrynp为第p个二元组中基础空间对象,由唯一编码、坐标串、属性表组成,定义为:
Geometrynp={GeoIDnp,GeoCoordsnp,GeoAtrributesnp}
其中,GeoIDnp为第p个二元组中基础空间对象中唯一编码,GeoCoordsnp为第p个二元组中基础空间对象中空间坐标串,GeoAtrributesnp为第p个二元组中基础空间对象中属性表;
SGeometryIndexCodenp为第p个二元组中基础空间对象中空间坐标串与第p个二元组中基础空间对象中唯一编码计算得到的空间索引编码,定义为:
SGeometryIndexCodenp=SpaceFillingCurveCoding(GeoCoordsnp,GeoIDnp)
其中,SpaceFillingCurveCoding函数通过输入Geometrynp对象的空间坐标串GeoCoordsnp与唯一编码GeoIDnp,通过空间填充曲线编码算法获取Geometrynp对象的空间坐标串GeoCoordsnp所处的空间网格编码并与Geometrynp对象的唯一编码GeoIDnp组合生成空间索引编码SGeometryIndexCodenp
而且,步骤1中,GeometryRDD能够将时空大数据文件作为输入,读取其中存储的每个空间对象转换为Geometrynp对象,并根据其计算得到的SGeometryIndexCodenp在对应的时空大数据分区SpatialGeometryPartitionp中进行管理,定义为:
GeometryRDD=ReadFromBigDataFile(BigDataFilePath)
其中BigDataFilePath为存储时空大数据的文件路径,ReadFromBigDataFile获取文件路径后将文件中的内容进行解析,生成GeometryRDD对象;
而且,步骤1中,GeometryRDD可以在各个分区中并行地执行相同的Geometry数据处理算法并汇总处理结果,实现时空大数据的分布式处理,定义为:
GeometryRDDResult=GeometryRDD.process(GeoAlgorithm)
其中,GeoAlgorithm为针对GeometryRDD执行的算法,GeometryRDD.process方法将GeoAlgorithm作为输入,将其分发到各个分区中对所有Geometrynp对象进行处理,并将所有处理结果进行汇总,GeometryRDDResult为汇总后的处理结果。
步骤2,将空间弹性分布式数据集转化为空间点弹性分布式数据集;
步骤2所述空间点弹性分布式数据集为:
PointRDD=Trans2Point(GeometryRDD)
PointRDD={SptialPointPartitionp},p∈{1,2,…,P}
SpatialPointPartitionp={<SPointIndexCodenp,Pointnp>},np∈{1,2,…,Np}
其中,方法Trans2Point将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Point类型,从而将空间弹性分布式数据集转化为空间点弹性分布式数据集;
PointRDD由P个空间点弹性时空点大数据分区组成,每个空间点弹性时空点大数据分区单独在分布式系统的不同节点进行管理;
第p个空间点弹性时空点大数据分区即SpatialPointPartitionp由Np个空间点弹性二元组组成;
所述空间点弹性二元组为:<SPointIndexCodenp,Pointnp>;
第p个空间点弹性二元组中空间点对象,由唯一编码、横坐标、纵坐标、属性表组成,定义为:
Pointnp={PtIDnp,PtXnp,PtYnp,PtAtrributesnp}
其中,PtIDnp为第p个空间点弹性二元组中对象的唯一编码,PtXnp为第p个空间点弹性二元组中的空间横坐标,PtYnp为第p个空间点弹性二元组中的空间纵坐标,PtAtributesnp为第p个空间点弹性二元组中的属性表;
SPointIndexCodenp为第p个二元组中空间点对象中空间坐标串与第p个二元组中空间点对象中唯一编码计算得到的空间索引编码,定义为:
SPointIndexCodenp=SpaceFillingCurveCoding(PtXnp,PtYnp,PtIDnp)
其中,SpaceFillingCurveCoding函数通过输入Pointnp对象的空间横坐标PtXnp、纵坐标PtYnp与唯一编码PtIDnp,通过空间填充曲线编码算法获取Pointnp对象所处的空间网格编码并与Point对象的唯一编码PtIDnp组合生成空间索引编码SPointIndexCodenp
而且,步骤2中,PointRDD可以在各个分区中并行地执行相同的Point数据处理算法并汇总处理结果,实现时空点大数据的分布式处理,定义为:
PointRDDResult=PointRDD.process(PointAlgorithm)
其中,PointAlgorithm为针对PointRDD执行的算法,PointRDD.process方法将PointAlgorithm作为输入,将其分发到各个分区中对所有Pointnp对象进行处理,并将所有处理结果进行汇总,PointRDDResult为汇总后的处理结果。
步骤3,将空间弹性分布式数据集转化为空间线弹性分布式数据集;
步骤3所述空间线弹性分布式数据集,定义为:
LineStringRDD=Trans2LineString(GeometryRDD)
LineStringRDD={SpatialLinePartitionp},p∈{1,2,…,P}
SpatialLinePartitionp={<SLineIndexCodenp,LineStringnp>},np∈{1,2,…,Np}
其中,方法Trans2LineString将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类LineString类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集,SpatialLinePartitionp表示第p个空间线弹性时空大数据分区;
空间线弹性分布式数据集由P个空间线弹性时空大数据分区组成,每个空间线弹性时空大数据分区可以单独在分布式系统的不同节点进行管理;
第p个空间线弹性时空大数据分区由Np个空间线弹性二元组组成;
所述空间线弹性二元组定义为<SLineIndexCodenp,LineStringnp>;
LineStringnp为第p个空间线弹性对象,由唯一编码、坐标串、属性表组成,定义为:
LineStringnp={LsIDnp,LsCoordsnp,LsAtrributesnp}
其中,LsIDnp为第p个空间线弹性二元组中LineStringnp对象的唯一编码,LsCoordsnp为第p个空间线弹性二元组的空间坐标串,LsAtributesnp为第p个空间线弹性二元组的属性表;
SLineIndexCodenp为第p个二元组中空间线对象中空间坐标串与第p个二元组中空间线对象中唯一编码计算得到的空间索引编码,定义为:
SLineIndexCodenp=SpaceFillingCurveCoding(LsCoordsnp,LsIDnp)
其中,SpaceFillingCurveCoding函数通过输入LineString对象的空间坐标串LsCoordsnp与唯一编码LsIDnp,通过空间填充曲线编码算法获取LineStringnp对象的空间坐标串LsCoordsnp所处的空间网格编码并与LineStringnp对象的唯一编码LsIDnp组合生成空间索引编码SLineIndexCodenp
而且,步骤3中,LineStringRDD可以在各个分区中并行地执行相同的LineString数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,将其分发到各个分区中对所有LineStringnp对象进行处理,并将所有处理结果进行汇总,LineStringRDDResult为汇总后的处理结果。
步骤4,将空间弹性分布式数据集转化为空间面弹性分布式数据集;
步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(GeometryRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集,SpatialPolygonPartitionp表示第p个空间面弹性时空大数据分区;
空间面弹性分布式数据集由P个空间面弹性时空大数据分区组成,每个空间面弹性时空大数据分区单独在分布式系统的不同节点进行管理;
第p个空间面弹性时空大数据分区由Np个空间面弹性二元组组成;
第p个空间面弹性二元组定义为<SPolygonIndexCodenp,Polygonnp>;
Polygon为空间面弹性对象,由唯一编码、坐标串、属性表组成,定义为:
Polygonnp={PgIDnp,PgCoordsnp,PgAtrributesnp}
其中,PgIDnp为第p个空间面弹性二元组的唯一编码,PgCoordsnp为第p个空间面弹性二元组的空间坐标串,PgAtributesnp为第p个空间面弹性二元组的属性表;
SPolygonIndexCodenp为第p个二元组中空间面对象中空间坐标串与第p个二元组中空间面对象中唯一编码计算得到的空间索引编码,定义为:
SPolygonIndexCodenp=SpaceFillingCurveCoding(PgCoordsnp,PgIDnp)
其中,SpaceFillingCurveCoding函数通过输入Polygonnp对象的空间坐标串PgCoordsnp与唯一编码PgIDnp,通过空间填充曲线编码算法获取Polygon对象的空间坐标串PgCoordsnp所处的空间网格编码并与Polygon对象的唯一编码PgIDnp组合生成空间索引编码SPolygonIndexCode;
而且,步骤4中,PolygonRDD可以在各个分区中并行地执行相同的Polygon数据处理算法并汇总处理结果,实现时空面大数据的分布式处理,定义为:
PolygonRDDResult=PolygonRDD.process(PolygonAlgorithm)
其中,PolygonAlgorithm为针对PolygonRDD执行的算法,PolygonRDD.process方法将PolygonAlgorithm作为输入,将其分发到各个分区中对所有Polygonnp对象进行处理,并将所有处理结果进行汇总,PolygonRDDResult为汇总后的处理结果。
步骤5,基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟传感网观测数据模型,设计空间观测弹性分布式数据集;
步骤5所述空间观测弹性分布式数据集表示为:
ObservationRDD={FromTime,UntilTime,{SpatialObservationPartitionp}},p∈{1,2,…,P}
SpatialObservationPartitionp={<SObservationIndexCodenp,Observationnp>},np∈{1,2,…,Np}
其中,空间观测弹性分布式数据集ObservationRDD由表示所有观测对象的最早生成时间的起始时间FromTime、表示所有观测对象的最晚生成时间的截止时间UntilTime、以及P个时空观测大数据分区SpatialObservationPartition组成,每个时空观测大数据分区可以单独在分布式系统的不同节点进行管理,第p个SpatialObservationPartitionp由Np个<SObservationIndexCodenp,Observationnp>空间观测弹性二元组组成,Observationnp为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTimenp,FeatureOfInterestnp,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型;ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;Procedurenp为第p个空间观测弹性二元组中Observationnp对象的观测程序,可以是传感器、仪器或计算过程;
SObservationIndexCodenp为第p个二元组中空间观测对象中的FeatureOfInterestnp与第p个二元组中空间观测对象中唯一编码计算得到的空间索引编码,定义为:
SObservationIndexCodenp=SpaceFillingCurveCoding(FeatureOfInterestnp,ObIDnp)
其中,SpaceFillingCurveCoding函数通过输入Observationnp对象的FeatureOfInterestnp与唯一编码ObIDnp,通过空间填充曲线编码算法获取Observationnp对象的FeatureOfInterestnp所处的空间网格编码并与Observationnp对象的唯一编码ObIDnp组合生成空间索引编码SObservationIndexCodenp
而且,步骤5中,ObservationRDD能够将时空观测大数据文件作为输入,读取其中存储的每个空间观测对象转换为Observationnp对象,并根据其计算得到的SObservationIndexCodenp在对应的时空大数据分区SpatialObservationPartitionp中进行管理,定义为:
ObservationRDD=ReadFromBigObservationDataFile(BigObservationDataFilePath)
其中BigObservationDataFilePath为存储时空观测大数据的文件路径,ReadFromBigObservationDataFile获取文件路径后将文件中的内容进行解析,生成ObservationRDD对象;
而且,步骤5中,ObservationRDD可以在各个分区中并行地执行相同的ObservationRDD数据处理算法并汇总处理结果,包括统计观测数量countObservations、过滤观测对象filterObservations、处理事件processEvent,实现时空观测大数据的分布式处理,定义为:
CountResult=ObservationRDD.countObservations()
FilteredObservationRDD=ObservationRDD.filterObservations(Filter)
EventResult=ObservationRDD.processEvent(Event)
其中,统计观测数量ObservationRDD.countObservations并行地在所有时空观测大数据分区统计其包含的Observation对象数并进行合并,获取ObservationRDD包含的所有观测对象总数CountResult;过滤观测对象ObservationRDD.filterObservations,基于观测对象过滤条件Filter并行地在所有时空观测大数据分区对其包含的Observation对象进行过滤,并获得过滤后的FilteredObservationRDD对象;处理事件ObservationRDD.processEvent,基于事件处理模型Event将ObservationRDD包含的所有时空观测大数据分区的所有Obsevation对象作为输入进行处理,返回对应的模型输出结果EventResult。
本发明的优点是:
提出了一套分布式空间对象组织方法,能够对海量空间数据进行高效的组织和处理;
在空间点、线、面对象的基础上进一步引入了空间观测对象,能够兼容对传感网观测数据进行高效的组织和处理;
所有空间对象的组织模型遵循国际开放地理信息联盟标准,具有良好的可互操作性。
运用了先进的分布式处理架构(SPARK)为空间数据的组织及计算带来高性能与高可用的特色,具有重要的市场价值。
附图说明
图1:是本发明实施例的空间点、线、面弹性分布式数据集对象设计类图。
图2:是本发明实施例的空间观测弹性分布式数据集对象设计类图。
图3:是本发明方法流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合实例对本发明作进一步详细描述,应当理解,此处所描述的实施案例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供了一种面向时空大数据计算的分布式空间对象组织方法,从分布式空间对象组织结构的设计与实现出发,针对其中分布式空间内存对象设计等关键问题,基于SPARK弹性分布式数据集结构,结合开放地理空间信息联盟提出的简单要素空间数据模型和传感网观测数据模型,实现了针对海量空间点、线、面、观测对象的分布式组织和处理,从而为组织和处理时空大数据提供一种较为全面的解决方案。
下面结合图1、图2介绍本发明的具体实施方式,实施例包括以下步骤:
一种面向时空大数据计算的分布式空间对象处理方法,实现方式包括以下步骤:
步骤1,构建空间弹性分布式数据集模型;
步骤2,将空间弹性分布式数据集转化为空间点弹性分布式数据集;
步骤3,将空间弹性分布式数据集转化为空间线弹性分布式数据集;
步骤4,将空间弹性分布式数据集转化为空间面弹性分布式数据集;
步骤5,基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟传感网观测数据模型,设计空间观测弹性分布式数据集;
作为优选,步骤1所述构建空间弹性分布式数据集为:
GeometryRDD={SpatialGeometryPartitionp},p∈{1,2,…,P}
SpatialGeometryPartitionp={<SGeometryIndexCodenp,Geometrynp>},np∈{1,2,…,Np}
其中,空间弹性分布式数据集由P个时空大数据分区组成,SpatialGeometryPartitionp表示第p个时空大数据分区;
每个时空大数据分区单独在分布式系统的不同节点进行管理,SpatialGeometryPartitionp由Np个二元组组成;
<SGeometryIndexCodenp,Geometrynp>表示第p个二元组;
Geometrynp为第p个二元组中基础空间对象,由唯一编码、坐标串、属性表组成,定义为:
Geometrynp={GeoIDnp,GeoCoordsnp,GeoAtrributesnp}
其中,GeoIDnp为第p个二元组中基础空间对象中唯一编码,GeoCoordsnp为第p个二元组中基础空间对象中空间坐标串,GeoAtrributesnp为第p个二元组中基础空间对象中属性表;
SGeometryIndexCodenp为第p个二元组中基础空间对象中空间坐标串与第p个二元组中基础空间对象中唯一编码计算得到的空间索引编码,定义为:
SGeometryIndexCodenp=SpaceFillingCurveCoding(GeoCoordsnp,GeoIDnp)
其中,SpaceFillingCurveCoding函数通过输入Geometrynp对象的空间坐标串GeoCoordsnp与唯一编码GeoIDnp,通过空间填充曲线编码算法获取Geometrynp对象的空间坐标串GeoCoordsnp所处的空间网格编码并与Geometrynp对象的唯一编码GeoIDnp组合生成空间索引编码SGeometryIndexCodenp
而且,步骤1中,GeometryRDD能够将时空大数据文件作为输入,读取其中存储的每个空间对象转换为Geometrynp对象,并根据其计算得到的SGeometryIndexCodenp在对应的时空大数据分区SpatialGeometryPartitionp中进行管理,定义为:
GeometryRDD=ReadFromBigDataFile(BigDataFilePath)
其中BigDataFilePath为存储时空大数据的文件路径,ReadFromBigDataFile获取文件路径后将文件中的内容进行解析,生成GeometryRDD对象;
而且,步骤1中,GeometryRDD可以在各个分区中并行地执行相同的Geometry数据处理算法并汇总处理结果,实现时空大数据的分布式处理,定义为:
GeometryRDDResult=GeometryRDD.process(GeoAlgorithm)
其中,GeoAlgorithm为针对GeometryRDD执行的算法,GeometryRDD.process方法将GeoAlgorithm作为输入,将其分发到各个分区中对所有Geometrynp对象进行处理,并将所有处理结果进行汇总,GeometryRDDResult为汇总后的处理结果。
作为优选,步骤2所述空间点弹性分布式数据集为:
PointRDD=Trans2Point(GeometryRDD)
PointRDD={SptialPointPartitionp},p∈{1,2,…,P}
SpatialPointPartitionp={<SPointIndexCodenp,Pointnp>},np∈{1,2,…,Np}
其中,方法Trans2Point将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Point类型,从而将空间弹性分布式数据集转化为空间点弹性分布式数据集;
PointRDD由P个空间点弹性时空点大数据分区组成,每个空间点弹性时空点大数据分区单独在分布式系统的不同节点进行管理;
第p个空间点弹性时空点大数据分区即SpatialPointPartitionp由Np个空间点弹性二元组组成;
所述空间点弹性二元组为:<SPointIndexCodenp,Pointnp>;
第p个空间点弹性二元组中空间点对象,由唯一编码、横坐标、纵坐标、属性表组成,定义为:
Pointnp={PtIDnp,PtXnp,PtYnp,PtAtrributesnp}
其中,PtIDnp为第p个空间点弹性二元组中对象的唯一编码,PtXnp为第p个空间点弹性二元组中的空间横坐标,PtYnp为第p个空间点弹性二元组中的空间纵坐标,PtAtributesnp为第p个空间点弹性二元组中的属性表;
SPointIndexCodenp为第p个二元组中空间点对象中空间坐标串与第p个二元组中空间点对象中唯一编码计算得到的空间索引编码,定义为:
SPointIndexCodenp=SpaceFillingCurveCoding(PtXnp,PtYnp,PtIDnp)
其中,SpaceFillingCurveCoding函数通过输入Pointnp对象的空间横坐标PtXnp、纵坐标PtYnp与唯一编码PtIDnp,通过空间填充曲线编码算法获取Pointnp对象所处的空间网格编码并与Point对象的唯一编码PtIDnp组合生成空间索引编码SPointIndexCodenp
而且,步骤2中,PointRDD可以在各个分区中并行地执行相同的Point数据处理算法并汇总处理结果,实现时空点大数据的分布式处理,定义为:
PointRDDResult=PointRDD.process(PointAlgorithm)
其中,PointAlgorithm为针对PointRDD执行的算法,PointRDD.process方法将PointAlgorithm作为输入,将其分发到各个分区中对所有Pointnp对象进行处理,并将所有处理结果进行汇总,PointRDDResult为汇总后的处理结果。
作为优选,步骤3所述空间线弹性分布式数据集,定义为:
LineStringRDD=Trans2LineString(GeometryRDD)
LineStringRDD={SpatialLinePartitionp},p∈{1,2,…,P}
SpatialLinePartitionp={<SLineIndexCodenp,LineStringnp>},np∈{1,2,…,Np}
其中,方法Trans2LineString将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类LineString类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集,SpatialLinePartitionp表示第p个空间线弹性时空大数据分区;
空间线弹性分布式数据集由P个空间线弹性时空大数据分区组成,每个空间线弹性时空大数据分区可以单独在分布式系统的不同节点进行管理;
第p个空间线弹性时空大数据分区由Np个空间线弹性二元组组成;
所述空间线弹性二元组定义为<SLineIndexCodenp,LineStringnp>;
LineStringnp为第p个空间线弹性对象,由唯一编码、坐标串、属性表组成,定义为:
LineStringnp={LsIDnp,LsCoordsnp,LsAtrributesnp}
其中,LsIDnp为第p个空间线弹性二元组中LineStringnp对象的唯一编码,LsCoordsnp为第p个空间线弹性二元组的空间坐标串,LsAtributesnp为第p个空间线弹性二元组的属性表;
SLineIndexCodenp为第p个二元组中空间线对象中空间坐标串与第p个二元组中空间线对象中唯一编码计算得到的空间索引编码,定义为:
SLineIndexCodenp=SpaceFillingCurveCoding(LsCoordsnp,LsIDnp)
其中,SpaceFillingCurveCoding函数通过输入LineString对象的空间坐标串LsCoordsnp与唯一编码LsIDnp,通过空间填充曲线编码算法获取LineStringnp对象的空间坐标串LsCoordsnp所处的空间网格编码并与LineStringnp对象的唯一编码LsIDnp组合生成空间索引编码SLineIndexCodenp
而且,步骤3中,LineStringRDD可以在各个分区中并行地执行相同的LineString数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,将其分发到各个分区中对所有LineStringnp对象进行处理,并将所有处理结果进行汇总,LineStringRDDResult为汇总后的处理结果。
作为优选,步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(GeometryRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集,SpatialPolygonPartitionp表示第p个空间面弹性时空大数据分区;
空间面弹性分布式数据集由P个空间面弹性时空大数据分区组成,每个空间面弹性时空大数据分区单独在分布式系统的不同节点进行管理;
第p个空间面弹性时空大数据分区由Np个空间面弹性二元组组成;
第p个空间面弹性二元组定义为<SPolygonIndexCodenp,Polygonnp>;
Polygon为空间面弹性对象,由唯一编码、坐标串、属性表组成,定义为:
Polygonnp={PgIDnp,PgCoordsnp,PgAtrributesnp}
其中,PgIDnp为第p个空间面弹性二元组的唯一编码,PgCoordsnp为第p个空间面弹性二元组的空间坐标串,PgAtributesnp为第p个空间面弹性二元组的属性表;
SPolygonIndexCodenp为第p个二元组中空间面对象中空间坐标串与第p个二元组中空间面对象中唯一编码计算得到的空间索引编码,定义为:
SPolygonIndexCodenp=SpaceFillingCurveCoding(PgCoordsnp,PgIDnp)
其中,SpaceFillingCurveCoding函数通过输入Polygonnp对象的空间坐标串PgCoordsnp与唯一编码PgIDnp,通过空间填充曲线编码算法获取Polygon对象的空间坐标串PgCoordsnp所处的空间网格编码并与Polygon对象的唯一编码PgIDnp组合生成空间索引编码SPolygonIndexCode;
而且,步骤4中,PolygonRDD可以在各个分区中并行地执行相同的Polygon数据处理算法并汇总处理结果,实现时空面大数据的分布式处理,定义为:
PolygonRDDResult=PolygonRDD.process(PolygonAlgorithm)
其中,PolygonAlgorithm为针对PolygonRDD执行的算法,PolygonRDD.process方法将PolygonAlgorithm作为输入,将其分发到各个分区中对所有Polygonnp对象进行处理,并将所有处理结果进行汇总,PolygonRDDResult为汇总后的处理结果。
作为优选,步骤5所述空间观测弹性分布式数据集表示为:
ObservationRDD={FromTime,UntilTime,{SpatialObservationPartitionp}},p∈{1,2,…,P}
SpatialObservationPartitionp={<SObservationIndexCodenp,Observationnp>},np∈{1,2,…,Np}
其中,空间观测弹性分布式数据集ObservationRDD由表示所有观测对象的最早生成时间的起始时间FromTime、表示所有观测对象的最晚生成时间的截止时间UntilTime、以及P个时空观测大数据分区SpatialObservationPartition组成,每个时空观测大数据分区可以单独在分布式系统的不同节点进行管理,第p个SpatialObservationPartitionp由Np个<SObservationIndexCodenp,Observationnp>空间观测弹性二元组组成,Observationnp为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTimenp,FeatureOfInterestnp,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型;ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;Procedurenp为第p个空间观测弹性二元组中Observationnp对象的观测程序,可以是传感器、仪器或计算过程;
SObservationIndexCodenp为第p个二元组中空间观测对象中的FeatureOfInterestnp与第p个二元组中空间观测对象中唯一编码计算得到的空间索引编码,定义为:
SObservationIndexCodenp=SpaceFillingCurveCoding(FeatureOfInterestnp,ObIDnp)
其中,SpaceFillingCurveCoding函数通过输入Observationnp对象的FeatureOfInterestnp与唯一编码ObIDnp,通过空间填充曲线编码算法获取Observationnp对象的FeatureOfInterestnp所处的空间网格编码并与Observationnp对象的唯一编码ObIDnp组合生成空间索引编码SObservationIndexCodenp
而且,步骤5中,ObservationRDD能够将时空观测大数据文件作为输入,读取其中存储的每个空间观测对象转换为Observationnp对象,并根据其计算得到的SObservationIndexCodenp在对应的时空大数据分区SpatialObservationPartitionp中进行管理,定义为:
ObservationRDD=ReadFromBigObservationDataFile(BigObservationDataFilePath)
其中BigObservationDataFilePath为存储时空观测大数据的文件路径,ReadFromBigObservationDataFile获取文件路径后将文件中的内容进行解析,生成ObservationRDD对象;
而且,步骤5中,ObservationRDD可以在各个分区中并行地执行相同的ObservationRDD数据处理算法并汇总处理结果,包括统计观测数量countObservations、过滤观测对象filterObservations、处理事件processEvent,实现时空观测大数据的分布式处理,定义为:
CountResult=ObservationRDD.countObservations()
FilteredObservationRDD=ObservationRDD.filterObservations(Filter)
EventResult=ObservationRDD.processEvent(Event)
其中,统计观测数量ObservationRDD.countObservations并行地在所有时空观测大数据分区统计其包含的Observation对象数并进行合并,获取ObservationRDD包含的所有观测对象总数CountResult;过滤观测对象ObservationRDD.filterObservations,基于观测对象过滤条件Filter并行地在所有时空观测大数据分区对其包含的Observation对象进行过滤,并获得过滤后的FilteredObservationRDD对象;处理事件ObservationRDD.processEvent,基于事件处理模型Event将ObservationRDD包含的所有时空观测大数据分区的所有Obsevation对象作为输入进行处理,返回对应的模型输出结果EventResult。
具体实施时,以上流程可采用计算机软件技术实现。
应当理解的是,本申请书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本申请专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本申请权利要求所保护的范围情况下,还可以做出替换或变形,均落入本申请的保护范围之内,本申请的请求保护范围应以所附权利要求为准。

Claims (5)

1.一种面向时空大数据计算的分布式空间对象处理方法,实现方式包括以下步骤:
步骤1,构建空间弹性分布式数据集模型;
步骤2,将空间弹性分布式数据集转化为空间点弹性分布式数据集;
步骤3,将空间弹性分布式数据集转化为空间线弹性分布式数据集;
步骤4,将空间弹性分布式数据集转化为空间面弹性分布式数据集;
步骤5,基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟传感网观测数据模型,设计空间观测弹性分布式数据集;
步骤5所述空间观测弹性分布式数据集表示为:
ObservationRDD={FromTime,UntilTime,{SpatialObservationPartitionp}},p∈{1,2,…,P}SpatialObservationPartitionp={<SObservationIndexCodenp,Observationnp>},np∈{1,2,…,Np}
其中,空间观测弹性分布式数据集ObservationRDD由表示所有观测对象的最早生成时间的起始时间FromTime、表示所有观测对象的最晚生成时间的截止时间UntilTime、以及P个时空观测大数据分区SpatialObservationPartition组成,每个时空观测大数据分区可以单独在分布式系统的不同节点进行管理,第p个SpatialObservationPartitionp由Np个<SObservationIndexCodenp,Observationnp>空间观测弹性二元组组成,Observationnp为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTimenp,FeatureOfInterestnp,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型;ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;Procedurenp为第p个空间观测弹性二元组中Observationnp对象的观测程序,可以是传感器、仪器或计算过程;
SObservationIndexCodenp为第p个二元组中空间观测对象中的FeatureOfInterestnp与第p个二元组中空间观测对象中唯一编码计算得到的空间索引编码,定义为:
SObservationIndexCodenp=SpaceFillingCurveCoding(FeatureOfInterestnp,ObIDnp)其中,SpaceFillingCurveCoding函数通过输入Observationnp对象的FeatureOfInterestnp与唯一编码ObIDnp,通过空间填充曲线编码算法获取Observationnp对象的FeatureOfInterestnp所处的空间网格编码并与Observationnp对象的唯一编码ObIDnp组合生成空间索引编码SObservationIndexCodenp
而且,步骤5中,ObservationRDD能够将时空观测大数据文件作为输入,读取其中存储的每个空间观测对象转换为Observationnp对象,并根据其计算得到的SObservationIndexCodenp在对应的时空大数据分区SpatialObservationPartitionp中进行管理,定义为:
ObservationRDD=ReadFromBigObservationDataFile(BigObservationDataFilePath)其中BigObservationDataFilePath为存储时空观测大数据的文件路径,ReadFromBigObservationDataFile获取文件路径后将文件中的内容进行解析,生成ObservationRDD对象;
而且,步骤5中,ObservationRDD可以在各个分区中并行地执行相同的ObservationRDD数据处理算法并汇总处理结果,包括统计观测数量countObservations、过滤观测对象filterObservations、处理事件processEvent,实现时空观测大数据的分布式处理,定义为:
CountResult=ObservationRDD.countObservations()
FilteredObservationRDD=ObservationRDD.filterObservations(Filter)
EventResult=ObservationRDD.processEvent(Event)
其中,统计观测数量ObservationRDD.countObservations并行地在所有时空观测大数据分区统计其包含的Observation对象数并进行合并,获取ObservationRDD包含的所有观测对象总数CountResult;过滤观测对象ObservationRDD.filterObservations,基于观测对象过滤条件Filter并行地在所有时空观测大数据分区对其包含的Observation对象进行过滤,并获得过滤后的FilteredObservationRDD对象;处理事件ObservationRDD.processEvent,基于事件处理模型Event将ObservationRDD包含的所有时空观测大数据分区的所有Obsevation对象作为输入进行处理,返回对应的模型输出结果EventResult。
2.根据权利要求1所述的面向时空大数据计算的分布式空间对象处理方法,其特征在于:
步骤1所述构建空间弹性分布式数据集为:
GeometryRDD={SpatialGeometryPartitionp},p∈{1,2,…,P}
SpatialGeometryPartitionp={<SGeometryIndexCodenp,Geometrynp>},np∈{1,2,…,Np}
其中,空间弹性分布式数据集由P个时空大数据分区组成,SpatialGeometryPartitionp表示第p个时空大数据分区;
每个时空大数据分区单独在分布式系统的不同节点进行管理,SpatialGeometryPartitionp由Np个二元组组成;
<SGeometryIndexCodenp,Geometrynp>表示第p个二元组;
Geometrynp为第p个二元组中基础空间对象,由唯一编码、坐标串、属性表组成,定义为:
Geometrynp={GeoIDnp,GeoCoordsnp,GeoAtrributesnp}
其中,GeoIDnp为第p个二元组中基础空间对象中唯一编码,GeoCoordsnp为第p个二元组中基础空间对象中空间坐标串,GeoAtrributesnp为第p个二元组中基础空间对象中属性表;
SGeometryIndexCodenp为第p个二元组中基础空间对象中空间坐标串与第p个二元组中基础空间对象中唯一编码计算得到的空间索引编码,定义为:
SGeometryIndexCodenp=SpaceFillingCurveCoding(GeoCoordsnp,GeoIDnp)
其中,SpaceFillingCurveCoding函数通过输入Geometrynp对象的空间坐标串GeoCoordsnp与唯一编码GeoIDnp,通过空间填充曲线编码算法获取Geometrynp对象的空间坐标串GeoCoordsnp所处的空间网格编码并与Geometrynp对象的唯一编码GeoIDnp组合生成空间索引编码SGeometryIndexCodenp
而且,步骤1中,GeometryRDD能够将时空大数据文件作为输入,读取其中存储的每个空间对象转换为Geometrynp对象,并根据其计算得到的SGeometryIndexCodenp在对应的时空大数据分区SpatialGeometryPartitionp中进行管理,定义为:
GeometryRDD=ReadFromBigDataFile(BigDataFilePath)
其中BigDataFilePath为存储时空大数据的文件路径,ReadFromBigDataFile获取文件路径后将文件中的内容进行解析,生成GeometryRDD对象;
而且,步骤1中,GeometryRDD可以在各个分区中并行地执行相同的Geometry数据处理算法并汇总处理结果,实现时空大数据的分布式处理,定义为:
GeometryRDDResult=GeometryRDD.process(GeoAlgorithm)
其中,GeoAlgorithm为针对GeometryRDD执行的算法,GeometryRDD.process方法将GeoAlgorithm作为输入,将其分发到各个分区中对所有Geometrynp对象进行处理,并将所有处理结果进行汇总,GeometryRDDResult为汇总后的处理结果。
3.根据权利要求2所述的面向时空大数据计算的分布式空间对象处理方法,其特征在于:
步骤2所述空间点弹性分布式数据集为:
PointRDD=Trans2Point(GeometryRDD)
PointRDD={SptialPointPartitionp},p∈{1,2,…,P}
SpatialPointPartitionp={<SPointIndexCodenp,Pointnp>},np∈{1,2,…,Np}
其中,方法Trans2Point将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Point类型,从而将空间弹性分布式数据集转化为空间点弹性分布式数据集;
PointRDD由P个空间点弹性时空点大数据分区组成,每个空间点弹性时空点大数据分区单独在分布式系统的不同节点进行管理;
第p个空间点弹性时空点大数据分区即SpatialPointPartitionp由Np个空间点弹性二元组组成;
所述空间点弹性二元组为:<SPointIndexCodenp,Pointnp>;
第p个空间点弹性二元组中空间点对象,由唯一编码、横坐标、纵坐标、属性表组成,定义为:
Pointnp={PtIDnp,PtXnp,PtYnp,PtAtrributesnp}
其中,PtIDnp为第p个空间点弹性二元组中对象的唯一编码,PtXnp为第p个空间点弹性二元组中的空间横坐标,PtYnp为第p个空间点弹性二元组中的空间纵坐标,PtAtributesnp为第p个空间点弹性二元组中的属性表;
SPointIndexCodenp为第p个二元组中空间点对象中空间坐标串与第p个二元组中空间点对象中唯一编码计算得到的空间索引编码,定义为:
SPointIndexCodenp=SpaceFillingCurveCoding(PtXnp,PtYnp,PtIDnp)
其中,SpaceFillingCurveCoding函数通过输入Pointnp对象的空间横坐标PtXnp、纵坐标PtYnp与唯一编码PtIDnp,通过空间填充曲线编码算法获取Pointnp对象所处的空间网格编码并与Point对象的唯一编码PtIDnp组合生成空间索引编码SPointIndexCodenp
而且,步骤2中,PointRDD可以在各个分区中并行地执行相同的Point数据处理算法并汇总处理结果,实现时空点大数据的分布式处理,定义为:
PointRDDResult=PointRDD.process(PointAlgorithm)
其中,PointAlgorithm为针对PointRDD执行的算法,PointRDD.process方法将PointAlgorithm作为输入,将其分发到各个分区中对所有Pointnp对象进行处理,并将所有处理结果进行汇总,PointRDDResult为汇总后的处理结果。
4.根据权利要求3所述的面向时空大数据计算的分布式空间对象处理方法,其特征在于:
步骤3所述空间线弹性分布式数据集,定义为:
LineStringRDD=Trans2LineString(GeometryRDD)
LineStringRDD={SpatialLinePartitionp},p∈{1,2,…,P}
SpatialLinePartitionp={<SLineIndexCodenp,LineStringnp>},np∈{1,2,…,Np}
其中,方法Trans2LineString将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类LineString类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集,SpatialLinePartitionp表示第p个空间线弹性时空大数据分区;
空间线弹性分布式数据集由P个空间线弹性时空大数据分区组成,每个空间线弹性时空大数据分区可以单独在分布式系统的不同节点进行管理;
第p个空间线弹性时空大数据分区由Np个空间线弹性二元组组成;
所述空间线弹性二元组定义为<SLineIndexCodenp,LineStringnp>;
LineStringnp为第p个空间线弹性对象,由唯一编码、坐标串、属性表组成,定义为:
LineStringnp={LsIDnp,LsCoordsnp,LsAtrributesnp}
其中,LsIDnp为第p个空间线弹性二元组中LineStringnp对象的唯一编码,LsCoordsnp为第p个空间线弹性二元组的空间坐标串,LsAtributesnp为第p个空间线弹性二元组的属性表;
SLineIndexCodenp为第p个二元组中空间线对象中空间坐标串与第p个二元组中空间线对象中唯一编码计算得到的空间索引编码,定义为:
SLineIndexCodenp=SpaceFillingCurveCoding(LsCoordsnp,LsIDnp)
其中,SpaceFillingCurveCoding函数通过输入LineString对象的空间坐标串LsCoordsnp与唯一编码LsIDnp,通过空间填充曲线编码算法获取LineStringnp对象的空间坐标串LsCoordsnp所处的空间网格编码并与LineStringnp对象的唯一编码LsIDnp组合生成空间索引编码SLineIndexCodenp
而且,步骤3中,LineStringRDD可以在各个分区中并行地执行相同的LineString数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,将其分发到各个分区中对所有LineStringnp对象进行处理,并将所有处理结果进行汇总,LineStringRDDResult为汇总后的处理结果。
5.根据权利要求4所述的面向时空大数据计算的分布式空间对象处理方法,其特征在于:
步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(GeometryRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集,SpatialPolygonPartitionp表示第p个空间面弹性时空大数据分区;
空间面弹性分布式数据集由P个空间面弹性时空大数据分区组成,每个空间面弹性时空大数据分区单独在分布式系统的不同节点进行管理;
第p个空间面弹性时空大数据分区由Np个空间面弹性二元组组成;
第p个空间面弹性二元组定义为<SPolygonIndexCodenp,Polygonnp>;
Polygon为空间面弹性对象,由唯一编码、坐标串、属性表组成,定义为:
Polygonnp={PgIDnp,PgCoordsnp,PgAtrributesnp}
其中,PgIDnp为第p个空间面弹性二元组的唯一编码,PgCoordsnp为第p个空间面弹性二元组的空间坐标串,PgAtributesnp为第p个空间面弹性二元组的属性表;
SPolygonIndexCodenp为第p个二元组中空间面对象中空间坐标串与第p个二元组中空间面对象中唯一编码计算得到的空间索引编码,定义为:
SPolygonIndexCodenp=SpaceFillingCurveCoding(PgCoordsnp,PgIDnp)
其中,SpaceFillingCurveCoding函数通过输入Polygonnp对象的空间坐标串PgCoordsnp与唯一编码PgIDnp,通过空间填充曲线编码算法获取Polygon对象的空间坐标串PgCoordsnp所处的空间网格编码并与Polygon对象的唯一编码PgIDnp组合生成空间索引编码SPolygonIndexCode;
而且,步骤4中,PolygonRDD可以在各个分区中并行地执行相同的Polygon数据处理算法并汇总处理结果,实现时空面大数据的分布式处理,定义为:
PolygonRDDResult=PolygonRDD.process(PolygonAlgorithm)
其中,PolygonAlgorithm为针对PolygonRDD执行的算法,PolygonRDD.process方法将PolygonAlgorithm作为输入,将其分发到各个分区中对所有Polygonnp对象进行处理,并将所有处理结果进行汇总,PolygonRDDResult为汇总后的处理结果。
CN202011447802.9A 2020-12-09 2020-12-09 一种面向时空大数据计算的分布式空间对象组织方法 Active CN112487125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011447802.9A CN112487125B (zh) 2020-12-09 2020-12-09 一种面向时空大数据计算的分布式空间对象组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011447802.9A CN112487125B (zh) 2020-12-09 2020-12-09 一种面向时空大数据计算的分布式空间对象组织方法

Publications (2)

Publication Number Publication Date
CN112487125A CN112487125A (zh) 2021-03-12
CN112487125B true CN112487125B (zh) 2022-08-16

Family

ID=74941541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011447802.9A Active CN112487125B (zh) 2020-12-09 2020-12-09 一种面向时空大数据计算的分布式空间对象组织方法

Country Status (1)

Country Link
CN (1) CN112487125B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704340B (zh) * 2021-08-30 2023-07-21 远景智能国际私人投资有限公司 数据处理方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681807A (zh) * 2016-11-28 2017-05-17 中国人民解放军国防科学技术大学 一种基于Spark的成像卫星任务预处理并行化方法
CN106909645A (zh) * 2017-02-21 2017-06-30 中国科学院电子学研究所 一种可扩展定义的时空数据统一组织方法
CN108804602A (zh) * 2018-05-25 2018-11-13 武汉大学 一种基于spark的分布式空间数据存储计算方法
CN108804781A (zh) * 2018-05-25 2018-11-13 武汉大学 流计算与传感网集成的地理过程近实时模拟方法
CN110532340A (zh) * 2019-09-03 2019-12-03 华东师范大学 空间信息时空元数据构建方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445676B (zh) * 2015-08-05 2019-10-22 杭州海康威视系统技术有限公司 一种分布式数据计算的任务分配方法和任务分配装置
US11194762B2 (en) * 2019-05-21 2021-12-07 Oracle International Corporation Spatial indexing using resilient distributed datasets

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681807A (zh) * 2016-11-28 2017-05-17 中国人民解放军国防科学技术大学 一种基于Spark的成像卫星任务预处理并行化方法
CN106909645A (zh) * 2017-02-21 2017-06-30 中国科学院电子学研究所 一种可扩展定义的时空数据统一组织方法
CN108804602A (zh) * 2018-05-25 2018-11-13 武汉大学 一种基于spark的分布式空间数据存储计算方法
CN108804781A (zh) * 2018-05-25 2018-11-13 武汉大学 流计算与传感网集成的地理过程近实时模拟方法
CN110532340A (zh) * 2019-09-03 2019-12-03 华东师范大学 空间信息时空元数据构建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Spatial data management in apache spark: the GeoSpark perspective and beyond;Yu, J et al;《Geoinformatica》;20181022;全文 *
基于Spark的分布式空间数据存储结构设计与实现;乐鹏;《武汉大学学报(信息科学版)》;20181205;全文 *

Also Published As

Publication number Publication date
CN112487125A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
Jiang et al. Sketchml: Accelerating distributed machine learning with data sketches
CN111885040A (zh) 分布式网络态势感知方法、系统、服务器及节点设备
CN104820708B (zh) 一种基于云计算平台的大数据聚类方法和装置
CN104809244B (zh) 一种大数据环境下的数据挖掘方法和装置
Yang et al. A scalable data chunk similarity based compression approach for efficient big sensing data processing on cloud
CN112527886A (zh) 一种基于城市大脑的数据仓库系统
CN111629081A (zh) 互联网协议ip地址数据处理方法、装置及电子设备
CN116860905B (zh) 一种城市信息模型的空间单元编码生成方法
CN112487125B (zh) 一种面向时空大数据计算的分布式空间对象组织方法
Zhang et al. Improving NoSQL storage schema based on Z-curve for spatial vector data
CN112884120A (zh) 图神经网络表示架构
Qin et al. THBase: A coprocessor-based scheme for big trajectory data management
CN112000848A (zh) 一种图数据处理方法、装置、电子设备及存储介质
CN115827797A (zh) 一种基于大数据的环境数据分析整合方法及系统
Wang et al. Ppq-trajectory: spatio-temporal quantization for querying in large trajectory repositories
CN115543951B (zh) 一种基于起源图的日志采集、压缩、存储方法
CN117472693A (zh) 基于数据湖的埋点数据处理方法、系统、设备及存储介质
CN110825744B (zh) 一种基于集群环境的空气质量监测大数据分区存储方法
CN115858498A (zh) 五维时空分布式数据库构建方法及装置
Zhang et al. The modeling of big traffic data processing based on cloud computing
CN115203290A (zh) 一种基于多维prefixspan算法的故障诊断方法
CN110727532B (zh) 一种数据修复方法、电子设备及存储介质
Basnet et al. Analysis of multifactorial social unrest events with spatio-temporal k-dimensional tree-based dbscan
CN114372034A (zh) 一种基于遥感影像地图服务的存取方法
CN110765130B (zh) 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant