CN108920540B - 一种基于Spark的并行栅格数据处理方法 - Google Patents
一种基于Spark的并行栅格数据处理方法 Download PDFInfo
- Publication number
- CN108920540B CN108920540B CN201810602534.XA CN201810602534A CN108920540B CN 108920540 B CN108920540 B CN 108920540B CN 201810602534 A CN201810602534 A CN 201810602534A CN 108920540 B CN108920540 B CN 108920540B
- Authority
- CN
- China
- Prior art keywords
- remote sensing
- image
- data processing
- sensing image
- 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.)
- Active
Links
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于Spark的并行栅格数据处理方法,基于Spark框架实现将高分辨率遥感影像按行进行迭代二分切分,直到遥感影像数据被均匀划分并且大小基本接近预定义的切片大小;将切分的影像分片实例化为可序列化遥感影像对象RsImage,按照分片在原始影像中的位置,按序存储到分布式文件系统HDFS上;反序列化存储在HDFS上的分片影像,生成以相应RDD;基于分区并行执行地理栅格数据处理算法;将分布式环境中各个核处理完的影像对象基于分片号合并排序,然后对排序后的分块影像进行影像拼接存储。本发明技术方案具有高效性和可行性。
Description
技术领域
本发明属于网络地理信息系统应用技术领域,是一种高效处理地理栅格数据的通用方法。
背景技术
随着地理空间传感器技术的快速发展,高时空分辨率的数据获取方式越发简单,导致了地理空间数据的爆炸式增长。同时,随着学者们对地学领域研究的深入,地学时空模型也在朝着更加复杂的方向发展。地学应用的发展得益于这两个趋势,同样也受限于这两个趋势。虽然复杂的地学模型让人类更加深刻的理解地学现象,但是其带来的时间代价往往让地理学者特别是一些决策者选择更加简单快速的模型。因此,如何快速高效地执行地理空间算法成为人们的迫切需求。
发明内容
为解决上述问题,本发明提供了一种基于Spark的并行栅格数据处理方法。
本发明采用的技术方案是一种基于Spark的并行栅格数据处理方法,基于Spark框架实现包括以下步骤:
步骤1,将高分辨率遥感影像按行进行迭代二分切分,直到遥感影像数据被均匀划分并且大小基本接近预定义的切片大小;
切分过程采用冗余切分的方式;
步骤2,首先将切分的影像分片实例化为可序列化遥感影像对象RsImage,为可序列化遥感影像对象RsImage保存了对应切片的宽、高、波段数、数据类型以及像素数据;然后按照分片在原始影像中的位置,按序存储到分布式文件系统HDFS上;
步骤3,反序列化存储在HDFS上的分片影像,生成以<分片号,影像对象>为键值对的RDD,该RDD默认以分片影像为分区;所述RDD为弹性分布式数据集;
步骤4,基于分区并行执行地理栅格数据处理算法;
步骤5,首先将分布式环境中各个核处理完的影像对象基于分片号合并排序,然后对排序后的分块影像进行影像拼接存储。
而且,二分切分采用行切分的方式。
而且,所述地理栅格数据处理算法为遥感影像的Canny边缘提取算法。
而且,所述地理栅格数据处理算法为遥感影像的水体提取算法。
而且,预定义的切片大小是分布式文件系统HDFS的分区大小128MB。
本发明克服了常规的空间栅格数据表达对象无法在节点间通信的问题,提出通过序列化支持分布式环境下的节点数据通信,因此能够以并行地方式执行常用的地理栅格数据处理算法,比如遥感影像的Canny边缘提取算法、水体提取算法等,对于执行比较耗时的Canny算法,相比单机执行,算法加速比可达到7.0~8.0;水体提取算法计算复杂度较低,但加速比仍可达到2.0。本发明能有效地节省算法的执行时间,节约系统资源,支持地学应用实时化,具有重要的经济价值。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明公开了一种基于Spark的并行栅格数据处理方法,首先定义了一种栅格数据的表达方式,有效地解决了常规的空间栅格数据表达对象无法在节点间通信的问题;然后,根据用户自定义的切片大小决定并行粒度,基于Spark框架实现了对空间栅格数据并行处理的方法。
本发明实施例提供的一种基于Spark的并行栅格数据处理方法,包括基于Spark框架实现以下步骤:
步骤1,将高分辨率遥感影像按行进行迭代二分切分,为了保证每个切片的边缘数据不丢失,切分过程采用冗余切分的方式;
本步骤中优选使用行切分方式,即从影像的行方向对影像进行切片。本发明在考虑了其他几种切分方式包括按列切分和按网格切分后,经过实验验证采用GDAL库对影像按行切分效率较高,不用多次对像素位置进行重定位,节省了切分带来的时间代价。因为GDAL库对影像的存储是按行组织,按行读取只需要从行方向移动指针,不需要重新寻址,因此能带来更好的效果。同时为了保证切片数据的四周数据能够被处理,采用了冗余切分的方式,即各个切片分别向上向下多取若干行数据。
迭代二分切分,是按照自定义的切片大小(默认为HDFS分区大小128MB),重复切分直到遥感影像数据被均匀划分并且大小基本接近128MB;
具体实施时,可以首先比较用户自定义的切片大小和待切分影像大小,若待切分影像大小小于自定义切片大小则不切分,否则迭代进行二分切分。为了保证各个节点的负载均衡,切分过程中保证各切片大小均等,因此可能会出现切片大小和用户自定义大小存在些许偏差。
步骤2,首先将切分的影像分片实例化为可序列化遥感影像对象RsImage,对象保存了对应切片的宽、高、波段数、数据类型以及像素数据等;然后按照分片在原始影像中的位置,按序存储到分布式文件系统HDFS上;
在对影像分片进行分布式处理过程中,各个分片之间必然会出现通信的情况,比如本步骤5中的数据收集。因此本步骤中为了方便节点间的数据通信以及对影像对象的完整表达,定义了一套对于遥感影像的可序列化的表达方式RsImage,存储了遥感影像的长度、宽度、波段数、数据类型、投影信息以及不同数据类型的像素值,并且提供了在本地文件系统\HDFS上读写影像的接口。传统的仅仅使用数组来表达遥感影像数据的方法,对于需要影像投影信息等元数据的算法而言,往往需要额外的方法来保存影像元数据,而本发明提供的遥感影像表达方法基本存储了影像的所有信息,能够更加全面合理的表达影像对象。同时,该对象实现了序列化接口,以方便并行化过程中的节点通信。
实施例中,具体实现步骤为:首先将切分的影像分片实例化为可序列化遥感影像对象RsImage,对象保存了对应切片的宽、高、波段数、数据类型以及像素数据等;然后按照分片在原始影像中的位置,即切片第一行数据在原始影像中的行号,以文件名的形式按序存储到分布式文件系统HDFS上,比如待处理影像行高为3000,按切片大小计算后需要切为3份,则对应的文件名为“split_0.txt”、“split_1000.txt”、“split_2000.txt”,切片分别对应影像中的0~999行、1000~1999行、2000~2999行;
步骤3,反序列化存储在HDFS上的分片影像,生成以<分片号,影像对象>为键值对的RDD,该RDD默认以分片影像为分区,即每个分片影像文件对应RDD的一个分区;
Spark是apache开发的一个计算引擎,本发明实施时采用Spark为低层,RDD是Spark中的数据单元。本发明提出序列化是为了方便分布式环境下的节点数据通信。
本步骤中,定义了用于读取影像分片为RDD(弹性分布式数据集)的接口,该接口使用Spark提供的反序列化方法,将步骤2中序列化到HDFS上的分片影像反序列化为遥感影像对象RsImage,作为RDD<分片号,影像对象>中的值,依据分片影像的文件名,提取出对应的序号作为分片号,该RDD由于直接读取HDFS上的分片文件,因此该RDD默认每个分片影像文件对应RDD的一个分区。
步骤4,基于分区并行执行Canny边缘提取算法或水体提取算法;
步骤5,首先将分布式环境中各个核处理完的影像对象基于分片号合并排序;然后对排序后的分块影像进行影像拼接、存储。
本步骤中,首先将各个核上处理完的影像分片收集到一个节点并基于RDD中的键进行排序;然后根据定义的影像写出接口,将分片影像按序进行拼接并写出到HDFS上。
本发明步骤1-2按照用户自定义的大小对影像进行切片,切片数量决定了并行粒度,步骤3-5根据读取切分的影像,生成以<分片号,影像对象>为键值对的RDD,该RDD默认以分片影像为分区,然后并行执行Canny边缘提取算法或水体提取算法,执行完毕后,将所有的分片数据发送到一个节点上依据分片号排序、拼接、存储。
具体实施时,本发明技术方案可采用计算机软件技术实现自动运行流程。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (4)
1.一种基于Spark的并行栅格数据处理方法,其特征在于,基于Spark框架实现包括以下步骤:
步骤1,将高分辨率遥感影像按行进行迭代二分切分,直到遥感影像数据被均匀划分并且大小基本接近预定义的切片大小;预定义的切片大小是分布式文件系统HDFS的分区大小128MB;
切分过程采用冗余切分的方式;
步骤2,首先将切分的影像分片实例化为可序列化遥感影像对象RsImage,为可序列化遥感影像对象RsImage保存了对应切片的宽、高、波段数、数据类型以及像素数据;然后按照分片在原始影像中的位置,按序存储到分布式文件系统HDFS上;
步骤3,反序列化存储在HDFS上的分片影像,生成以<分片号,影像对象>为键值对的RDD,该RDD默认以分片影像为分区;所述RDD为弹性分布式数据集;
步骤4,基于分区并行执行地理栅格数据处理算法;
步骤5,首先将分布式环境中各个核处理完的影像对象基于分片号合并排序,然后对排序后的分块影像进行影像拼接存储。
2.根据权利要求1所述基于Spark的并行栅格数据处理方法,其特征在于:二分切分采用行切分的方式。
3.根据权利要求1所述基于Spark的并行栅格数据处理方法,其特征在于:所述地理栅格数据处理算法为遥感影像的Canny边缘提取算法。
4.根据权利要求1所述基于Spark的并行栅格数据处理方法,其特征在于:所述地理栅格数据处理算法为遥感影像的水体提取算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810602534.XA CN108920540B (zh) | 2018-06-12 | 2018-06-12 | 一种基于Spark的并行栅格数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810602534.XA CN108920540B (zh) | 2018-06-12 | 2018-06-12 | 一种基于Spark的并行栅格数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920540A CN108920540A (zh) | 2018-11-30 |
CN108920540B true CN108920540B (zh) | 2021-12-03 |
Family
ID=64419226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810602534.XA Active CN108920540B (zh) | 2018-06-12 | 2018-06-12 | 一种基于Spark的并行栅格数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920540B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829078B (zh) * | 2018-12-11 | 2021-04-27 | 北京地拓科技发展有限公司 | 一种栅格数据的数据处理方法和装置 |
CN113495876A (zh) * | 2020-03-19 | 2021-10-12 | 中科星图股份有限公司 | 一种基于Spark的影像金字塔分布式切片系统及方法 |
CN111414346A (zh) * | 2020-04-30 | 2020-07-14 | 武汉众邦银行股份有限公司 | 一种海量非结构化数据文件分布式颗粒化的存储方法 |
CN112948123B (zh) * | 2021-03-26 | 2023-02-28 | 河海大学 | 一种基于Spark的网格水文模型分布式计算方法 |
CN116450872B (zh) * | 2023-05-04 | 2024-02-20 | 易智瑞信息技术有限公司 | 基于Spark分布式的矢量转栅格方法、系统及设备 |
CN116451005B (zh) * | 2023-05-04 | 2024-05-14 | 易智瑞信息技术有限公司 | 基于Spark分布式的栅格代数运算方法、系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368272A (zh) * | 2011-11-15 | 2012-03-07 | 中国科学院地理科学与资源研究所 | 一种数据库系统实现栅格数据类型的方法及其系统 |
CN107066562A (zh) * | 2017-03-31 | 2017-08-18 | 山东农业大学 | 一种卫星遥感影像数据的存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210246B2 (en) * | 2014-09-26 | 2019-02-19 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
-
2018
- 2018-06-12 CN CN201810602534.XA patent/CN108920540B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368272A (zh) * | 2011-11-15 | 2012-03-07 | 中国科学院地理科学与资源研究所 | 一种数据库系统实现栅格数据类型的方法及其系统 |
CN107066562A (zh) * | 2017-03-31 | 2017-08-18 | 山东农业大学 | 一种卫星遥感影像数据的存储方法 |
Non-Patent Citations (2)
Title |
---|
分布式地理数据高效可视化技术研究;李强等;《地理空间信息》;20170930;第1页第1章到第3页第4章 * |
基于pRPL的栅格地图投影变换算法并行化研究;魏梦婷;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215;第37页第4.1节到第64页第4.7节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108920540A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920540B (zh) | 一种基于Spark的并行栅格数据处理方法 | |
EP3255586A1 (en) | Method, program, and apparatus for comparing data graphs | |
CN105786942A (zh) | 一种基于云平台的地理信息存储系统 | |
US20220229809A1 (en) | Method and system for flexible, high performance structured data processing | |
EP3343445A1 (en) | Method and apparatus for encoding and decoding lists of pixels | |
CN117223005A (zh) | 加速器、计算机系统和方法 | |
CN114387289A (zh) | 输配电架空线路三维点云语义分割方法和装置 | |
CN114281855A (zh) | 数据请求方法、装置、计算机设备、存储介质和程序产品 | |
US10964076B2 (en) | Method and system for solving inverse problems in image processing using deep dictionary learning (DDL) | |
CN109712181B (zh) | 集成电路版图线网上开路关键面积的提取方法 | |
CN112446005A (zh) | 计算优化 | |
Peng et al. | A GPU-accelerated approach for feature tracking in time-varying imagery datasets | |
Happ et al. | Towards distributed region growing image segmentation based on MapReduce | |
WO2015143708A1 (zh) | 后缀数组的构造方法及装置 | |
US10339107B2 (en) | Multi-level colocation and processing of spatial data on MapReduce | |
CN114911886B (zh) | 一种遥感数据的切片方法、装置和云服务器 | |
CN111881916A (zh) | 一种文字定位方法、装置及设备 | |
US7929774B2 (en) | Method of inferential analysis of low resolution images | |
CN109670598A (zh) | 一种基于深度学习的数据处理方法 | |
Hambrusch et al. | Parallel algorithms for gray-scale image component labeling on a mesh-connected computer | |
CN118428288B (zh) | 芯片版图云端并行渲染与渲染数据调度方法、设备及云端 | |
CN116450872B (zh) | 基于Spark分布式的矢量转栅格方法、系统及设备 | |
CN117078825B (zh) | 一种点云数据线上渲染修改方法、系统、设备及介质 | |
US20240104790A1 (en) | Optimizing grid-based compute graphs | |
CN106407300B (zh) | 海量交通数据存储方法 |
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 |