[go: up one dir, main page]

CN103886045B - 一种包含局部有效栅格数据的存取方法及装置 - Google Patents

一种包含局部有效栅格数据的存取方法及装置 Download PDF

Info

Publication number
CN103886045B
CN103886045B CN201410088639.XA CN201410088639A CN103886045B CN 103886045 B CN103886045 B CN 103886045B CN 201410088639 A CN201410088639 A CN 201410088639A CN 103886045 B CN103886045 B CN 103886045B
Authority
CN
China
Prior art keywords
raster data
pixel
data
grid
raster
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.)
Expired - Fee Related
Application number
CN201410088639.XA
Other languages
English (en)
Other versions
CN103886045A (zh
Inventor
闫富松
周聪俐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Taiyu Information Technology Co ltd
Shenzhen Morning Intellectual Property Operations Co ltd
Original Assignee
Ludong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ludong University filed Critical Ludong University
Priority to CN201410088639.XA priority Critical patent/CN103886045B/zh
Publication of CN103886045A publication Critical patent/CN103886045A/zh
Application granted granted Critical
Publication of CN103886045B publication Critical patent/CN103886045B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本发明提供了一种包含局部有效栅格数据的存取方法及装置,其中,所述方法包括:将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据;将栅格数据中的有效栅格像素的像素值单独进行存储,得到有效栅格像素的像素值数据串,记录栅格数据的基本信息;当应用系统需要对栅格数据进行存储时,将压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储。本发明可以大大减少栅格数据的存储量,节省存储空间;将处理后的栅格数据进行传输,可以大大减少栅格数的传输量,提高网络栅格数据传输效率。

Description

一种包含局部有效栅格数据的存取方法及装置
技术领域
本发明涉及地理信息领域,特别是涉及一种包含局部有效栅格数据的存取方法及装置。
背景技术
栅格数据在GIS(Geographic Information System,地理信息系统)中得到广泛的应用,在实际项目中其重要特点之一是数据量大,服务器与客户端之间的栅格数据的传输量经常是制约gis应用系统性能的重要因素。在栅格数据传输过程中,一般的做法以及当前主流的方法都是以某一像素宽度和某一像素高度组成的矩形区域的所有像素值为网络传输的数据对象。这种方法对矩形区域中总像素数量较小(比如矩形区域像素总和小于10000,每像素数据需要4字节存储空间,那么传输的总数据量不到40Kb)情况下,在多数Gis应用中是可以接受的;但是,当应用中需要传输的矩形区域包含像素数量较大时,比如1024*1024的像素区域,每像素数据需要4字节存储空间,那么总的传输数据4096Kb就非常大了,对应用系统的性能的影响就非常大了。
目前,对如何减少栅格数据的传输量,提高系统效率有较多的研究,但主要集中在对数据的压缩或编码的技术方向,获取最小的存储量及传输量。
发明内容
本发明提供GIS应用中一种包含局部有效栅格数据的存取方法及装置,解决的目标问题是从栅格数据中将分布具有随机性的、数量具有随机性的无效栅格像素集与局部有效栅格像素集区分处理,可以大大减少栅格数据的存储量,节省存储空间;将处理后的栅格数据进行传输,可以大大减少栅格数的传输量,提高网络栅格数据传输效率。
为解决上述技术问题,本发明提供了一种包含局部有效栅格数据的存取方法,
栅格数据中包含有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;
将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据;
将栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,丢弃无效栅格像素部分数据的处理,得到有效栅格像素的像素值数据串;
记录栅格数据的基本信息,基本信息包括像素宽度、像素高度、无效栅格像素的取值及像素数据类型;
当应用系统需要对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
当应用系统需读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
目前对栅格数据的处理,都是基于栅格数据内的所有像素,然后对这些像素数据,研究如何压缩,编码等,获取最小的存储量及传输量;本法明是先从栅格数据中区分出有用的信息,丢弃无用的信息,这样便可很大程度上减少数据量了,当然应用本方法后可继续接着进行数据压缩层面的处理。
在上述一种包含局部有效栅格数据的存取方法技术方案的基础上,本发明还可以做如下的改进。
进一步,所述将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据的步骤包括:
依次判断所述栅格数据中每个像素的取值是否为无效栅格像素的取值;
如果是,则此栅格像素为无效栅格像素,用0标记;
如果不是,则此栅格像素为有效栅格像素,用1标记;
按一定顺序记录所述栅格数据中所有像素的标记,形成标记栅格数据;
将所述标记栅格数据按照每像素占1bi t存储空间进行重新分配;
将所述重新分配后的标记栅格数据按照从标记栅格数据的起始数开始连续32位为一组,并将每组32位即4个字节的标记数据取其十进制整数值进行存储的方式压缩,获得压缩标记栅格数据。
上述技术方案的有益效果是:本发明采用的标记信息处理方法,可以实现不论无效栅格像素的分布如何,数量如何,压缩效率完全一样的目标,可以满足实际生产中的栅格数据往往具有大量分散性的无数据值的情况。
进一步,所述根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据的步骤包括:
根据所述栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间;初始化此二维矩阵的每个格子为“未处理状态”;
解压缩所述压缩标记栅格数据,将所述标记栅格数据赋予所述二维矩阵,在所述二维矩阵中标记出无效栅格像素和局部有效栅格像素的位置;
将所述二维矩阵的无效栅格像素的相应位置填入无效栅格像素的取值,并将格子状态设置为“已处理状态”;
再将所述有效栅格像素的像素值数据串按一定顺序填入所述二维矩阵中“未处理状态”的格子,在接收端得到复原的栅格数据。
本发明还公开了一种包含局部有效栅格数据的存取装置,包括:
栅格数据模块,用于存储原始的栅格数据,所述栅格数据中包含栅格数据中包含有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;
栅格数据局部有效像素集的标记模块,用于将所述栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对所述标记栅格数据进行压缩,获得压缩标记栅格数据;
局部有效像素集的实际像素值模块,用于将所述栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,丢弃无效栅格像素部分数据的处理,得到有效栅格像素的像素值数据串;
栅格数据的基本信息模块,用于记录所述栅格数据的基本信息,基本信息包括像素宽度、像素高度、无效栅格像素的取值及像素数据类型;
存储模块,用于在应用系统需要对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
读取模块,用于在应用系统需要读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
在上述一种包含局部有效栅格数据的存取装置基础上,本发明还可以做如下的改进。
进一步,所述栅格数据局部有效像素集的标记模块包括:
局部有效像素判断判断模块,用于依次判断所述栅格数据中每个像素的取值是否为无效栅格像素的取值;如果是,则调用无效栅格像素判断标记模块,如果不是,则调用局部有效栅格像素判断标记模块;
无效栅格像素标记模块,用于确定所述栅格数据像素的取值为无效栅格像素的取值,并将所述栅格用0标记;
局部有效栅格像素标记模块,用于确定所述栅格数据像素的取值为有效栅格像素,并将所述栅格用1标记;
标记栅格数据生成模块,用于按一定顺序记录所述栅格数据中所有像素的标记,形成标记栅格数据;
标记栅格数据压缩模块,用于将所述标记栅格数据按照每像素占1bit存储空间进行重新分配;按照从所述标记栅格数据的起始数开始连续32位为一组,并将每组32位即4个字节的标记数据取其十进制整数值进行存储的方式压缩,获得压缩标记栅格数据。
进一步,所述读取模块包括:
存储空间分配模块,用于根据所述栅格数据的基本信息中的像素宽度、像素高度、无效栅格像素的取值及像素数据类型,分配与所述栅格数据相应大小的二维矩阵存储空间,初始化所述二维矩阵的每个格子为“未处理状态”;
解压压缩标记栅格数据模块,用于解压所述压缩标记栅格数据,将标记栅格数据赋予所述二维矩阵,在所述二维矩阵中标记出无效栅格像素和局部有效栅格像素的位置;
无效栅格像素填充模块,用于将所述二维矩阵的无效栅格像素的相应位置填入无效栅格像素的取值,并将格子状态设置为“已处理状态”;
局部有效栅格像素填充模块,用于将所述有效栅格像素的像素值数据串按一定顺序填入二维矩阵中“未处理状态”的格子,在接收端得到复原的栅格数据。
本发明还公开了一种包含局部有效栅格数据的传输方法,
服务器采用本发明所述一种包含局部有效栅格数据的存取方法对栅格数据进行处理,将得到的压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为传输对象,进行传输,传送给客户端,客户端对压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息进行相应的存储和读取。
本发明通过额外记录有效栅格像素集标记为代价,换取以栅格数据中局部有效栅格像素集为存储或传输对象,从而节省大量的存储空间或网络传输量;本发明没有涉及到过多复杂的计算处理,因此在实际项目应用中可以保证实时数据处理的效率;本方法是基于栅格数据的结构组织的其中一个层面,并不影响对数据的后处理过程,例如,按本发明所述方法,得到有效栅格像素集标记信息和局部有效栅格像素集的实际像素值数据串后,均可再进行数据压缩、编码等后处理过程,进一步减少数据存储及传输量。
附图说明
图1为一种包含局部有效栅格数据的存取方法实施例的流程图;
图2为中国土地分类实施例的栅格数据矩形区域内像素值示意图;
图3为中国土地分类实施例的栅格数据矩形区域需要实际传输的像素区域示意图;
图4为中国土地分类实施例的局部有效栅格像素集标记栅格数据示意图;
图5为中国土地分类实施例的局部有效栅格像素集标记栅格数据示意图;
图6为中国土地分类实施例的局部有效栅格像素集的实际像素值数据串;
图7为一种包含局部有效栅格数据的存取装置实施例的结构框图;
图8为一种包含局部有效栅格数据的存取装置的读取模块实施例结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
发明人根据在实际项目中的经验,发现应用系统中传输的栅格数据,往往包含部分“无效”像素数据,这里的"无效"像素数据,指在实际应用中不知道这些像素的确切像素值,这些无效像素主要来源于以下几种情况:
a、在数据生产过程中,遥感卫星可能受到云层及大气灰尘等影响,导致部分栅格像素没有获取到数值,一般数据生产商将其标记为无数据值。该部分的无数据值像素分布具有随机性,数量也具有随机性。
b、在实际的应用中,数据生产商需将部分像素值标记为无数据值。例如,在制作中国植被覆盖度栅格数据时,对中国范围内的江河湖泊等水域,由于没有植被的含义,需要将这些像素值标记为无数据值。该部分的无数据值像素随应用情况不同,其分布与数量差异较大,具有一定的随机性。
c、特定区域外的栅格像素被数据生产商标记为无数据值。如发布中国土地分类栅格数据时,对栅格矩形区域内中国国界之外的像素,一般均标记为无数据值。这类无数据值一般分布集中而且数量较多。
在实际应用中,栅格数据的无效栅格像素集可由情况a,b,c的任意一个或多个共同产生。这些栅格数据中包含分布具有随机性的、数量具有随机性的无效栅格像素集与局部有效栅格像素集(对可操作栅格而言,无效栅格像素集之外的所有像素即为局部有效栅格像素)。
本发明的技术原理是对栅格数据中的局部有效栅格像素集,分三部分进行信息存储:一是局部有效像素集的标记信息,以区分矩形区域中哪些像素是有效像素,哪些是无效像素;二是按特定顺序排列的局部有效像素集的实际像素值信息;三是栅格数据的基本信息。将这三部分信息分别进行传输,接收时按相应的方法进行解析处理,重新得到矩形区域栅格数据。
本发明中采用的局部有效像素集标记信息处理方法,可以实现不论无效栅格像素的分布如何,数量如何,压缩效率完全一样的目标,可以满足实际生产中的栅格数据往往具有大量分散性的无数据值的情况。
图1为一种包含局部有效栅格数据的存取方法实施例的流程图,参照图示1,本发明一种包含局部有效栅格数据的存取方法实施例,具体包括:
步骤一,栅格数据中包含有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据;
为方便技术人员理解本申请,现以中国土地分类栅格数据处理为实施例进行阐述。图2为中国土地分类实施例的栅格数据矩形区域内像素值示意图,如图2所示,表示中国土地分类的栅格数据中,已知栅格数据为R,该栅格数据的矩形区域A是由宽度为W个像素,高度为H个像素组成的,共有像素N=W*H,每个栅格像素的数据存储需要m个字节,共需存储空间为Q=N*m字节。该栅格数据的N个像素中,包含有无效栅格像素。其中,判断某像素是否为无效栅格像素是以该像素的取值来区分的。在实际栅格数据中,要根据栅格的像素数据类型来相应指定某一数值代表“无效栅格像素”。例如,表示中国土地分类的栅格数据中,我国共有46种土地类型,所以用1字节的byte数据类型来存储每个像素的土地分类号,分类号从1开始,取到46;用数值0表示该像素是无效栅格像素;该栅格数据的矩形区域像素数值如图2所示。从图2可知,像素值为0的栅格像素均为无效栅格像素,它们或为应用不感兴趣区域,或为“无数据值”像素。其中,此中国土地分类的栅格数据矩形区域中应用关心的或者说需要实际传输的像素区域如示意图3,图3为中国土地分类实施例的栅格数据矩形区域需要实际传输的像素区域示意图;
如图3所示,在图3中,矩形区域内国界以外的部分区域的像素值在图2均为0,属于无效栅格像素;而图3国界线内也有小部分栅格像素的值在图2中为0像素值,此部分像素是具有“无数据值”像素,当然也属于无效栅格像素。这样,在图2中,根据栅格像素值,我们就可以确定哪些是有效栅格像素,哪些是无效栅格像素。
需要注意的是,不同的栅格数据,根据像素值的数据类型,确定无效栅格像素的数值,取值并无强制规定(这一般都由栅格数据的生产制作部门确定的,在出售数据时都有相应的说明)。一般应用情况下,对于像素数据类型为1字节的大于0的整数,可取0或255来作为无效栅格像素值;对于像素数据类型为4字节的大于0的整数,可取0或9999999.9999(一较大数,其余有效栅格像素取值均不可能有此值,能区分出不是正常栅格像素即可)来作为无效栅格像素值;
综合上述,本发明的已知条件就是基于给定的图2中的栅格数据,其矩形区域中包含有无效栅格像素,并且无效栅格像素的值已经确定。为方便叙述,在中国土地分类实施例中均假定无效栅格像素的值为0。局部有效栅格像素集即为图2中所有像素值不为0的栅格像素集合,我们改变目前将图2栅格像素数据全部传输的方式,只对这局部有效栅格像素集进行存储或传输。
步骤一所述将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据,在中国土地分类实施例的实现中,具体包括:
对给定的图2中的栅格数据矩形区域中,对局部有效栅格像素,取值均设置为1;对无效栅格像素,取值均设置为0。这样,得到了一个新的栅格数据R2。此时R2栅格数据像素宽W、高H均同已知栅格数据R.栅格数据R2如图4所示,图4为中国土地分类实施例的局部有效栅格像素集标记栅格数据示意图。(注意:此时的栅格数据R2只是中间运算结果,是不需要写入文件进行存储的!)
对栅格数据R2,按每像素占1bit存储空间进行重新分配像素大小与像素值计算。对图4中的栅格数据R2,其有H行,W列像素。假设分配后的栅格数据为R3,其像素行数仍为H行,但列数为不小于W/32的正整数,记为C.栅格数据为R3的像素数据类型为4字节的整数。
对栅格数据R3的任意行r(1<=r<=H,行号从1开始计),其第一个像素的值为x,x的二进制表示有32bit位,从左向右,第1位即为图3中第r行的第1列值(0或1),第2位即为图3中第r行的第2列值(0或1),...,以此类推,第32位即为图3中第r行的第32列值(0或1),这样,x的二进制表示就确定下来,比如为11100000111100111100000111100111,则x取值为十进制的3774071271;对第二个像素y,y的二进制表示有32bit位,从左向右,第1位即为图3中第r行的第33列值(0或1),第2位即为图3中第r行的第34列值(0或1),...,以此类推,第32位即为图3中第r行的第64列值(0或1),这样,y的数值便可确定下来(以十进制表示);同理,对第j(1<=j<=C)个像素值z,z的二进制表示有32bi t位,从左向右,分别取自图3中第r行的第(j-1)*32+1列值,...,第j*32列值。如果图3的像素宽度W<C*32,则需要对最后一列像素值的右侧二进制位取0补足.
按上述方法处理得到局部有效栅格像素集标记栅格数据R 3,如图4所示:
这里,栅格数据R 3宽度为C像素,高度为H像素,每像素数据存储类型为4字节整数,共需要C*H*4字节存储空间。将此栅格数据R 3写入到文件里或其他介质中进行存储或内存中待进行网络传输。
步骤二,将栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,丢弃无效栅格像素部分数据的处理,得到有效栅格像素的像素值数据串;
经过步骤一的处理,已经可以确定栅格数据R中的有效栅格像素和无效栅格像素了,那么,这时候只需要单独对有效栅格数据进行存储或传输就可以了,丢弃无效栅格像素部分数据的处理,在中国土地分类实施例的实现中,具体如下:
对图2中栅格数据R的矩形区域内像素,从上到下,从左到右,逐个像素进行判断,如果其像素值为无效栅格像素值(前面已经说明,每个栅格数据的无效栅格像素值均是已知数值,可以是0,也可以是其他特定的数值),则忽略该像素值;如果为有效像素值,则将该像素值按顺序进行记录。也就是,按顺序对所有有效栅格像素进行排列,得到一串数值。对图2中的栅格数据,其局部有效栅格像素集按顺序处理后得到如图6所示的一系列数值,图6为中国土地分类实施例的局部有效栅格像素集的实际像素值数据串;图6示意的每个数值的数据类型与已知栅格数据R保持相同,每个数值需要m字节存储空间。将此特定顺序的数据串写入存储介质文件或内存,用于存储或网络传输。
步骤三,记录栅格数据的基本信息,基本信息包括像素宽度W、像素高度H、无效栅格像素的取值v及像素数据类型。
步骤四,当应用系统对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
在中国土地分类实施例的实现中,具体包括:
当需要对已知栅格数据R进行存储时,将上述步骤一中的得到的有效栅格像素集标记栅格数据R 3写入文件R_Tag.fi le;同时,将步骤二中的有效栅格像素集的实际像素值数据串写入文件R_data.fi le,将步骤三中的栅格数据的基本信息存储于文件R_info.fi le。
步骤五,当应用系统读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
在中国土地分类实施例的实现中,具体包括:
应用系统先读取栅格数据的基本信息文件R_info.fi le,得到栅格数据的矩形区域像素宽度W,高度H及像素数据类型和无效栅格像素值v,从而在内存中明确分配相应的二维矩阵D[W][H](对应二维栅格),初始化此矩阵的每个格子为“未处理”状态;再读取文件R_Tag.fi le,按步骤二中的逆过程,将解析标记栅格数据R 3,对二维矩阵D中对应的无效栅格像素的格子赋以值v,并将该格子状态设置为“已处理”状态;再读取文件R_data.fi le,按顺序读出数据串a1,a2,...,an,对二维矩阵D从左到右,从上到下,分别赋以第1个状态为“未处理”的格子,第2个状态为“未处理”的格子,...,第n个状态为“未处理”的格子.至此,该二维矩阵D中的H行W列格子均得到赋值,即对应着矩形栅格数据R。
当需要对已知栅格数据R进行网络传输时,将上述步骤一中的得到的有效栅格像素集标记栅格数据R 3写入内存;同时,将步骤二中得到的有效栅格像素集的实际像素值数据串写入内存,分别进行网络数据传输,另外,需要该栅格数据的基本信息,包括像素宽度、像素高度、无效栅格像素值及像素数据类型,将步骤三中得到的栅格数据的基本信息同时进行网络传输。在网络接受方,与上述文件存储、读取同样的方法进行解析处理,便可得到类似图1中栅格数据了。
对本发明所述栅格数据处理方法在中国土地分类实施例中应用的性能分析如下:
本发明通过额外记录有效栅格像素集标记为代价,换取以栅格数据矩形区域中局部有效栅格像素集为存储或传输对象,从而节省大量的存储空间或网络传输量。在图2所示的栅格数据矩形区域内,实际项目应用中只关心图3示意的国界线以内(含)的有效栅格像素,也就是说,国界线外的无效栅格数据几乎占到矩形区域像素的一半。假设图2中的栅格数据量为Q字节。当采用本方法时,局部有效栅格像素集的实际像素值数据串仅为普通方法的所需的一半数据量,即为Q/2字节;而增加的记录局部有效栅格像素集标记栅格数据量S,当图2中的栅格每像素为1字节时,S=Q/8;当图2中的栅格每像素为2字节时,S=Q/16;当图2中的栅格每像素为4字节时,S=Q/32;由于增加存储的栅格数据基本信息量很小,占用不到1Kb的存储空间,可以忽略不计;在最不利情况下(S=Q/8),总共需要5Q/8字节,节约37.5%数据量;在最有利情况下(S=Q/32),总共需要17Q/32字节,节约46.8%数据量;可见,本方法可以节省大量的存储及传输量,无效栅格像素越多,效率越明显。
本发明所述栅格数据处理方法没有涉及到过多复杂的计算处理,因此在实际项目应用中可以保证实时数据处理的效率。
本方法所述栅格数据处理方法是基于栅格数据的结构组织的其中一个层面,并不影响对数据的后处理过程。例如,在按本发明所述方法,在中国土地分类实施例中得到有效栅格像素集标记信息和局部有效栅格像素集的实际像素值数据串后,均可再进行数据压缩、编码等后处理过程,进一步减少数据存储及传输量。
本发明中所采用的标记信息处理方法,是追求不论无效栅格像素的分布如何,数量如何,压缩效率完全一样的目标,因此,采用对每像素的标记采用1位来存储,连续32个像素即需要32位即4字节的一整数来记录。这样,就可满足无效栅格像素的随机性分布及数量问题。因而,可以满足实际生产中的栅格数据往往具有大量分散性的无数据值的情况。
为方便技术人员更好理解本申请所述的栅格数据处理方法,下面提供另一个实施例。
DEM(Digi tal Elevation Model:数字高程模型)栅格数据是最基本的基础地理数据,在实际项目中,需要存储及传输中国区域范围内的DEM栅格数据,该栅格数据的分辨率要求为1公里.由测绘部分生产并发布的DEM栅格数据为宽4841像素、高4032像素构成的矩形区域,每个栅格像素的数据类型为4字节的浮点型数值。在该DEM栅格数据发布时,在该矩形区域内且国界线范围外的栅格像素,均已赋值为-999999.9999,其含义是该部分像素属于无效栅格像素(因为全球实际地表高程是没有-999999.9999米这个情况的,所以可用此值来表示该像素是属于无效像素。但不可用0来做为无效栅格像素值,因为实际地表高程是有0米的,无法区分该像素是0米高程还是无效像素)。
在项目中,若用GIS行业中应用较广泛的Arcgis软件的Tif栅格数据文件格式进行存储,则需要的存储空间为Q=4841*4032*4字节,约74M数据量。补充说明:Tif栅格数据文件格式是不区分有效栅格像素与无效栅格像素的典型代表,对所有像素值,采用统一的方式进行存储,这也是目前各类栅格数据存储采用的方法。
按本发明所述方法,得到步骤二中局部有效栅格像素集标记栅格数据DEM_R2,该栅格数据宽为4841像素,高为4032像素,其中,栅格像素值为1的有效栅格像素共9173889个,占总矩形区域像素的47%.然后根据步骤二中的重新分配像素大小与像素值计算,得到局部有效栅格像素集标记栅格数据DEM_R3(与图4类似),该栅格数据的宽为152像素,高为4032像素,每像素用4字节的整数存储,这样,额外需要存储有效栅格像素集标记信息共需要E=152*4032*4字节,约为2.4M数据量;根据步骤三,得到该DEM栅格数据的局部有效栅格像素集的实际像素值串(数据串与图5类似),共有9173889个数值,每个数值为4字节的float型,则共需F=9173889*4字节,约为35M数据量;另外,还需要存储DEM栅格数据的基本信息,包括此DEM栅格数据的像素宽度值、像素高度值、无效栅格像素值及每像素数据类型为float型。由于这些基本信息占用存储空间小于1Kb,可忽略不计算;则,本方法存储该DEM栅格数据共需要E+F=37.4M,相比Tif栅格数据文件格式节约近一半数据量。
对此DEM栅格数据进行网络传输时,与上面的存储方法原理及过程相同,不同的是写入内存,而不是写入文件。
在实际项目中,应用本方法结果证明,栅格数据的存储量及网络传输量得到极大的降低,对系统的性能作出重要贡献。
图7为一种包含局部有效栅格数据的存取装置实施例的结构框图,如图7所示,本发明还公开了一种包含局部有效栅格数据的存取装置实施例,包括:
栅格数据模块,用于存储原始的栅格数据,所述栅格数据中包含栅格数据中包含有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;
栅格数据局部有效像素集的标记模块,用于将所述栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对所述标记栅格数据进行压缩,获得压缩标记栅格数据;
栅格数据局部有效像素集的标记模块包括:
局部有效像素判断判断模块,用于依次判断所述栅格数据中每个像素的取值是否为无效栅格像素的取值;如果是,则调用无效栅格像素判断标记模块,如果不是,则调用局部有效栅格像素判断标记模块;
无效栅格像素标记模块,用于确定所述栅格数据像素的取值为无效栅格像素的取值,并将所述栅格用0标记;
局部有效栅格像素标记模块,用于确定所述栅格数据像素的取值为有效栅格像素,并将所述栅格用1标记;
标记栅格数据生成模块,用于按一定顺序记录所述栅格数据中所有像素的标记,形成标记栅格数据;
标记栅格数据压缩模块,用于将所述标记栅格数据按照每像素占1bit存储空间进行重新分配;按照从所述标记栅格数据的起始数开始连续32位为一组,并将每组32位即4个字节的标记数据取其十进制整数值进行存储的方式压缩,获得压缩标记栅格数据。
局部有效像素集的实际像素值模块,用于将所述栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,丢弃无效栅格像素部分数据的处理,得到有效栅格像素的像素值数据串;
栅格数据的基本信息模块,用于记录所述栅格数据的基本信息,基本信息包括像素宽度、像素高度、无效栅格像素的取值及像素数据类型;
存储模块,用于在应用系统需要对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
读取模块,用于在应用系统需要读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
图8为一种包含局部有效栅格数据的存取装置的读取模块实施例结构框图,如图8所示,读取模块包括:
存储空间分配模块,用于根据所述栅格数据的基本信息中的像素宽度、像素高度、无效栅格像素的取值及像素数据类型,分配与所述栅格数据相应大小的二维矩阵存储空间,初始化所述二维矩阵的每个格子为“未处理状态”;
解压压缩标记栅格数据模块,用于解压所述压缩标记栅格数据,将标记栅格数据赋予所述二维矩阵,在所述二维矩阵中标记出无效栅格像素和局部有效栅格像素的位置;
无效栅格像素填充模块,用于将所述二维矩阵的无效栅格像素的相应位置填入无效栅格像素的取值,并将格子状态设置为“已处理状态”;
局部有效栅格像素填充模块,用于将所述有效栅格像素的像素值数据串按一定顺序填入二维矩阵中“未处理状态”的格子,在接收端得到复原的栅格数据。
以上所述实施步骤和方法仅仅表达了本发明的一种实施方式,描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。在不脱离本发明专利构思的前提下,所作的变形和改进应当都属于本发明专利的保护范围。

Claims (7)

1.一种包含局部有效栅格数据的存取方法,其特征在于:
栅格数据中包含有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;
将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据;
将栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,得到有效栅格像素的像素值数据串;
记录栅格数据的基本信息,基本信息包括像素宽度、像素高度、无效栅格像素的取值及像素数据类型;
当应用系统需要对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
当应用系统需读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
2.根据权利要求1所述一种包含局部有效栅格数据的存取方法,其特征在于,所述将栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对标记栅格数据进行压缩,获得压缩标记栅格数据的步骤包括:
依次判断所述栅格数据中每个像素的取值是否为无效栅格像素的取值;
如果是,则此栅格像素为无效栅格像素,用0标记;
如果不是,则此栅格像素为有效栅格像素,用1标记;
按一定顺序记录所述栅格数据中所有像素的标记,形成标记栅格数据;
将所述标记栅格数据按照每像素占1bit存储空间进行重新分配;
将所述重新分配后的标记栅格数据按照从标记栅格数据的起始数开始连续32位为一组,并将每组32位即4个字节的标记数据取其十进制整数值进行存储的方式压缩,获得压缩标记栅格数据。
3.根据权利要求1所述一种包含局部有效栅格数据的存取方法,其特征在于,
所述根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据的步骤包括:
根据所述栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间;初始化此二维矩阵的每个格子为“未处理状态”;
解压缩所述压缩标记栅格数据,将所述标记栅格数据赋予所述二维矩阵,在所述二维矩阵中标记出无效栅格像素和局部有效栅格像素的位置;
将所述二维矩阵的无效栅格像素的相应位置填入无效栅格像素的取值,并将格子状态设置为“已处理状态”;
再将所述有效栅格像素的像素值数据串按一定顺序填入所述二维矩阵中“未处理状态”的格子,在接收端得到复原的栅格数据。
4.一种包含局部有效栅格数据的存取装置,其特征在于,包括:
栅格数据模块,用于存储原始的栅格数据,所述栅格数据中包含有有效栅格像素和无效栅格像素,无效栅格像素的取值为数据生产商的指定值;
栅格数据局部有效像素集的标记模块,用于将所述栅格数据中的有效栅格像素和无效栅格像素进行标记,生成标记栅格数据;对所述标记栅格数据进行压缩,获得压缩标记栅格数据;
局部有效像素集的实际像素值模块,用于将所述栅格数据中的有效栅格像素的像素值按一定顺序单独进行存储,丢弃无效栅格像素部分数据的处理,得到有效栅格像素的像素值数据串;
栅格数据的基本信息模块,用于记录所述栅格数据的基本信息,基本信息包括像素宽度、像素高度、无效栅格像素的取值及像素数据类型;
存储模块,用于在应用系统需要对栅格数据进行存储时,将所述压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为存储对象,写入文件进行存储;
读取模块,用于在应用系统需要读取存储的栅格数据时,先读取文件中的栅格数据的基本信息,并根据栅格数据的基本信息,分配与所述栅格数据相应大小的二维矩阵存储空间,再根据压缩标记栅格数据和有效栅格像素的像素值数据串对二维矩阵进行处理,得到复原的栅格数据。
5.根据权利要求4所述一种包含局部有效栅格数据的存取装置,其特征在于,
所述栅格数据局部有效像素集的标记模块包括:
局部有效像素判断判断模块,用于依次判断所述栅格数据中每个像素的取值是否为无效栅格像素的取值;如果是,则调用无效栅格像素判断标记模块,如果不是,则调用局部有效栅格像素判断标记模块;
无效栅格像素标记模块,用于确定所述栅格数据像素的取值为无效栅格像素的取值,并将所述栅格用0标记;
局部有效栅格像素标记模块,用于确定所述栅格数据像素的取值为有效栅格像素,并将所述栅格用1标记;
标记栅格数据生成模块,用于按一定顺序记录所述栅格数据中所有像素的标记,形成标记栅格数据;
标记栅格数据压缩模块,用于将所述标记栅格数据按照每像素占1bit存储空间进行重新分配;按照从所述标记栅格数据的起始数开始连续32位为一组,并将每组32位即4个字节的标记数据取其十进制整数值进行存储的方式压缩,获得压缩标记栅格数据。
6.根据权利要求4所述一种包含局部有效栅格数据的存取装置,其特征在于,
所述读取模块包括:
存储空间分配模块,用于根据所述栅格数据的基本信息中的像素宽度、像素高度、无效栅格像素的取值及像素数据类型,分配与所述栅格数据相应大小的二维矩阵存储空间,初始化所述二维矩阵的每个格子为“未处理状态”;
解压压缩标记栅格数据模块,用于解压所述压缩标记栅格数据,将标记栅格数据赋予所述二维矩阵,在所述二维矩阵中标记出无效栅格像素和局部有效栅格像素的位置;
无效栅格像素填充模块,用于将所述二维矩阵的无效栅格像素的相应位置填入无效栅格像素的取值,并将格子状态设置为“已处理状态”;
局部有效栅格像素填充模块,用于将所述有效栅格像素的像素值数据串按一定顺序填入二维矩阵中“未处理状态”的格子,在接收端得到复原的栅格数据。
7.一种包含局部有效栅格数据的传输方法,其特征在于,服务器采用权利要求1至3中的任一种包含局部有效栅格数据的存取方法对栅格数据进行处理,将得到的压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息作为传输对象,进行传输,传送给客户端,客户端对压缩标记栅格数据、有效栅格像素的像素值数据串、栅格数据的基本信息进行相应的存储和读取。
CN201410088639.XA 2014-03-12 2014-03-12 一种包含局部有效栅格数据的存取方法及装置 Expired - Fee Related CN103886045B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410088639.XA CN103886045B (zh) 2014-03-12 2014-03-12 一种包含局部有效栅格数据的存取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410088639.XA CN103886045B (zh) 2014-03-12 2014-03-12 一种包含局部有效栅格数据的存取方法及装置

Publications (2)

Publication Number Publication Date
CN103886045A CN103886045A (zh) 2014-06-25
CN103886045B true CN103886045B (zh) 2017-02-15

Family

ID=50954937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410088639.XA Expired - Fee Related CN103886045B (zh) 2014-03-12 2014-03-12 一种包含局部有效栅格数据的存取方法及装置

Country Status (1)

Country Link
CN (1) CN103886045B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI829098B (zh) 2015-01-02 2024-01-11 美商梅拉洛伊卡公司 細菌組成物
CN107977427B (zh) * 2017-11-28 2021-08-24 鲁东大学 一种分类型栅格数据的存储及读取方法
CN110505218B (zh) * 2019-08-07 2021-11-16 中国电子科技集团公司第二十八研究所 基于json的栅格数据自适应压缩传输方法及计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7880750B2 (en) * 2005-01-06 2011-02-01 Zenographics, Inc. Digital image processing with inherent compression
CN102708109B (zh) * 2012-01-12 2014-05-14 北京地拓科技发展有限公司 栅格数据的读取方法和装置,栅格数据的写入方法和装置
CN102937962B (zh) * 2012-09-17 2016-08-03 北京地拓科技发展有限公司 包含无数据的栅格数据写入及读取的方法及装置

Also Published As

Publication number Publication date
CN103886045A (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
JP7431742B2 (ja) 三次元物体を表すポイントクラウドを符号化/復号する方法及び装置
US9390110B2 (en) Method and apparatus for compressing three-dimensional point cloud data
US9819964B2 (en) Limited error raster compression
CN103336772B (zh) 一种单景影像瓦片数据组织方法
CN102411616B (zh) 一种数据存储方法和系统及数据管理方法
US9877031B2 (en) System and method for multi-resolution raster data processing
CN104704825B (zh) 分段图像数据的无损压缩
CN103136371A (zh) 多源空间数据的剖分标识生成方法以及数据检索方法
CN103886045B (zh) 一种包含局部有效栅格数据的存取方法及装置
US20130294706A1 (en) Limited error raster compression
KR20190025928A (ko) 델타 컬러 압축을 위한 비트 패킹
CN103678657B (zh) 一种地形高程数据存储和读取的方法
CN115460414A (zh) 一种基板管理控制芯片的视频压缩方法、系统及相关组件
CN100591089C (zh) 一种jpeg图像的无损压缩与解压缩方法
CN104268169B (zh) 一种基于ps软件的遥感影像数据快速处理方法
CN112597262A (zh) 一种基于空间网格的行业地址序号生成方法及装置
CN105653694A (zh) 一种北斗报文信息的存储与访问方法
CN108052629A (zh) 一种基于高精度dem数据的快速海陆判断方法
CN109597865B (zh) 基于嵌入式平台的海量地理信息数据的存储与检索方法
CN102867023A (zh) 一种栅格数据的存储、读取方法及装置
CN103915077B (zh) 一种在普通显示设备上显示高动态图像的方法
CN104715070A (zh) 一种大图像文件及生成和读取方法
CN109697693B (zh) 一种实现基于大数据空间运算的方法
CN117579906A (zh) 基于点阵水印的恒等映射方法及相关装置
CN107343203A (zh) 基于open‑exr图像的jpeg无损压缩方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210319

Address after: 518110 Longfa road 428 Huayuan street B24 Huayuan street b23b Longhua Street Longyuan community Longhua Street Longhua District Shenzhen City Guangdong Province

Patentee after: Shenzhen Morning Intellectual Property Operations Co.,Ltd.

Address before: 264001 Hongqi Middle Road, Zhifu District, Yantai, Shandong 186

Patentee before: LUDONG University

Effective date of registration: 20210319

Address after: 201100 room 509, building 2, No. 508, Chundong Road, Minhang District, Shanghai

Patentee after: SHANGHAI TAIYU INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 518110 Longfa road 428 Huayuan street B24 Huayuan street b23b Longhua Street Longyuan community Longhua Street Longhua District Shenzhen City Guangdong Province

Patentee before: Shenzhen Morning Intellectual Property Operations Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170215