CN116450872A - 基于Spark分布式的矢量转栅格方法、系统及设备 - Google Patents
基于Spark分布式的矢量转栅格方法、系统及设备 Download PDFInfo
- Publication number
- CN116450872A CN116450872A CN202310492238.XA CN202310492238A CN116450872A CN 116450872 A CN116450872 A CN 116450872A CN 202310492238 A CN202310492238 A CN 202310492238A CN 116450872 A CN116450872 A CN 116450872A
- Authority
- CN
- China
- Prior art keywords
- rdd
- vector
- data
- grid
- spark
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000004931 aggregating effect Effects 0.000 claims abstract description 10
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 230000011218 segmentation Effects 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 12
- 238000005192 partition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/587—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及空间数据处理技术领域,具体涉及一种基于Spark分布式的矢量转栅格方法、系统及设备,旨在提高转换效率。本发明的方法包括:基于Spark读取矢量数据,并序列化为包含多个分片的第一RDD;将预设的输出栅格数据像元大小及单位转换为第一RDD中空间参考相对应的像元大小及单位;根据转换后的像元大小及单位对第一RDD的空间范围划分格网,并对第一RDD中的每个矢量要素进行切分存储至第二RDD;根据索引将第二RDD中的矢量要素聚合为矢量要素集合并存储至第三RDD;对矢量要素集合的属性数据进行统计生成第四RDD,再栅格化为瓦片数据并存储至第五RDD,最后进行反序列化并输出。本发明有效提高了转换效率。
Description
技术领域
本发明涉及空间数据处理技术领域,具体涉及一种基于Spark分布式的矢量转栅格方法、系统及设备。
背景技术
空间数据包括矢量数据与栅格数据,矢量数据以点、线、面记录地物信息,栅格数据以矩阵形式记录地物信息。矢量转栅格技术,即将矢量数据转换为栅格数据,使得数据适用于喷墨绘图仪等设备上的输出以及矢量数据与栅格数据的综合图像处理等。
通常都是采用串行的方法将矢量要素逐个转换为栅格数据,这种方法的缺点:转换过程中需要占用大量内存,运行环境容易因内存不足而崩溃;在数据量较大且范围较广的情况下,转换速度较慢。
因此,急需一种快速地将大体量大范围的矢量数据转换为栅格数据的技术。
发明内容
为了解决现有技术中的上述问题,本发明提出了一种基于Spark分布式的矢量转栅格方法、系统及设备,提高了转换效率。
Spark是一种基于内存计算的大规模并行处理框架,它可以对结构化或半结构化的大规模数据进行快速处理和分析。Spark的原理是:将大规模数据划分为多个小块(称为分区),并将每个分区分配给一个计算节点(称为执行器)。Spark使用了一种叫做RDD(Resilient Distributed Datasets,弹性分布式数据集)的数据结构来表示分区。RDD是一种只读的、分布式的、容错的数据集,它可以在内存或磁盘中缓存,并支持多种转换和动作操作。
本发明的第一方面,提出一种基于Spark分布式的矢量转栅格方法,所述方法包括:
基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
将预设的输出栅格数据像元大小及单位转换为所述第一RDD中空间参考相对应的像元大小及单位;
根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网;
根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中;
根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中;
对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD;
将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中;
对所述第五RDD进行反序列化并输出至栅格文件。
优选地,“基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD”的步骤包括:
根据Spark环境默认分片数,读取输入文件或数据库中的矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
其中,
所述第一RDD为自定义FeatureRDD;
所述第一RDD中每个分片(Partition)包括若干行(Row),每行包括一个矢量要素(Feature);
每个矢量要素包括:几何对象(Geometry)和属性数据(Attributes);
所述第一RDD中的元数据信息(Schema)包括:几何类型(GeometryType)、空间参考(SpatialReference)和空间范围(Extent);
所述输入文件包括:本地或HDFS中的Shapefile(目前最常见的一种矢量数据格式)、FileGDB(文件地理数据库)、CSV(Comma-Separated Values,逗号分隔值)和TXT(文本格式);
所述数据库包括:PostgreSQL(一种开源的对象-关系数据库数据库管理系统)、Elasticsearch(是位于Elastic Stack核心的分布式搜索和分析引擎)、Hbase(是一个分布式的、面向列的开源数据库)和Hive(是基于Hadoop的一个数据仓库工具)。
优选地,“根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网”的步骤包括:
根据转换后的像元大小及单位,对所述第一RDD所对应的整体空间范围进行格网(Bin)划分;
获取每个格网的范围、中心点和行列号,并建立关联关系。
优选地,“根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中”的步骤包括:
利用Spark中的flatMap函数,根据转换后的像元大小及单位对所述第一RDD中的矢量要素进行切分;
获取切分后的每个矢量要素所属格网的中心点,并根据所述关联关系获取该格网的行列号;
以获取的格网行列号为索引,将切分后的矢量要素存储至第二RDD中;
其中,
所述第二RDD中每行数据包括:一个切分后的矢量要素和一个索引;该矢量要素包括:几何对象和属性数据;该索引(也可称为Key)为一个二元组,表示该矢量要素所属格网的行列号(Row,Col)。
优选地,“根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中”的步骤包括:
利用Spark中的groupBy函数,将所述第二RDD中具有相同索引的所有矢量要素聚合为一个矢量要素集合,得到第三RDD;
所述第三RDD中每行数据包括:一个矢量要素集合和一个索引,该索引为一个二元组,表示一个格网的行列号。
优选地,“对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD”的步骤包括:
对所述第三RDD执行map操作,在map函数内部对所述第三RDD中的矢量要素集合中进行属性汇总统计,并将统计数据存储至第四RDD中;
其中,
所述统计数据包括:某个字段(Field)的数量(Count)、平均值(Mean)、最大值(Max)、最小值(Min)、求和(Sum)、标准差(Stddev)和方差(Var)中的一项或多项;
所述第四RDD中的每行包括:一个索引和一个矢量要素;该索引为一个二元组,表示一个格网的行列号;该矢量要素包括几何数据和属性数据;该几何数据为所述矢量要素集合中任意一个矢量要素的几何数据;该属性数据为所述统计数据。
优选地,“将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中”的步骤包括:
对所述第四RDD进行map操作,在map函数内部将矢量要素栅格化为瓦片数据,并存储至第五RDD;
所述第五RDD为自定义的TileRDD,所述第五RDD中每行包括:一个索引和一个瓦片数据;该索引为一个二元组,表示该瓦片的行列号;该瓦片数据为一个数值型的多维数组。
优选地,“对所述第五RDD进行反序列化并输出至栅格文件”的步骤包括:
利用Spark中的foreachPartition函数,对所述第五RDD执行反序列化,并行写出至本地或HDFS中的多个栅格文件;或者,
对所述第五RDD进行缝合(stitch)操作后,生成栅格对象(Raster);将所述栅格对象进行反序列化并写出至本地或HDFS(Hadoop Distributed File System)中的单个栅格文件;
其中,所述栅格对象包括:多维数组、空间范围和空间参考,且该多维数组中包括所有的瓦片数据。
本发明的第二方面,提出一种基于Spark分布式的矢量转栅格系统,包括:
矢量数据读取模块,用于基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
输出像元转换模块,用于将预设的输出栅格数据像元大小及单位转换为所述第一RDD中空间参考相对应的像元大小及单位;
格网划分模块,用于根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网;
矢量要素切分模块,用于根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中;
矢量要素聚合模块,用于根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中;
属性统计模块,用于对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD;
栅格化模块,用于将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中;
反序列化及输出模块,用于对所述第五RDD进行反序列化并输出至栅格文件。
本发明的第三方面,提出一种存储设备,其特征在于,存储有能够被处理器加载并执行上面所述方法的计算机程序。
本发明具体如下有益效果:
(1)利用Spark分布式计算框架,将矢量数据转栅格数据的过程分解为多个并行任务,充分利用集群资源,提高了计算效率和性能。同时处理方法对机器数量没有限制,可以使用单机或者多机的方式对大范围大体量的空间矢量数据进行栅格化。
(2)采用自定义RDD和TileRDD,实现了矢量数据和栅格数据的高效序列化和反序列化,减少了IO开销和内存占用。
(3)通过将预设的输出栅格数据像元大小及单位转换为第一RDD中空间参考相对应的像元大小及单位,实现了像元大小与矢量数据坐标单位的自动匹配,避免了人为误差和精度损失。
(4)通过矢量要素切分,实现了矢量要素与格网的精确相交判断和切分处理,保证了结果质量和精度。
(5)实现了多种统计数据的并行计算,并支持用户自定义统计函数,满足不同的应用需求。
(6)实现了对多种输入/输出格式的支持,并兼容常用GIS工具。
附图说明
图1是基于Spark分布式的矢量转栅格方法实施例的主要步骤示意图;
图2是本发明的基于Spark分布式的矢量转栅格系统实施例的主要构成示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅仅是为了便于描述,而不是指示或暗示所述装置、元件或参数的相对重要性,因此不能理解为对本发明的限制。另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
图1是基于Spark分布式的矢量转栅格方法实施例的主要步骤示意图。如图1所示,本实施例的方法包括步骤S10-S80:
步骤S10,基于Spark读取矢量数据,并将矢量数据序列化为包含多个分片的第一RDD。
具体地,根据Spark环境默认分片数,读取输入文件或数据库中的矢量数据,并将矢量数据序列化为包含多个分片的第一RDD。
其中,第一RDD为自定义FeatureRDD;第一RDD中每个分片包括若干行,每行包括一个矢量要素;每个矢量要素包括:几何对象和属性数据;第一RDD中的元数据信息包括:几何类型、空间参考和空间范围;输入文件包括:本地或HDFS中的Shapefile、FileGDB、CSV和TXT;数据库包括:PostgreSQL、Elasticsearch、Hbase和Hive。
步骤S20,将预设的输出栅格数据像元大小及单位(如米或度)转换为第一RDD中空间参考(如WGS84或CGCS2000)相对应的像元大小及单位。
步骤S30,根据转换后的像元大小及单位,对第一RDD的空间范围划分格网。该步骤可以具体包括步骤S31-S32:
步骤S31,根据转换后的像元大小及单位,对第一RDD所对应的整体空间范围进行格网划分。
步骤S32,获取每个格网的范围、中心点和行列号,并建立关联关系。
步骤S40,根据划分的格网,对第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中。该步骤可以具体包括步骤S41-S43:
步骤S41,利用Spark中的flatMap函数,根据转换后的像元大小及单位对第一RDD中的矢量要素进行切分。
步骤S42,获取切分后的每个矢量要素所属格网的中心点,并根据关联关系获取该格网的行列号。
步骤S43,以获取的格网行列号为索引,将切分后的矢量要素存储至第二RDD(BinRDD)中。
其中,第二RDD中每行数据包括:一个切分后的矢量要素和一个索引;该矢量要素包括:几何对象和属性数据;该索引为一个二元组,表示该矢量要素所属格网的行列号。
步骤S50,根据索引将第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中。
具体地,利用Spark中的groupBy函数,将第二RDD中具有相同索引的所有矢量要素聚合为一个矢量要素集合,得到第三RDD。
其中,第三RDD中每行数据包括:一个矢量要素集合和一个索引,该索引为一个二元组,表示一个格网的行列号。
步骤S60,对第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD。
具体地,对第三RDD执行map操作,在map函数内部对第三RDD中的矢量要素集合中进行属性汇总统计,并将统计数据存储至第四RDD中。
其中,统计数据包括:某个字段的数量、平均值、最大值、最小值、求和、标准差和方差中的一项或多项,并支持用户自定义统计函数。
本实施例中,根据每个矢量要素集合统计生成一个新的矢量要素。第四RDD中的每行包括:一个索引和一个(新的)矢量要素;该索引为一个二元组,表示一个格网的行列号;该矢量要素包括几何数据和属性数据;该几何数据为矢量要素集合中任意一个矢量要素的几何数据;该属性数据为统计数据。
步骤S70,将第四RDD栅格化为瓦片数据,并存储至第五RDD中。该步骤可以具体包括:
对第四RDD进行map操作,在map函数内部将矢量要素栅格化为瓦片数据,并存储至第五RDD。
其中,第五RDD为自定义的TileRDD,第五RDD中每行包括:一个索引和一个瓦片数据;该索引为一个二元组,表示该瓦片的行列号;该瓦片数据为一个数值型的多维数组。
步骤S80,对第五RDD进行反序列化并输出至栅格文件。
该步骤可以具体包括:
利用Spark中的foreachPartition函数,对第五RDD执行反序列化,并行写出至本地或HDFS中的多个栅格文件(如多个GeoTIFF文件)。
可选地,该步骤还可以具体包括:对第五RDD进行缝合操作后,生成栅格对象;将栅格对象进行反序列化并写出至本地或HDFS中的单个栅格文件(如单个GeoTIFF文件)。
其中,栅格对象包括:多维数组、空间范围和空间参考,且该多维数组中包括所有的瓦片数据。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于与方法实施例相同的技术构思,本申请还提供了系统实施例,下面进行具体说明。
图2是本发明的基于Spark分布式的矢量转栅格系统实施例的主要构成示意图。如图2所示,本实施例的系统包括:矢量数据读取模块10、输出像元转换模块20、格网划分模块30、矢量要素切分模块40、矢量要素聚合模块50、属性统计模块60、栅格化模块70和反序列化及输出模块80。
矢量数据读取模块10用于基于Spark读取矢量数据,并将矢量数据序列化为包含多个分片的第一RDD;输出像元转换模块20用于将预设的输出栅格数据像元大小及单位转换为第一RDD中空间参考相对应的像元大小及单位;格网划分模块30用于根据转换后的像元大小及单位,对第一RDD的空间范围划分格网;矢量要素切分模块40用于根据划分的格网,对第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中;矢量要素聚合模块50用于根据索引将第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中;属性统计模块60用于对第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD;栅格化模块70用于将第四RDD栅格化为瓦片数据,并存储至第五RDD中;反序列化及输出模块80用于对第五RDD进行反序列化并输出至栅格文件。
进一步地,本发明还提供了一种存储设备的实施例。本实施例的存储设备中存储有能够被处理器加载并执行上面所述方法的计算机程序。
所述存储设备可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种基于Spark分布式的矢量转栅格方法,其特征在于,所述方法包括:
基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
将预设的输出栅格数据像元大小及单位转换为所述第一RDD中空间参考相对应的像元大小及单位;
根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网;
根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中;
根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中;
对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD;
将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中;
对所述第五RDD进行反序列化并输出至栅格文件。
2.根据权利要求1所述的基于Spark分布式的矢量转栅格方法,其特征在于,“基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD”的步骤包括:
根据Spark环境默认分片数,读取输入文件或数据库中的矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
其中,
所述第一RDD为自定义FeatureRDD;
所述第一RDD中每个分片包括若干行,每行包括一个矢量要素;
每个矢量要素包括:几何对象和属性数据;
所述第一RDD中的元数据信息包括:几何类型、空间参考和空间范围;
所述输入文件包括:本地或HDFS中的Shapefile、FileGDB、CSV和TXT;
所述数据库包括:PostgreSQL、Elasticsearch、Hbase和Hive。
3.根据权利要求1所述的基于Spark分布式的矢量转栅格方法,其特征在于,“根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网”的步骤包括:
根据转换后的像元大小及单位,对所述第一RDD所对应的整体空间范围进行格网划分;
获取每个格网的范围、中心点和行列号,并建立关联关系。
4.根据权利要求3所述的基于Spark分布式的矢量转栅格方法,其特征在于,“根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中”的步骤包括:
利用Spark中的flatMap函数,根据转换后的像元大小及单位对所述第一RDD中的矢量要素进行切分;
获取切分后的每个矢量要素所属格网的中心点,并根据所述关联关系获取该格网的行列号;
以获取的格网行列号为索引,将切分后的矢量要素存储至第二RDD中;
其中,
所述第二RDD中每行数据包括:一个切分后的矢量要素和一个索引;该矢量要素包括:几何对象和属性数据;该索引为一个二元组,表示该矢量要素所属格网的行列号。
5.根据权利要求4所述的基于Spark分布式的矢量转栅格方法,其特征在于,“根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中”的步骤包括:
利用Spark中的groupBy函数,将所述第二RDD中具有相同索引的所有矢量要素聚合为一个矢量要素集合,得到第三RDD;
所述第三RDD中每行数据包括:一个矢量要素集合和一个索引,该索引为一个二元组,表示一个格网的行列号。
6.根据权利要求5所述的基于Spark分布式的矢量转栅格方法,其特征在于,“对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD”的步骤包括:
对所述第三RDD执行map操作,在map函数内部对所述第三RDD中的矢量要素集合中进行属性汇总统计,并将统计数据存储至第四RDD中;
其中,
所述统计数据包括:某个字段的数量、平均值、最大值、最小值、求和、标准差和方差中的一项或多项;
所述第四RDD中的每行包括:一个索引和一个矢量要素;该索引为一个二元组,表示一个格网的行列号;该矢量要素包括几何数据和属性数据;该几何数据为所述矢量要素集合中任意一个矢量要素的几何数据;该属性数据为所述统计数据。
7.根据权利要求1所述的基于Spark分布式的矢量转栅格方法,其特征在于,
“将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中”的步骤包括:
对所述第四RDD进行map操作,在map函数内部将矢量要素栅格化为瓦片数据,并存储至第五RDD;
所述第五RDD为自定义的TileRDD,所述第五RDD中每行包括:一个索引和一个瓦片数据;该索引为一个二元组,表示该瓦片的行列号;该瓦片数据为一个数值型的多维数组。
8.根据权利要求1所述的基于Spark分布式的矢量转栅格方法,其特征在于,“对所述第五RDD进行反序列化并输出至栅格文件”的步骤包括:
利用Spark中的foreachPartition函数,对所述第五RDD执行反序列化,并行写出至本地或HDFS中的多个栅格文件;或者,
对所述第五RDD进行缝合操作后,生成栅格对象;将所述栅格对象进行反序列化并写出至本地或HDFS中的单个栅格文件;
其中,所述栅格对象包括:多维数组、空间范围和空间参考,且该多维数组中包括所有的瓦片数据。
9.一种基于Spark分布式的矢量转栅格系统,其特征在于,所述系统包括:
矢量数据读取模块,用于基于Spark读取矢量数据,并将所述矢量数据序列化为包含多个分片的第一RDD;
输出像元转换模块,用于将预设的输出栅格数据像元大小及单位转换为所述第一RDD中空间参考相对应的像元大小及单位;
格网划分模块,用于根据转换后的像元大小及单位,对所述第一RDD的空间范围划分格网;
矢量要素切分模块,用于根据划分的格网,对所述第一RDD中的每个矢量要素进行切分,并将切分后的矢量要素及对应的索引存储至第二RDD中;
矢量要素聚合模块,用于根据索引将所述第二RDD中的矢量要素聚合为矢量要素集合,并存储至第三RDD中;
属性统计模块,用于对所述第三RDD中矢量要素集合的属性数据进行统计,生成第四RDD;
栅格化模块,用于将所述第四RDD栅格化为瓦片数据,并存储至第五RDD中;
反序列化及输出模块,用于对所述第五RDD进行反序列化并输出至栅格文件。
10.一种存储设备,其特征在于,存储有能够被处理器加载并执行如权利要求1-8中任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310492238.XA CN116450872B (zh) | 2023-05-04 | 2023-05-04 | 基于Spark分布式的矢量转栅格方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310492238.XA CN116450872B (zh) | 2023-05-04 | 2023-05-04 | 基于Spark分布式的矢量转栅格方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116450872A true CN116450872A (zh) | 2023-07-18 |
CN116450872B CN116450872B (zh) | 2024-02-20 |
Family
ID=87121985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310492238.XA Active CN116450872B (zh) | 2023-05-04 | 2023-05-04 | 基于Spark分布式的矢量转栅格方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450872B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101794883B1 (ko) * | 2016-12-23 | 2017-11-09 | 주식회사 포스웨이브 | 분산 파일 시스템에서의 대용량 공간 데이터의 고속 분산 색인 생성 및 저장 방법 |
CN108920540A (zh) * | 2018-06-12 | 2018-11-30 | 武汉大学 | 一种基于Spark的并行栅格数据处理方法 |
CN110990612A (zh) * | 2019-12-13 | 2020-04-10 | 特力惠信息科技股份有限公司 | 一种矢量大数据快速显示的方法及终端 |
US20200371993A1 (en) * | 2019-05-21 | 2020-11-26 | Oracle International Corporation | Spatial indexing using resilient distributed datasets |
CN113760917A (zh) * | 2021-09-09 | 2021-12-07 | 武汉大学 | 一种矢量瓦片存储构建方法及系统 |
-
2023
- 2023-05-04 CN CN202310492238.XA patent/CN116450872B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101794883B1 (ko) * | 2016-12-23 | 2017-11-09 | 주식회사 포스웨이브 | 분산 파일 시스템에서의 대용량 공간 데이터의 고속 분산 색인 생성 및 저장 방법 |
CN108920540A (zh) * | 2018-06-12 | 2018-11-30 | 武汉大学 | 一种基于Spark的并行栅格数据处理方法 |
US20200371993A1 (en) * | 2019-05-21 | 2020-11-26 | Oracle International Corporation | Spatial indexing using resilient distributed datasets |
CN110990612A (zh) * | 2019-12-13 | 2020-04-10 | 特力惠信息科技股份有限公司 | 一种矢量大数据快速显示的方法及终端 |
CN113760917A (zh) * | 2021-09-09 | 2021-12-07 | 武汉大学 | 一种矢量瓦片存储构建方法及系统 |
Non-Patent Citations (2)
Title |
---|
周琦;杜晓;张俊辉;郑义;林尚纬;万咏涛;: "并行处理技术在全球海量地理信息数据质量控制中的应用", 测绘通报, no. 07, 25 July 2020 (2020-07-25) * |
聂沛;陈广胜;景维鹏;: "矢量瓦片并行构建与分布式存储模型研究", 地球信息科学学报, no. 07, 21 July 2020 (2020-07-21) * |
Also Published As
Publication number | Publication date |
---|---|
CN116450872B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11874855B2 (en) | Parallel data access method and system for massive remote-sensing images | |
US11347740B2 (en) | Managed query execution platform, and methods thereof | |
Zhang et al. | A GPU-accelerated adaptive kernel density estimation approach for efficient point pattern analysis on spatial big data | |
US11194762B2 (en) | Spatial indexing using resilient distributed datasets | |
Mostak | An overview of MapD (massively parallel database) | |
CN107544948B (zh) | 一种基于MapReduce的矢量文件转换方法和装置 | |
US20160239527A1 (en) | Systems, apparatuses, methods, and computer readable media for processing and analyzing big data using columnar index data format | |
CN103995861A (zh) | 一种基于空间关联的分布式数据装置、方法及系统 | |
Zhou et al. | A parallel method to accelerate spatial operations involving polygon intersections | |
KR20240149907A (ko) | 희소 신경망을 위한 적응형 텐서 계산 커널 | |
EP3182299A2 (en) | Methods and systems for estimating the number of points in two-dimensional data | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
CN116450872B (zh) | 基于Spark分布式的矢量转栅格方法、系统及设备 | |
CN115470235A (zh) | 一种数据处理方法、装置以及设备 | |
CN117608476A (zh) | 矢量数据分块存储方法、装置、电子设备及介质 | |
Dong et al. | Spatially clustered join on heterogeneous scientific data sets | |
CN111737347B (zh) | 在Spark平台顺序切分数据的方法及装置 | |
Kumar et al. | Reducing network congestion and synchronization overhead during aggregation of hierarchical data | |
Gu et al. | Octopus-DF: Unified DataFrame-based cross-platform data analytic system | |
CN116451005B (zh) | 基于Spark分布式的栅格代数运算方法、系统及设备 | |
CN111046244A (zh) | 基于PostGIS的电网资源图形叠加分析方法及装置 | |
Zhao et al. | A novel approach of indexing and retrieving spatial polygons for efficient spatial region queries | |
CN113704340B (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN117667853B (zh) | 数据读取方法、装置、计算机设备及存储介质 | |
Cheng et al. | IndexIt: Enhancing data locating services for parallel file systems |
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 |