当前位置: 首页 > 专利查询>鲁东大学专利>正文

一种分类型栅格数据的存储及读取方法技术

技术编号:17837633 阅读:31 留言:0更新日期:2018-05-03 19:18
本发明专利技术涉及一种分类型栅格数据的存储及读取方法,其存储方法为对由m类像素组成的K行L列的原始分类栅格数据Data进行存储,包括以下步骤,S1,根据像素的类型且以行为单位对所述原始分类栅格数据Data中的所有像素进行分类存储,并分别计算和存储每一类像素分类存储时所需的存储空间数值,生成与每一类像素对应的分类文件;S2比较每一类像素分类存储时所需的存储空间数值的大小,丢弃其中所需存储空间数值最大的一类像素所对应的分类文件;S3,记录所述原始分类栅格数据Data的元数据信息。本发明专利技术一种分类型栅格数据的存储方法可以大大减少存储空间,同时可以大量的减少栅格数据的网络传输率,提高系统的处理性能。

A storage and reading method for categorical raster data

The invention relates to a storage and reading method of classified grid data, which stores the original classification grid data Data of the K row L column composed of M pixels, including the following steps, S1, according to the type of the pixel and the classification of all the pixels in the original classification grid data Data in accordance with the pixel type. Store, calculate and store the storage space values required for each category of pixel storage, and generate classification files corresponding to each class of pixels; S2 compares the size of the storage space values required for each class of pixels and discards the classification files corresponding to a class of pixels with the largest storage space value. ; S3, metadata information of the original classification grid data Data is recorded. The storage method of the classified grid data can greatly reduce the storage space, at the same time, it can reduce the network transmission rate of grid data and improve the processing performance of the system.

