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来表示该“无数据值”,也可以用9 ...
【技术保护点】
一种分类型栅格数据的存储方法,其特征在于:对由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所述的一种分类型栅格数据的存储方法,其特征在于:每一类像素中存储的像素值...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。