栅格因子数据写入的方法及装置、读取的方法及装置制造方法及图纸

技术编号:8271437 阅读:222 留言:0更新日期:2013-01-31 03:39
本申请提供了一种栅格因子数据写入的方法及装置、读取的方法及装置,其中,所述栅格因子数据写入的方法包括:步骤S101,获取原始栅格因子数据;步骤S102,提取3个连续栅格因子单元的值;步骤S103,判断栅格因子单元的值小数点后的位数是否为5位,若是,则执行步骤105;若否,则执行步骤S104;步骤S104,将栅格因子单元的值小数点后的位数处理为5位;步骤S105,将3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数;步骤S106,判断是否遍历完,若是,则执行步骤S107;若否,则返回步骤S102;步骤S107,将双精度型数组织为目标栅格因子数据,写入目标栅格因子数据。本申请可以提高栅格因子数据存储与传输的效率,提高计算性能。

【技术实现步骤摘要】
本申请涉及栅格因子数据处理的
,特别是涉及到一种栅格因子数据的写入方法,一种栅格因子数据的写入装置,一种栅格因子数据的读取方法,以及,一种栅格因子数据的读取装置。
技术介绍
栅格数据用一个规则栅格来描述与每一个栅格单元位置相对应的空间现象特征的位置和取值。在概念上空间现象的变化由栅格单元值的变化来反映。GIS(GeographicInformation System,地理信息系统)系统中许多数据都用栅格格式来表示。栅格数据模型在GIS系统中也被称为栅格(Grid)、栅格地图、表面覆盖(Surface Cover)或影像。栅格由行、列、栅格单元组成。行、列由栅格左上角起始。在二维坐标系统中,行作为y坐标、列作为X坐标。在这点上与纬度作为I坐标、经度作为X坐标有点类似。 栅格数据用单个栅格单元代表点、用一系列相邻栅格单元代表线、邻接栅格的集合代表面。栅格中的每一个栅格单元有一个值,整型或浮点型。整型栅格单元值通常代表类别数据。比如,土地类型常用I代表城市用地、2代表林地等。浮点型栅格单元值常表示连续数据,比如,降水量模型可能有20、15、12、23等降水量值。浮点型栅格比整型栅格需要更多的计算机存储资源,这是涉及大范围的GIS系统项目必须考虑的一个重要因素。假设栅格数据是由M行N列个栅格单元组成,每个栅格单元都存储浮点型数据。若用普通方法,每个栅格单元用4字节进行存储,则需要M*N*4个字节,这样所需的存储空间非常大,这对系统的存储、性能,以及网络的传输效率都要求很高。由于GIS等系统中数据量巨大,存储这种浮点型栅格因子数据所需的存储空间相当庞大,传输这种浮点型栅格因子数据的资源耗费大,系统的计算处理处理效率低。如何减少浮点型栅格因子数据所需的存储空间,提高浮点型栅格因子数据存储与传输的效率,提高计算性能,是目前需要本领域技术人员迫切解决的技术问题。
技术实现思路
本申请所要解决的技术问题是提供一种栅格因子数据写入的方法及装置,栅格因子数据读取的方法及装置,用以减少栅格数据所需的存储空间,提高浮点型栅格因子数据存储与传输的效率,提高计算性能。为了解决上述问题,本申请公开了一种栅格因子数据写入的方法,包括步骤S101,获取原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数;步骤S102,从所述M*N个栅格因子单元中依次提取3个连续栅格因子单元的值;步骤S103,判断所述3个连续栅格因子单元的值小数点后的位数是否为5位,若是,则执行步骤105 ;若否,则执行步骤S104 ;步骤S104,将所述栅格因子单元的值小数点后的位数处理为5位;步骤S105,将所述3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数;步骤S106,判断是否遍历完所述M*N个栅格因子单元,若是,则执行步骤S107 ;若否,则返回步骤S102 ;步骤S107,将所述双精度型数组织为目标栅格因子数据,写入所述目标栅格因子数据。优选地,在所述步骤S102之后,还包括如下步骤若从所述M*N个栅格因子单元中提取到3-K个连续栅格因子单元,则补充K个第一特征值,其中,所述K为大于O且小于3的正整数。 优选地,所述步骤S104包括若所述栅格因子单元的值小数点后的位数大于5位,则舍弃栅格因子单元的值小数点5位后的数字;若所述栅格因子单元的值小数点后的位数小于5位,则在栅格因子单元的值后补充第二特征值,使小数点后的位数为5位。优选地,所述方法还包括当所述栅格因子单元的取值为I时,将该取值替换为O. 99999 ;当所述栅格因子单元的取值为O时,将该取值替换为O. 00000。本申请实施例还公开了一种栅格因子数据写入的装置,包括原始栅格因子数据获取模块,用于获取原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数;栅格因子单元的值提取模块,用于从所述M*N个栅格因子单元中依次提取3个连续栅格因子单元的值;位数判断模块,用于判断所述3个连续栅格因子单元的值小数点后的位数是否为5位,若是,则调用目标栅格因子数据形成模块;若否,则调用位数处理模块;位数处理模块,用于将所述栅格因子单元的值小数点后的位数处理为5位;目标栅格因子数据形成模块,用于将所述3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数;判断模块,用于判断是否遍历完所述M*N个栅格因子单元,若是,则调用目标栅格因子数据写入模块;若否,则返回栅格因子单元的值提取模块;目标栅格因子数据写入模块,用于将所述双精度型数组织为目标栅格因子数据,写入所述目标栅格因子数据。优选地,在所述栅格因子单元的值提取模块之后,还包括如下模块补充模块,用于若从所述M*N个栅格因子单元中提取到3-K个连续栅格因子单元,则补充K个第一特征值,其中,所述K为大于O且小于3的正整数。优选地,所述位数处理模块包括舍弃子模块,用于若所述栅格因子单元的值小数点后的位数大于5位,则舍弃栅格因子单元的值小数点5位后的数字;补充子模块,用于若所述栅格因子单元的值小数点后的位数小于5位,则在栅格因子单元的值后补充第二特征值,使小数点后的位数为5位。优选地,所述装置还包括第一替换模块,用于在所述栅格因子单元的取值为I时,将该取值替换为O.99999 ;第二替换模块,用于在所述栅格因子单元的取值为O时,将该取值替换为O.00000。本申请实施例还公开了一种栅格因子数据读取的方法,包括步骤S201,读取目标栅格因子数据;其中,所述目标栅格因子数据由小数点后为15位的双精度型数组成;步骤S202,依次解析目标栅格因子数据中的栅格因子单元的值,将目标栅格因子 数据小数点后的数字按序分为3组,每组5位,形成小数点后为5位的3个连续的栅格因子单元的值。步骤S203,判断是否遍历完所述目标栅格因子数据,若是,则执行步骤S204 ;若否,则返回步骤S202 ;步骤S204,按序组织所述栅格因子单元的值,获得原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数。本申请实施例还公开了一种栅格因子数据读取的装置,包括目标栅格因子数据读取模块,用于读取目标栅格因子数据;其中,所述目标栅格因子数据由小数点后为15位的双精度型数组成;目标栅格因子数据解析模块,用于依次解析目标栅格因子数据中的栅格因子单元的值,将目标栅格因子数据小数点后的数字按序分为3组,每组5位,形成小数点后为5位的3个连续的栅格因子单元的值。遍历判断模块,用于判断是否遍历完所述目标栅格因子数据,若是,则调用原始栅格因子数据获取模块;若否,则返回目标栅格因子数据解析模块;原始栅格因子数据获取模块,用于按序组织所述栅格因子单元的值,获得原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数。与现有技术相比,本申请包括以下优点本申请对于栅格因子单元的值分布在O到I之间的栅格因子数据,将原始栅格因子数据依次提取3个本文档来自技高网
...