【技术实现步骤摘要】
一种分类型栅格数据的存储及读取方法
本专利技术涉及栅格数据处理领域,具体涉及一种分类型栅格数据的存储及读取方法。
技术介绍
栅格数据模型将地理空间划分成若干行、若干列,称为一个像元阵列,其最小单元称为像元或像素,每个像素的位置由行列号确定,通过单元格中的值记录这一位置属于何种地理实体或记录某一主题要素在这个位置上的数值。具有整数型栅格单元值的栅格数据用来存储各种所谓的离散数据或分类数据,这种数据集描述了一种现象或存在于栅格单元所在位置的对象。例如,土地利用类型栅格数据,其每个像素存储的是一个整数,代表着该像素对应的地理空间的土地利用类别,如整数1代表耕地,整数2代表林地,整数3代表草地,等等。当然,也有栅格数据的每个像素存储的是连续型的数值,如DEM高程栅格数据,每个像素存储的是浮点数值,代表地面高度。另外,在栅格数据模型中,还有一个用来表征栅格像素值叫“无数据值”,这是一个特殊的整数值,来记录某些栅格像素的值,例如,对于上述的土地利用类型栅格数据,假设分类有耕地、草地、林地和建设用地等几大类,在生产该数据时,在某些区域人类无法进入观察土地利用情况或者卫星采集数据时被云层遮蔽等原因导致有些栅格像素无法确定其利用分类情况,一般情况下就用这个“无数据值”来记录;还有一种情况是,某些像素不具备某属性,因此也用“无数据值”来存储,例如对于位于海域的那些栅格像素,其没有所谓的土地利用概念,这个土地利用概念只是针对陆地才有意义,因此对于这些像素一般也用“无数据值”来存储。在实际应用中,这个“无数据值”是可以自行设定的,例如,可以用整数0来表示该“无数据值”,也可以用9999来表示,没有强制要求。假设某分类型栅格数据是由K行L列个栅格单元组成,每个栅格单元存储的数据是一字节无符号整数型数值,例如上述土地利用类型栅格数据每个栅格单元存储的是土地利用分类情况整数值。按目前栅格数据模型的通常做法,每个栅格单元用1字节进行存储,则需要KxL个字节,当栅格的行列数KxL较大时所需要的存储空间非常大,这对系统的存储设备成本、网络传输效率都是很大的挑战。
技术实现思路
本专利技术所要解决的技术问题是提供一种分类型栅格数据的存储及读取方法,可以有效的减少数据存储量,节约存储设备成本、提高网络传输效率。本专利技术解决上述技术问题的技术方案如下:一种分类型栅格数据的存储方法,对由m类像素组成的K行L列的原始分类栅格数据Data进行存储,包括以下步骤,S1,根据像素的类型且以行为单位对所述原始分类栅格数据Data中的所有像素进行分类存储,并分别计算和存储每一类像素分类存储时所需的存储空间数值,生成与每一类像素对应的分类文件;S2,比较每一类像素分类存储时所需的存储空间数值的大小,丢弃其中所需存储空间数值最大的一类像素所对应的分类文件;S3,记录所述原始分类栅格数据Data的元数据信息。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,m类像素中包括“无数据值”这一类型的像素,且2≤m≤8。进一步,在S1中,设定对所述原始分类栅格数据Data中的第r行的第i类像素进行存储,具体包括以下步骤,S11,在第r行中,从第1列到第L列依次读取每个像素的像素值V,S12,依次判断每个像素的像素值V与第i类像素的像素值Vi是否相等,S13,统计第r行中与第i类像素的像素值Vi相等的像素的个数X,并存储X的值;S14,在存储的X值后,接着以列序号或标志位的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储,生成第r行中第i类像素的数据存储结构D;其中,1≤r≤K,1≤i≤m。进一步,所述分类文件设有两个,分别为栅格数据文件dat和行存储空间记录文件meta;将第1行至第K行中第i类像素的数据存储结构D按顺序进行存储生成第i类像素对应的所述栅格数据文件dat;所述行存储空间记录文件meta中按顺序存储有第1行至第K行中的第i类像素所需的存储空间数值。进一步,当X<[L/32]时,则以列序号的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储;以列序号的形式存储具体为,将第r行中与第i类像素的像素值Vi相等的像素的列序号按顺序进行存储;当X≥[L/32]时,则以标志位的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储;以标记位的形式存储具体为,在第r行的L列个像素中,对每个像素设置一个bit的标志位来存储,以标志位1表示像素属于第i类,以标志位0表示像素不属于第i类;以第i类像素为基准,以字节为单位对第r行中的所有像素的标志位按顺序进行存储;若第r行的末尾不够,则以标志位0补齐。进一步,在所述S3中,所述元数据信息包括所述原始分类栅格数据Data的行数K列数L、像素的分类总数m、每一个分类像素对应的名称和像素值Vi,以及除所需存储空间数值最大的一类像素外剩余分类像素对应栅格数据文件dat的名称和行存储空间记录文件meta的名称;所需存储空间数值最大的一类像素对应栅格数据文件dat的名称和行存储空间记录文件meta的名称均设为null;所述元数据信息存储在文件file.meta中。进一步,每一类像素中存储的像素值为1字节的整数值,每个像素的列序号用4字节的无符号整数来存储,第r行中第i类像素所需的存储空间数值用4字节无符号整数来存储。本专利技术的有益效果是:本专利技术一种分类型栅格数据的存储方法充分考虑到分类型栅格数据的分类个数不多时,假如某个分类占比很大,其余分类占比较小的情况下,利用存储分类比重较小的,通过排除法可知余下的像素就是占比最大的分类的这一特点,可以大大减少存储空间,同时可以大量的减少栅格数据的网络传输率,提高系统的处理性能。基于上述一种分类型栅格数据的存储方法,本专利技术还提供一种分类型栅格数据的读取方法。一种分类型栅格数据的读取方法,按行读取利用上述所述的一种分类型栅格数据的存储方法所存储的原始分类栅格数据Data,设定需要读取所述原始分类栅格数据Data的第r行,包括以下步骤,步骤一,为所述原始分类栅格数据Data的第r行的像素分配存储空间L个字节,并初始化设置L个字节的数值为Vx,其中Vx为所需存储空间数值最大的一类像素所对应的像素值;步骤二,在文件file.meta中读取所述原始分类栅格数据Data的元数据信息;步骤三,根据所述元数据信息分别读取每一个分类像素所对应的栅格数据文件dat和行存储空间记录文件meta;步骤四,解析每一个分类像素所对应的栅格数据文件dat和行存储空间记录文件meta,得出所述原始分类栅格数据Data的第r行中各像素的类别和像素值Vi;步骤五,根据步骤四中所述原始分类栅格数据Data的第r行中各像素的类别,将步骤一中L个字节中属于对应分类的像素的数值Vx设置成对应的像素值Vi。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,设定对第i类像素所对应的栅格数据文件dat和行存储空间记录文件meta进行解析,且将第i类像素所对应的栅格数据文件dat和行存储空间记录文件meta的文件名称分别设定为Vi.dat和Vi.meta,则步骤四具体为,读出Vi.meta文件,从Vi.meta文件的头开始按顺序读出r-1个4字节无符号整数值q[r-1],将这r-1个q[r-1]的数值进行累加,得本文档来自技高网
...

