本发明专利技术提供了一种包含无数据的栅格数据写入及读取的方法及装置,其中,所述方法包括:按预置大小对所述栅格数据划分栅格块;在栅格数据文件中针对所述栅格块写入相应的数据,具体包括:当所述栅格块为无数据的栅格块时,则针对该栅格块分配第一标识,并按照所述第一标识生成块数据偏移信息;当所述栅格块为有数据的栅格块时,则针对该栅格块分配第二标识以及块数据存储编号,并按照所述第二标识以及块数据存储编号生成块数据偏移信息;根据所述第二标识以及块数据存储编号,写入所述栅格块中各栅格点对应的数据。本发明专利技术可以在栅格数据中包含一定数量无数据栅格块情况下,能高效读取栅格数据并避免存储空间浪费。
【技术实现步骤摘要】
本申请涉及空间数据
,特别是涉及一种包含无数据的栅格数据写入的方法,一种包含无数据的栅格数据写入的装置,一种包含无数据的栅格数据读取的方法,一种包含无数据的栅格数据读取的装置。
技术介绍
栅格数据模型用规则的正方形或者矩形栅格组成,每个栅格点位置由栅格所在的行列号来定义,栅格的数值为栅格所表达的内容的属性值。从这种意义上来讲,栅格数据可以称为“属性明显,位置隐含”空间数据表达方式。每个栅格点代表了实际地表上的一个区域,如果一个栅格点代表的地表区域越小,数据越精确,但是数据量也越大。栅格点的大小通常叫做数据的分辨率(resolution),例如,有两份栅格数据,前者分辨率为250mX250m,那么I平方千米的范围需要用16(4X4)个栅格点来表达;但如果分辨率为IkmX lkm,那么只需要一个栅格点就够了。很明显,前者表达更加精确,但是占用存储空间大。在栅格数据模型中,栅格点的数值含义由用户指定。一般来讲,其含义有两种类型其一,指实际的测量数值,如温度、数字高程模型等;其二,代表某种类别的编码,如土地利用等。这里,就会发生某些栅格点不应该具有数值或者无法得到具体数值的情况,例如,在描述全国土地利用类型的栅格数据模型中,凡是空间范围对应在水面的那些栅格点都不应该具有代表某种土地利用类型的代码值;还有些可能因为自然条件的限制,人类无法测量或得不到该栅格点的具体土地利用类型等情况,或者是在利用卫星获取数据时候,因云雾或其他因素导致结果栅格出现黑色斑块,这些栅格点没有测量到实际数据等。对这些情况的栅格点,我们用“无数据值”来记录该栅格点的数值,在实际应用中,可以用O或者-32768或者-9999999等等表示,方式很灵活,完全由具体的实际应用确定。“无数据栅格块”指的含义是栅格数据中含有大量的“无数据”的栅格点并且分布比较集中,形成空间上的某局部区域全是“无数据”栅格点组成的栅格块,如果按照一般做法,存储每个栅格块的栅格点的数据,则需要大量的存储空间。因此,本领域技术人员要解决的技术问题之一在于对栅格数据中包含一定数量的“无数据栅格块”情况下,提出一种能高效并避免存储空间浪费的栅格数据写入及读取方法。
技术实现思路
本申请所要解决的技术问题是提供一种包含无数据的栅格数据写入的方法及装置,以及,一种包含无数据的栅格数据读取的方法及装置。用以在栅格数据中包含一定数量的无数据栅格块时,能高效读取栅格数据并避免存储空间浪费。为了解决上述问题,本申请公开了一种包含无数据的栅格数据写入的方法,所述栅格数据包括M*N个栅格点,所述M为行,N为列,包括按预置大小对所述栅格数据划分栅格块;在栅格数据文件中针对所述栅格块写入相应的数据,具体包括当所述栅格块为无数据的栅格块时,则针对该栅格块分配第一标识,并按照所述第一标识生成块数据偏移信息;当所述栅格块为有数据的栅格块时,则针对该栅格块分配第二标识以及块数据存储编号,并按照所述第二标识以及块数据存储编号生成块数据偏移信息;根据所述第二标识以及块数据存储编号,写入所述栅格块中各栅格点对应的数据。优选地,所述栅格块的大小为m*n个栅格点,所述为m行,η为列;所述按预置大小对栅格数据划分栅格块的步骤包括当M不能整除m时,则补充对应栅格数据的行数令M能整除m ;当N不能整除η时,则补充对应栅格数据的列数令N能整除η。·优选地,所述方法还包括将所述栅格数据的基本信息写入栅格数据文件,所述栅格数据的基本信息包括栅格块的大小。优选地,所述根据所述第二标识以及块数据存储编号,写入所述栅格块中各栅格点对应的数据的步骤包括读取栅格块对应的块数据偏移信息中的块数据存储编号以及基本信息中栅格块的大小;依据所述块数据存储编号以及栅格块的大小计算得出所述栅格块的实际存储起始位;从所述实际存储起始位写入所述栅格块中各栅格点对应的数据。优选地,所述方法还包括在将有数据的栅格块修改为无数据的栅格块时,则在所述有数据栅格块对应的块数据偏移信息中,将第二标识修改为第一标识,并添加第三标识,保留该栅格块原有数据所占的存储空间。优选地,所述方法还包括在针对在先为有数据栅格块,被修改为无数据的栅格块中写入新数据时,在所述无数据栅格块的块数据偏移信息中,将第一标识修改为第二标识,将新数据写入保留的存储空间中。优选地,所述方法还包括在无数据的栅格块中写入数据时,则对所述栅格块分配相应大小的存储空间,针对该栅格块对应的块数据偏移信息中添加块数据存储编号并将第一标识修改为第二标识。本申请实施例还公开了一种包含无数据的栅格数据读取的方法,栅格数据文件中包含基本信息,块数据偏移信息,以及有数据的栅格块中各栅格点对应的数据;其中,所述基本信息包括栅格块的大小;所述块数据偏移信息中包含第二标识以及块数据存储编号;所述方法包括获取栅格块对应的块数据偏移信息以及基本信息中栅格块的大小;判断所述栅格块对应的块数据偏移信息中是否为第二标识;若为第二标识,则依据所述块数据偏移信息中的块数据存储编号以及栅格块的大小,计算解析得到该栅格块的实际存储起始位;从所述实际存储起始位读取所述栅格块中各栅格点对应的数据。本申请实施例还公开了一种包含无数据的栅格数据写入的装置,所述栅格数据包括M*N个栅格点,所述M为行,N为列,包括栅格数据划分模块,用于按预置大小对所述栅格数据划分栅格块;栅格数据写入模块,用于在栅格数据文件中针对所述栅格块写入相应的数据,具体包括无数据栅格块处理子模块,用于当所述栅格块为无数据的栅格块时,则针对该栅格块分配第一标识,并按照所述第一标识生成块数据偏移信息;有数据栅格块处理子模块,用于当所述栅格块为有数据的栅格块时,则针对该栅格块分配第二标识以及块数据存储编号,并按照所述第二标识以及块数据存储编号生成块数据偏移信息;栅格块数据写入子模块,用于根据所述第二标识以及块数据存储编号,写入所述栅格块中各栅格点对应的数据。优选地,所述栅格块的大小为m*n个栅格点,所述为m行,η为列;所述栅格数据划分模块包括栅格数据行补充子模块,用于当M不能整除m时,则补充对应栅格数据的行数令M能整除m ;栅格数据列补充子模块,用于当N不能整除η时,则补充对应栅格数据的列数令N能整除η。 优选地,所述装置还包括基本信息写入模块,用于将所述栅格数据的基本信息写入栅格数据文件,所述栅格数据的基本信息包括栅格块的大小。优选地,所述栅格块数据写入子模块包括块数据偏移信息读取子模块,用于读取栅格块对应的块数据偏移信息中的块数据存储编号以及基本信息中栅格块的大小;存储起始位计算子模块,用于依据所述块数据存储编号以及栅格块的大小计算得出所述栅格块的实际存储起始位;栅格块数据写入子模块,用于从所述实际存储起始位写入所述栅格块中各栅格点对应的数据。优选地,其特征在于,所述装置还包括第一修改模块,用于在将有数据的栅格块修改为无数据的栅格块时,则在所述有数据栅格块对应的块数据偏移信息中,将第二标识修改为第一标识,并添加第三标识,保留该栅格块原有数据所占的存储空间。优选地,所述装置还包括第二修改模块,用于在针对在先为有数据栅格块,被修改为无数据的栅格块中写入新数据时,在所述无数据栅格块的块数据偏移信息中,将第一标识修改为第二标识,将新数据写入保留的存储空间中。 优选地本文档来自技高网...
【技术保护点】
一种包含无数据的栅格数据写入的方法,其特征在于,所述栅格数据包括M*N个栅格点,所述M为行,N为列,包括:按预置大小对所述栅格数据划分栅格块;在栅格数据文件中针对所述栅格块写入相应的数据,具体包括:当所述栅格块为无数据的栅格块时,则针对该栅格块分配第一标识,并按照所述第一标识生成块数据偏移信息;当所述栅格块为有数据的栅格块时,则针对该栅格块分配第二标识以及块数据存储编号,并按照所述第二标识以及块数据存储编号生成块数据偏移信息;根据所述第二标识以及块数据存储编号,写入所述栅格块中各栅格点对应的数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:孙成宝,郑国柱,
申请(专利权)人:北京地拓科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。