【技术保护点】
一种栅格因子数据写入的方法,其特征在于,包括:步骤S101,获取原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为0到1之间的浮点型数;步骤S102,从所述M*N个栅格因子单元中依次提取3个连续栅格因子单元的值;步骤S103,判断所述3个连续栅格因子单元的值小数点后的位数是否为5位,若是,则执行步骤105;若否,则执行步骤S104;步骤S104,将所述栅格因子单元的值小数点后的位数处理为5位;步骤S105,将所述3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数;步骤S106,判断是否遍历完所述M*N个栅格因子单元,若是,则执行步骤S107;若否,则返回步骤S102;步骤S107,将所述双精度型数组织为目标栅格因子数据,写入所述目标栅格因子数据。

【技术特征摘要】
1.一种栅格因子数据写入的方法,其特征在于,包括 步骤S101,获取原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数; 步骤S102,从所述M*N个栅格因子单元中依次提取3个连续栅格因子单元的值; 步骤S103,判断所述3个连续栅格因子单元的值小数点后的位数是否为5位,若是,则执行步骤105 ;若否,则执行步骤S104 ; 步骤S104,将所述栅格因子单元的值小数点后的位数处理为5位; 步骤S105,将所述3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数; 步骤S106,判断是否遍历完所述M*N个栅格因子单元,若是,则执行步骤S107 ;若否,则返回步骤S102 ; 步骤S107,将所述双精度型数组织为目标栅格因子数据,写入所述目标栅格因子数据。2.根据权利要求I所述的方法,其特征在于,在所述步骤S102之后,还包括如下步骤 若从所述M*N个栅格因子单元中提取到3-K个连续栅格因子单元,则补充K个第一特征值,其中,所述K为大于O且小于3的正整数。3.根据权利要求I或2所述的方法,其特征在于,所述步骤S104包括 若所述栅格因子单元的值小数点后的位数大于5位,则舍弃栅格因子单元的值小数点5位后的数字; 若所述栅格因子单元的值小数点后的位数小于5位,则在栅格因子单元的值后补充第二特征值,使小数点后的位数为5位。4.根据权利要求I所述的方法,其特征在于,还包括 当所述栅格因子单元的取值为I时,将该取值替换为O. 99999 ; 当所述栅格因子单元的取值为O时,将该取值替换为O. 00000。5.一种栅格因子数据写入的装置,其特征在于,包括 原始栅格因子数据获取模块,用于获取原始栅格因子数据;所述原始栅格因子数据包括M*N个栅格因子单元,所述M为行,N为列,所述M*N个栅格因子单元的取值为O到I之间的浮点型数; 栅格因子单元的值提取模块,用于从所述M*N个栅格因子单元中依次提取3个连续栅格因子单元的值; 位数判断模块,用于判断所述3个连续栅格因子单元的值小数点后的位数是否为5位,若是,则调用目标栅格因子数据形成模块;若否,则调用位数处理模块; 位数处理模块,用于将所述栅格因子单元的值小数点后的位数处理为5位; 目标栅格因子数据形成模块,用于将所述3个连续栅格因子数据的值小数点后的数字按序排列,形成一个小数点后为15位的双精度型数; 判断模块,用于判断是否遍历完所述M*N个栅格因子单元,若是,则调用目标栅格因子数据写...

【专利技术属性】
技术研发人员:孙成宝郑国柱
申请(专利权)人:北京地拓科技发展有限公司
类型:发明
国别省市:

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

1