【技术保护点】
一种分类型栅格数据的存储方法,其特征在于:对由m类像素组成的K行L列的原始分类栅格数据Data进行存储,包括以下步骤,S1,根据像素的类型且以行为单位对所述原始分类栅格数据Data中的所有像素进行分类存储,并分别计算和存储每一类像素分类存储时所需的存储空间数值,生成与每一类像素对应的分类文件;S2,比较每一类像素分类存储时所需的存储空间数值的大小,丢弃其中所需存储空间数值最大的一类像素所对应的分类文件;S3,记录所述原始分类栅格数据Data的元数据信息。

【技术特征摘要】
1.一种分类型栅格数据的存储方法,其特征在于:对由m类像素组成的K行L列的原始分类栅格数据Data进行存储,包括以下步骤,S1,根据像素的类型且以行为单位对所述原始分类栅格数据Data中的所有像素进行分类存储,并分别计算和存储每一类像素分类存储时所需的存储空间数值,生成与每一类像素对应的分类文件;S2,比较每一类像素分类存储时所需的存储空间数值的大小,丢弃其中所需存储空间数值最大的一类像素所对应的分类文件;S3,记录所述原始分类栅格数据Data的元数据信息。2.根据权利要求1所述的一种分类型栅格数据的存储方法,其特征在于:m类像素中包括“无数据值”这一类型的像素,且2≤m≤8。3.根据权利要求1或2所述的一种分类型栅格数据的存储方法,其特征在于:在S1中,设定对所述原始分类栅格数据Data中的第r行的第i类像素进行存储,具体包括以下步骤,S11,在第r行中,从第1列到第L列依次读取每个像素的像素值V,S12,依次判断每个像素的像素值V与第i类像素的像素值Vi是否相等,S13,统计第r行中与第i类像素的像素值Vi相等的像素的个数X,并存储X的值;S14,在存储的X值后,接着以列序号或标志位的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储,生成第r行中第i类像素的数据存储结构D;其中,1≤r≤K,1≤i≤m。4.根据权利要求3所述的一种分类型栅格数据的存储方法,其特征在于:所述分类文件设有两个,分别为栅格数据文件dat和行存储空间记录文件meta;将第1行至第K行中第i类像素的数据存储结构D按顺序进行存储生成第i类像素对应的所述栅格数据文件dat;所述行存储空间记录文件meta中按顺序存储有第1行至第K行中的第i类像素所需的存储空间数值。5.根据权利要求4所述的一种分类型栅格数据的存储方法,其特征在于:当X<[L/32]时,则以列序号的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储;以列序号的形式存储具体为,将第r行中与第i类像素的像素值Vi相等的像素的列序号按顺序进行存储;当X≥[L/32]时,则以标志位的形式对第r行中与第i类像素的像素值Vi相等的像素进行存储;以标记位的形式存储具体为,在第r行的L列个像素中,对每个像素设置一个bit的标志位来存储,以标志位1表示像素属于第i类,以标志位0表示像素不属于第i类;以第i类像素为基准,以字节为单位对第r行中的所有像素的标志位按顺序进行存储;若第r行的末尾不够,则以标志位0补齐。6.根据权利要求5所述的一种分类型栅格数据的存储方法,其特征在于:在所述S3中,所述元数据信息包括所述原始分类栅格数据Data的行数K列数L、像素的分类总数m、每一个分类像素对应的名称和像素值Vi,以及除所需存储空间数值最大的一类像素外剩余分类像素对应栅格数据文件dat的名称和行存储空间记录文件meta的名称;所需存储空间数值最大的一类像素对应栅格数据文件dat的名称和行存储空间记录文件meta的名称均设为null;所述元数据信息存储在文件file.meta中。7.根据权利要求6所述的一种分类型栅格数据的存储方法,其特征在于:每一类像素中存储的像素值...

【专利技术属性】
技术研发人员:闫富松周聪俐
申请(专利权)人:鲁东大学
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1