本申请提供了一种栅格数据的存储、读取方法及装置,其中,所述栅格数据存储的方法包括:步骤S101,获取原始栅格数据;步骤S102,依次提取9个连续栅格单元的值;步骤S103,采用第一目标数值代替所述9个连续栅格单元的值并存储在一个目标栅格单元中;步骤S104,若提取到的连续栅格单元不足9个,则将不足9个连续原始栅格单元的栅格单元数记为N,采用第二目标数值代替所述N个原始栅格单元的值并存储在一个目标栅格单元中;步骤S105,判断是否遍历完K*L个栅格单元,若是,则执行步骤S106;若否,则返回步骤S102。本申请可以节省栅格数据的存储空间,提高栅格数据的处理效率。
【技术实现步骤摘要】
本申请涉 及栅格数据处理的
,特别是涉及到ー种栅格数据的存储、读取方法及装置。
技术介绍
栅格数据是以ニ维矩阵的形式来表示空间地物或现象分布的数据组织方式,每个矩阵单位称为ー个栅格单元,栅格的每个数据表示地物或现象的属性数据。随着地理信息系统(GIS、Geographic Information System)应用于各个行业,在实际应用中,大量使用海量栅格数据,带来应用系统的存储空间、性能要求与网络传输以及运算量等技术难点。尤其在ー些GIS软件中,海量栅格数据的存储管理以及网络传输速率往往是性能瓶颈。假设栅格数据是由K行L列个栅格单元组成,每个栅格单元存储的是O到9的整数值。若采用普通方法,每个栅格単元用I字节进行存储,则需要K*L个字节,所需的存储空间非常大,这对系统的存储、性能,以及网络的传输效率都要求很高。因此,本领域技术人员迫切需要解决的ー个技术问题在于,如何节省栅格数据的存储空间,提高栅格数据的处理效率。
技术实现思路
本申请提供ー种栅格数据的存储、读取方法及装置,用以节省栅格数据的存储空间,提高栅格数据的处理效率。为了解决上述问题,本申请公开了ー种栅格数据的存储方法,包括步骤S101,获取原始栅格数据,所述原始栅格数据包括原始栅格数据基本信息和原始栅格单元的值;所述原始栅格数据基本信息为原始栅格数据包括K*L个栅格単元;其中,所述K为行,L为列;所述原始栅格单元的值都是分布在O到9之间的整数;步骤S102,在所述K*L个栅格单元中依次从第一个未提取的原始栅格单元开始,按照预设提取方式提取9个连续原始栅格单元的值;步骤S103,采用第一目标数值代替所述9个连续原始栅格单元的值并存储在ー个目标栅格単元中;所述第一目标数值为根据9个连续原始栅格单元的值生成的ー个9位整数;所述存储包括将第一目标数值存储为4字节的int型;步骤S104,若提取到的连续原始栅格单元不足9个,则将不足9个连续原始栅格单元的栅格单元数记为N,采用第二目标数值代替所述N个的原始栅格单元的值并存储在ー个目标栅格単元中;所述第二目标数值为根据所述N个连续原始栅格单元的数值补充9-N个特征值后生成的ー个9位整数;所述存储包括将第二目标数值存储为4字节的int型; 步骤S105,判断是否遍历完所述K*L个栅格単元,若是,则执行步骤S106 ;若否,则返回步骤S102 ;步骤S106,将所述目标栅格単元的值和目标栅格数据的基本信息组织为目标栅格数据并存储;所述目标栅格单元的值为第一目标数值和/或第二目标数值;所述目标栅格数据的基本信息包括原始栅格数据基本信息、步骤S102中所述的预设提取方式及步骤S104中所述的9-N个特征值。优选地,所述预设提取方式包括按每行或每列提取;所述按每行提取包括从左到右或从右到左提取;若每行最后提取到的连续原始栅格単元不足9个,则执行步骤S104 ;所述按每列提取包括从上到下或从下到上提取;每列最后提取到的连续原始栅格単元不足9个,则执行步骤S104。 优选地,所述预设提取方式包括按整个栅格数据提取;所述按整个栅格数据提取包括把所有的行连接起来进行顺次提取;整个栅格数据的最后几个连续栅格单元不足9个,则执行步骤S104。优选地,所述步骤S103中根据9个连续原始栅格单元的值生成ー个9位整数包括将所述9个连续原始栅格单元的值,按顺序从高位到低位排列得到ー个9位整数;所述按顺序从高位到低位排列,包括提取到的第一个栅格単元的值放在最高位,最后ー个栅格単元的值放在最低位。优选地,所述特征值为O到9之间的整数。本申请实施例还公开了一种栅格数据读取的方法,包括步骤S201,读取目标栅格数据,所述目标栅格数据包括目标栅格数据基本信息以及目标栅格単元的值;所述目标栅格数据的基本信息包括原始栅格数据基本信息、预设提取方式及9-N个特征值;所述目标栅格单元的值包括第一目标数值和第二目标数值;所述第一目标数值为根据9个连续栅格单元的值生成的ー个9位整数;所述第二目标数值为根据所述N个连续栅格单元的数值补充9-N个特征值后生成的ー个9位整数;所述第一目标数值和第二目标数值均存储为4字节的int型;步骤S202,依据预设提取方式生成预设还原方式;步骤S203,从第一个未解析的目标栅格数据开始依次解析所述目标栅格数据中的栅格单元值,判断是否第一目标数值或第二目标数值;若为第一目标数值,则执行步骤S204,若为第二目标数值,则执行步骤S205 ;步骤S204,将所述每个第一目标数值还原成9个连续原始栅格单元的值,并按照预设还原方式还原到9个原始栅格单元中;步骤S205,将所述每个第二目标数值删去9-N个特征值还原成N个原始连续栅格単元的值,并按照预设还原方式还原到N个原始栅格单元中;步骤S206,判断是否遍历完所述目标栅格数据,若是,则执行步骤S207,若否,则返回步骤S203 ;步骤S207,将所述原始栅格单元的值和原始栅格数据基本信息组织为原始栅格数据并存储;所述原始栅格单元的值为第一目标数值和/或第二目标数值。所述原始栅格数据基本信息为原始栅格数据包括K*L个栅格单元;其中,所述K为行,L为列;所述原始栅格单元的值都是分布在O到9之间的整数。优选地,所述依据预设提取方式生成的预设还原方式包括若预设提取方式为按每行提取,则预设还原方式为按每行还原;若预设提取方式为按每列提取,则预设还原方式为按每列还原;若预设提取方式为按整个栅格数据提取,则预设还原方式为按整个栅格数据还原。优选地,步骤S203包括 从第一个未解析的目标栅格数据开始依次解析所述目标栅格数据中的栅格单元值,判断当前目标栅格数据是否包含特征值,若是,则判定为第二目标数值,若否,则判定为第一目标数值。本申请实施例还公开了一种栅格数据存储的装置,包括原始栅格数据获取模块,用于获取原始栅格数据,所述原始栅格数据包括原始栅格数据基本信息和原始栅格单元的值;所述原始栅格数据基本信息为原始栅格数据包括K*L个栅格単元;其中,所述K为行,L为列;所述原始栅格单元的值都是分布在O到9之间的整数;栅格单元提取模块,用于在所述K*L个栅格单元中依次从第一个未提取的原始栅格単元开始,按照预设提取方式提取9个连续原始栅格单元的值;第一目标数值生成模块,用于采用第一目标数值代替所述9个连续原始栅格单元的值并存储在ー个目标栅格单元中;所述第一目标数值为根据9个连续原始栅格单元的值生成的ー个9位整数;所述存储包括将第一目标数值存储为4字节的int型;第二目标数值生成模块,用于将不足9个连续原始栅格单元的栅格单元数记为N,采用第二目标数值代替所述N个的原始栅格单元的值并存储在ー个目标栅格单元中;所述第二目标数值为根据所述N个连续原始栅格单元的数值补充9-N个特征值后生成的ー个9位整数;所述存储包括将第二目标数值存储为4字节的int型;遍历判断模块,用于判断是否遍历完所述K*L个栅格単元,若是,则调用目标栅格数据存储模块;若否,则返回栅格单元提取模块;目标栅格数据存储模块,用于将所述目标栅格単元的值和目标栅格数据的基本信息组织为目标栅格数据并存储;所述目标栅格单元的值为第一目标数值和/或第二目标数值;所述目标栅格数据的基本信息包括原始栅格数据基本信息、栅格单元提取模块所述的预设提取方本文档来自技高网...
【技术保护点】
一种栅格数据的存储方法,其特征在于,包括:步骤S101,获取原始栅格数据,所述原始栅格数据包括原始栅格数据基本信息和原始栅格单元的值;所述原始栅格数据基本信息为:原始栅格数据包括K*L个栅格单元;其中,所述K为行,L为列;所述原始栅格单元的值都是分布在0到9之间的整数;步骤S102,在所述K*L个栅格单元中依次从第一个未提取的原始栅格单元开始,按照预设提取方式提取9个连续原始栅格单元的值;步骤S103,采用第一目标数值代替所述9个连续原始栅格单元的值并存储在一个目标栅格单元中;所述第一目标数值为根据9个连续原始栅格单元的值生成的一个9位整数;所述存储包括将第一目标数值存储为4字节的int型;步骤S104,若提取到的连续原始栅格单元不足9个,则将不足9个连续原始栅格单元的栅格单元数记为N,采用第二目标数值代替所述N个的原始栅格单元的值并存储在一个目标栅格单元中;所述第二目标数值为根据所述N个连续原始栅格单元的数值补充9?N个特征值后生成的一个9位整数;所述存储包括将第二目标数值存储为4字节的int型;步骤S105,判断是否遍历完所述K*L个栅格单元,若是,则执行步骤S106;若否,则返回步骤S102;步骤S106,将所述目标栅格单元的值和目标栅格数据的基本信息组织为目标栅格数据并存储;所述目标栅格单元的值为第一目标数值和/或第二目标数值;所述目标栅格数据的基本信息包括原始栅格数据基本信息、步骤S102中所述的预设提取方式及步骤S104中所述的9?N个特征值。...
【技术特征摘要】
【专利技术属性】
技术研发人员:孙成宝,郑国柱,
申请(专利权)人:北京地拓科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。