欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017112154127
申请人: 鲁东大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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所述的一种分类型栅格数据的存储方法,其特征在于:每一类像素中存储的像素值为1字节的整数值,每个像素的列序号用4字节的无符号整数来存储,第r行中第i类像素所需的存储空间数值用4字节无符号整数来存储。

8.一种分类型栅格数据的读取方法,其特征在于:按行读取利用上述权利要求7中所述的一种分类型栅格数据的存储方法所存储的原始分类栅格数据Data,设定需要读取所述原始分类栅格数据Data的第r行,包括以下步骤,步骤一,为所述原始分类栅格数据Data的第r行的像素分配存储空间L个字节,并初始化设置L个字节的数值为Vx,其中Vx为所需存储空间数值最大的一类像素所对应的像素值;

步骤二,在文件file.meta中读取所述原始分类栅格数据Data的元数据信息;

步骤三,根据所述元数据信息分别读取每一个分类像素所对应的栅格数据文件dat和行存储空间记录文件meta;

步骤四,解析每一个分类像素所对应的栅格数据文件dat和行存储空间记录文件meta,得出所述原始分类栅格数据Data的第r行中各像素的类别和像素值Vi;

步骤五,根据步骤四中所述原始分类栅格数据Data的第r行中各像素的类别,将步骤一中L个字节中属于对应分类的像素的数值Vx设置成对应的像素值Vi。

9.根据权利要求8所述的一种分类型栅格数据的读取方法,其特征在于:设定对第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]的数值进行累加,得到数值z;

从Vi.meta文件头开始按顺序读出第r个4字节无符号整数值w,则w的数值就是原始分类栅格数据Data的第r行中的像素在Vi.dat文件中需要的存储空间数值;

通过数值z和w定位出原始分类栅格数据Data的第r行的像素在V1.dat文件中存储空间的位置,即从V1.dat文件的第z+1个字节开始,共占用存储空间w字节;

在Vi.dat文件中,从第z+1个字节开始读出第1个4字节无符号整数值s,则s的数值就是原始分类栅格数据Data的第r行中的L列像素中属于第i类像素的的个数;

判断s与[L/32]的大小,

若s<[L/32],并且设定w=4*a,则对V1.dat文件从第z+1个字节开始以4字节为单位读取,得到a个4字节无符号整数值数组p;如果a=1,则说明本行中没有分类i像素;如果a>1,则p[c]表示第r行中的第c个属于第i像素的列序号,且将步骤一中分配的L个字节的存储空间中的第p[c]个字节的数值Vx设置为Vi,其中c=1,2,3......,a-1;

若s≥[L/32],则以字节为单位,在Vi.dat文件中从第z+5个字节开始读取共w-4个1字节无符号整数数组b[w-4];以二进制表示w-4个字节,则共有(w-4)*8位,且(w-4)*8位分别对应原始分类栅格数据Data的第r行的L列像素;依次判断(w-4)*8位中的标记位,将标记位为1所对应的步骤一中分配的L个字节的存储空间的像素值Vx设置为Vi。