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

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

Info

Publication number
CN112487125A
CN112487125A CN202011447802.9A CN202011447802A CN112487125A CN 112487125 A CN112487125 A CN 112487125A CN 202011447802 A CN202011447802 A CN 202011447802A CN 112487125 A CN112487125 A CN 112487125A
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.)
Granted
Application number
CN202011447802.9A
Other languages
English (en)
Other versions
CN112487125B (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,构建空间弹性分布式数据集模型;
步骤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}
其中,PtID np为第p个空间点弹性二元组中对象的唯一编码,PtX np为第p 个空间点弹性二元组中的空间横坐标,PtY np为第p个空间点弹性二元组中的空间纵坐标,PtAtributes np为第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类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集;
空间线弹性分布式数据集由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可以在各个分区中并行地执行相同的Point 数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,将其分发到各个分区中对所有LineStringnp对象进行处理,并将所有处理结果进行汇总, LineStringRDDResult为汇总后的处理结果;
作为优选,步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(PolygonRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集;
空间面弹性分布式数据集由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>空间观测弹性二元组组成,Observation为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTime,FeatureOfInterest,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型;ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;(5)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,构建弹性分布式数据集模型;
步骤1所述构建空间弹性分布式数据集为:
GeometryRDD={SpatialGeometryPartitionp},p∈{1,2,…,P}
SpatialGeometryPartitionp={<SGeometryIndexCodenp,Geometrynp>},np∈{1,2,…, Np}
其中,空间弹性分布式数据集由P个时空大数据分区组成,SpatialGeometryPartitionp表示第p个时空大数据分区;
每个时空大数据分区单独在SPARK分布式系统的不同计算机节点的内存中进行管理,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,具体实施时可以选用Z填充曲线、Hilbert空间填充曲线等算法;
而且,步骤1中,GeometryRDD能够将时空大数据文件作为输入,包括 Shapefile、WKT、GeoJSON等格式,读取其中存储的每个空间对象转换为 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个空间点弹性时空点大数据分区组成,每个空间点弹性时空点大数据分区单独在SPARK分布式系统的不同计算机节点的内存中进行管理;
第p个空间点弹性时空点大数据分区即SpatialPointPartitionp由Np个空间点弹性二元组组成;
所述空间点弹性二元组为:<SPointIndexCodenp,Pointnp>;
第p个空间点弹性二元组中空间点对象,由唯一编码、横坐标、纵坐标、属性表组成,定义为:
Pointnp={PtIDnp,PtXnp,PtYnp,PtAtrributesnp}
其中,PtID np为第p个空间点弹性二元组中对象的唯一编码,PtX np为第p 个空间点弹性二元组中的空间横坐标,PtY np为第p个空间点弹性二元组中的空间纵坐标,PtAtributes np为第p个空间点弹性二元组中的属性表;
SPointIndexCodenp为第p个二元组中空间点对象中空间坐标串与第p个二元组中空间点对象中唯一编码计算得到的空间索引编码,定义为:
SPointIndexCodenp=SpaceFillingCurveCoding(PtXnp,PtYnp,PtIDnp)
其中,SpaceFillingCurveCoding函数通过输入Pointnp对象的空间横坐标PtXnp、纵坐标PtYnp与唯一编码PtIDnp,通过空间填充曲线编码算法获取Pointnp对象所处的空间网格编码并与Point对象的唯一编码PtIDnp组合生成空间索引编码 SPointIndexCodenp,具体实施时可以选用Z填充曲线、Hilbert空间填充曲线等算法;
而且,步骤2中,PointRDD可以在各个分区中并行地执行相同的Point数据处理算法并汇总处理结果,实现时空点大数据的分布式处理,定义为:
PointRDDResult=PointRDD.process(PointAlgorithm)
其中,PointAlgorithm为针对PointRDD执行的算法,PointRDD.process方法将PointAlgorithm作为输入,如空间范围查询、缓冲区分析、叠置分析、核密度分析、K邻近查询等算法,将其分发到各个分区中对所有Pointnp对象进行处理,并将所有处理结果进行汇总,PointRDDResult为汇总后的处理结果;
步骤3,将空间弹性分布式数据集转化为空间线弹性分布式数据集;
步骤3所述空间线弹性分布式数据集,定义为:
LineStringRDD=Trans2LineString(GeometryRDD)
LineStringRDD={SpatialLinePartitionp},p∈{1,2,…,P}
SpatialLinePartitionp={<SLineIndexCodenp,LineStringnp>},np∈{1,2,…,Np}
其中,方法Trans2LineString将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类LineString类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集;
空间线弹性分布式数据集由P个空间线弹性时空大数据分区组成,每个空间线弹性时空大数据分区可以单独在SPARK分布式系统的不同计算机节点的内存中进行管理;
第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,具体实施时可以选用Z填充曲线、Hilbert空间填充曲线等算法;
而且,步骤3中,LineStringRDD可以在各个分区中并行地执行相同的Point 数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,如空间范围查询、缓冲区分析、叠置分析、长度统计等算法,将其分发到各个分区中对所有 LineStringnp对象进行处理,并将所有处理结果进行汇总,LineStringRDDResult 为汇总后的处理结果;
步骤4,将空间弹性分布式数据集转化为转化为空间面弹性分布式数据集;
步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(PolygonRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集;
空间面弹性分布式数据集由P个空间面弹性时空大数据分区组成,每个空间面弹性时空大数据分区单独在SPARK分布式系统的不同计算机节点的内存中进行管理;
第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,具体实施时可以选用Z填充曲线、 Hilbert空间填充曲线等算法;
而且,步骤4中,PolygonRDD可以在各个分区中并行地执行相同的Polygon 数据处理算法并汇总处理结果,实现时空面大数据的分布式处理,定义为:
PolygonRDDResult=PolygonRDD.process(PolygonAlgorithm)
其中,PolygonAlgorithm为针对PolygonRDD执行的算法, PolygonRDD.process方法将PolygonAlgorithm作为输入,如空间范围查询、缓冲区分析、叠置分析、面积统计、周长统计等算法,将其分发到各个分区中对所有 Polygonnp对象进行处理,并将所有处理结果进行汇总,PolygonRDDResult为汇总后的处理结果;
步骤5,基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟传感网观测数据模型,设计空间观测弹性分布式数据集;
所述空间观测弹性分布式数据集表示为:
ObservationRDD={FromTime,UntilTime,{SpatialObservationPartitionp}},p∈{1, 2,…,P}
SpatialObservationPartitionp={<SObservationIndexCodenp,Observationnp>},np∈{1, 2,…,Np}
其中,空间观测弹性分布式数据集ObservationRDD由表示所有观测对象的最早生成时间的起始时间fromTime、表示所有观测对象的最晚生成时间的截止时间untilTime、以及P个时空观测大数据分区SpatialObservationPartition组成,每个时空观测大数据分区可以单独在SPARK分布式系统的不同计算机节点的内存中进行管理,第p个SpatialObservationPartitionp由Np个 <SObservationIndexCodenp,Observationnp>空间观测弹性二元组组成,Observation 为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTime,FeatureOfInterest,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型; ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;(5)Procedurenp为第p个空间观测弹性二元组中 Observationnp对象的观测程序,可以是传感器、仪器或计算过程;
SObservationIndexCodenp为第p个二元组中空间观测对象中的FeatureOfInterestnp与第p个二元组中空间观测对象中唯一编码计算得到的空间索引编码,定义为:
SObservationIndexCodenp=SpaceFillingCurveCoding(FeatureOfInterestnp,ObIDnp)
其中,SpaceFillingCurveCoding函数通过输入Observationnp对象的FeatureOfInterestnp与唯一编码ObIDnp,通过空间填充曲线编码算法获取Observationnp对象的FeatureOfInterestnp所处的空间网格编码并与Observationnp对象的唯一编码ObIDnp组合生成空间索引编码SObservationIndexCodenp,具体实施时可以选用Z填充曲线、Hilbert空间填充曲线等算法;
而且,步骤5中,ObservationRDD能够将时空观测大数据文件作为输入,可以为CSV、TSV格式,读取其中存储的每个空间观测对象转换为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 (6)

1.一种面向时空大数据计算的分布式空间对象组织方法,实现方式包括以下步骤:
步骤1,构建空间弹性分布式数据集模型;
步骤2,将空间弹性分布式数据集转化为空间点弹性分布式数据集;
步骤3,将空间弹性分布式数据集转化为空间线弹性分布式数据集;
步骤4,将空间弹性分布式数据集转化为转化为空间面弹性分布式数据集;
步骤5,基于SPARK弹性分布式数据集结构RDD和开放地理空间信息联盟传感网观测数据模型,设计空间观测弹性分布式数据集。
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.根据权利要求1所述的面向时空大数据计算的分布式空间对象组织方法,其特征在于:
步骤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}
其中,PtID np为第p个空间点弹性二元组中对象的唯一编码,PtX np为第p个空间点弹性二元组中的空间横坐标,PtY np为第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.根据权利要求1所述的面向时空大数据计算的分布式空间对象组织方法,其特征在于:
步骤3所述空间线弹性分布式数据集,定义为:
LineStringRDD=Trans2LineString(GeometryRDD)
LineStringRDD={SpatialLinePartitionp},p∈{1,2,…,P}
SpatialLinePartitionp={<SLineIndexCodenp,LineStringnp>},np∈{1,2,…,Np}
其中,方法Trans2LineString将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类LineString类型,从而将空间弹性分布式数据集转化为空间线弹性分布式数据集;
空间线弹性分布式数据集由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可以在各个分区中并行地执行相同的Point数据处理算法并汇总处理结果,实现时空线大数据的分布式处理,定义为:
LineStringRDDResult=LineStringRDD.process(LineStringAlgorithm)
其中,LineStringAlgorithm为针对LineStringRDD执行的算法,LineStringRDD.process方法将LineStringAlgorithm作为输入,将其分发到各个分区中对所有LineStringnp对象进行处理,并将所有处理结果进行汇总,LineStringRDDResult为汇总后的处理结果。
5.根据权利要求1所述的面向时空大数据计算的分布式空间对象组织方法,其特征在于:
步骤4所述空间面弹性分布式数据集为:
PolygonRDD=Trans2Polygon(PolygonRDD)
PolygonRDD={SpatialPolygonPartitionp},p∈{1,2,…,P}
SpatialPolygonPartitionp={<SPolygonIndexCodenp,Polygonnp>},np∈{1,2,…,Np}
其中,方法Trans2Polygon将空间弹性分布式数据集作为输入,将其中每个分区中的Geometry对象的类型强制转换为其子类Polygon类型,从而将空间弹性分布式数据集转化为空间面弹性分布式数据集;
空间面弹性分布式数据集由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为汇总后的处理结果。
6.根据权利要求1所述的面向时空大数据计算的分布式空间对象组织方法,其特征在于:
步骤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>空间观测弹性二元组组成,Observation为开放地理空间信息联盟传感网观测与测量模型定义的观测对象,由唯一编码、坐标串、属性表组成,定义为:
Observationnp={ObIDnp,Resultnp,PhenomenonTime,FeatureOfInterest,ObservedPropertynp,Procedurenp}
其中,ObIDnp为第p个空间观测弹性二元组中Observationnp对象的唯一编码;Resultnp为第p个空间观测弹性二元组中Observationnp对象的观测结果,是观测过程获取的测量结果,可以是任何数据类型;PhenomenonTimenp为第p个空间观测弹性二元组中Observationnp对象的观测时间,表示观测发生的时间,用时间对象表示;FeatureOfInterestnp为第p个空间观测弹性二元组中Observationnp对象的感兴趣的空间要素,即在现实世界中观测的空间要素目标,为Geometry类型;ObservedPropertynp为第p个空间观测弹性二元组中Observationnp对象的观测属性,描述观测结果的属性类型对象;(5)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。
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 true CN112487125A (zh) 2021-03-12
CN112487125B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023033726A3 (en) * 2021-08-30 2023-05-04 Envision Digital International Pte. Ltd. Method and apparatus for processing data, and server and storage medium thereof

Citations (7)

* 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 中国科学院电子学研究所 一种可扩展定义的时空数据统一组织方法
US20180232257A1 (en) * 2015-08-05 2018-08-16 Hangzhou Hikvision Digital Technology Co., Ltd. Task allocation method and task allocation apparatus for distributed data calculation
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 华东师范大学 空间信息时空元数据构建方法
US20200371993A1 (en) * 2019-05-21 2020-11-26 Oracle International Corporation Spatial indexing using resilient distributed datasets

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180232257A1 (en) * 2015-08-05 2018-08-16 Hangzhou Hikvision Digital Technology Co., Ltd. Task allocation method and task allocation apparatus for distributed data calculation
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 武汉大学 流计算与传感网集成的地理过程近实时模拟方法
US20200371993A1 (en) * 2019-05-21 2020-11-26 Oracle International Corporation Spatial indexing using resilient distributed datasets
CN110532340A (zh) * 2019-09-03 2019-12-03 华东师范大学 空间信息时空元数据构建方法

Non-Patent Citations (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023033726A3 (en) * 2021-08-30 2023-05-04 Envision Digital International Pte. Ltd. Method and apparatus for processing data, and server and storage medium thereof

Also Published As

Publication number Publication date
CN112487125B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN104820708B (zh) 一种基于云计算平台的大数据聚类方法和装置
CN113032513B (zh) 一种针对空间地理数据的切片方法及渲染方法
CN104809244B (zh) 一种大数据环境下的数据挖掘方法和装置
CN111159184B (zh) 元数据追溯方法、装置及服务器
CN112527886A (zh) 一种基于城市大脑的数据仓库系统
CN108388603B (zh) 基于Spark框架的分布式概要数据结构的构建方法及查询方法
CN116860905B (zh) 一种城市信息模型的空间单元编码生成方法
Gupta et al. Faster as well as early measurements from big data predictive analytics model
CN110990467A (zh) 一种bim模型格式转换方法及转换系统
Zhang et al. Improving NoSQL storage schema based on Z-curve for spatial vector data
Gibadullin et al. Service-oriented distributed energy data management using big data technologies
CN112487125B (zh) 一种面向时空大数据计算的分布式空间对象组织方法
Qin et al. THBase: A coprocessor-based scheme for big trajectory data management
CN114048204A (zh) 基于数据库倒排索引的北斗网格空间索引方法和装置
CN116318541A (zh) 网络空间多维信息剖分网格编码方法、装置、设备和介质
CN117251414B (zh) 一种基于异构技术的数据存储及处理方法
CN115543951B (zh) 一种基于起源图的日志采集、压缩、存储方法
CN110825744B (zh) 一种基于集群环境的空气质量监测大数据分区存储方法
CN112905571A (zh) 一种列车轨道交通传感器数据管理方法及装置
Zhang et al. The modeling of big traffic data processing based on cloud computing
CN111049898A (zh) 一种实现计算集群资源跨域架构的方法及系统
CN117033754A (zh) 用于资源推送的模型处理方法、装置、设备、存储介质
CN114372034A (zh) 一种基于遥感影像地图服务的存取方法
CN115203290A (zh) 一种基于多维prefixspan算法的故障诊断方法
Lam et al. Semantic 3D city model data visualization for smar t city digital twin

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