基于特征点数据的海量影像地图缩减存储方法
2014-11-10龚发芽
龚发芽
摘 要:在海量影像地图的应用中,数据的存储、更新和利用都是比较难以解决的问题,本文以全国特征点数据为基础,自动挖掘出全国范围的重要位置区域,并进行结构化处理,然后以此数据为依据,提供任意位置在各种比例尺下的地图重要性判断方法,根据此方法,可选择性的存储和更新“重要”影像数据,达到数据缩减存储、快速更新和高效访问的目的。
关键词:海量遥感影像 缩减存储 瓦片地图 高并发访问
中图分类号:P282 文献标识码:A 文章编号:1672-3791(2014)05(b)-0031-02
随着遥感技术的发展,影像地图应用的日益增多,在全国级的海量影像地图应用中,数据的存储、管理和更新是业界一直比较关注的热点问题。当前很多应用会采用分块分层结构对影像地图数据进行切割处理,然后分块调用[1],可以明显加快显示速度,下文称此技术产生的地图为瓦片地图。在这种瓦片地图应用过程中,本文提出了一种基于特征点数据分布的海量影像地图缩减存储方法,并以瓦片影像地图的应用为实例进行验证,该方法可以有效缩减90%以上的地图存储量,在此基础上,本文还分析了数据快速更新机制、适用于高并发的多级数据存储策略等海量地图应用关键技术的可行性。
1 影像数据组织方式
本文以瓦片式影像地图的应用作为实例,来验证该缩减压缩方法的有效性,故此先简述瓦片地图的组织结构以及数据存储量的计算方法。
1.1 金字塔式瓦片存储组织结构
瓦片式电子地图是当前比较流行的地图服务形式,其采用金字塔结构,对影像地图进行分层和分块的划分。按照既定的多层比例尺,把每一个比例尺的整幅影像地图切割为256×256像素或者512×512像素的小幅图片(通常称为瓦片),地图引擎再采用相应的算法,把这些小幅图片组织起来,显示到客户端界面。瓦片的结构图如图1所示[2]。
1.2 影像地图数据总量计算
假设切图方式采用现在流行的WEB墨卡托投影切片方式,即横向和竖向的瓦片数量一致,则可知每个地图级别n的瓦片数量为2n×2n,0~18级瓦片地图的总数据量及存储空间见表1所示[3](通常情况下,影像瓦片地图平均大小为10 KB)。
以上为全球的瓦片地图总数据量,如果按中国大陆的区域进行计算,0~18级的数据总量大约为1994965244×10/1024/1024/1024=18.58T。
2 影像地图智能缩减存储方法
下面以全国特征点数据为基础,详述如何从中挖掘出重要区域信息,然后采用合适的高效算法,判断某个位置的瓦片地图是否是重要地图,继而选择性的存储,保证存储的瓦片地图都位于比较重要的位置。并且根据某个位置区域的特征点数据的密度,自动判断某个比例尺下的某个瓦片是否为重要地图,可针对每个比例尺进行地图重要性判断,从而大大缩减了重要地图的数量,达到地图智能缩减存储的目的。
2.1 挖掘重要区域信息
首先对全国特征点数据进行网格划分,划分依据为14级瓦片地图的切割方法,统计每个网格内的数据量,并根据数据量的多少,计算当前网格的重要程度,基于此重要程度,判断当前网格所处的区域是否为重要区域,并且根据重要程度的高低,判断后续的15~18级地图是否为重要地图。
选择14级作为基准参考级别也是有所考虑的,14级网格数量约为596.7万,若按15级或更大级别划分,就容易因网格数量过大,降低后期数据判断的运算速度。并且因为本重要程度数据本身只是参考数据,并不一定代表实际情况,所以,过于要求数据的精准度,并不一定达到更好的实际使用效果。
该分析方法具有通用性,当特征点数据更新时,可快速的更新此重要区域信息,为后续的判断提供新的依据。
2.2 基于重要区域信息的缩减存储方法
按照上一步挖掘出的重要区域信息,判断任意瓦片地图是否为重要地图,简单的判断依据为:
(1)小于14级,认为全部是重要地图。
(2)14级,当网格内数量大于0,则认为是重要地图。
(3)14级以上时,假设当前级别为level,先找到当前瓦片在14级所在的瓦片网格的位置,获取此网格的数据量n,判断当n>=4level-14时,认为此瓦片为重要地图。
(4)循环所有瓦片地图,即可知道那些为重要地图。
在地图存储时,就可以仅存储重要地图,达到缩减存储的目的。
考虑到特征点数据可能出现缺失,以及尽可能为重要地图区域显示更多的缓冲区域,并且重要地图周边一定范围的地图访问量也会是比较高的,所以可对上述判断依据做进一步的优化,以便更好的适用实际情况,可能包含以下优化方法:
(1)重要地图周边N块网格的地图都认为是重要地图,N>=1,具体数值可根据实际情况设置。
(2)每个网格的权重不简单的按照其中的特征点数量,而是参考周边网格的权重进行综合计算,可有效的建立重要地图的周边缓冲带,达到更好的显示效果。
优化后可达到更好的显示效果,但也会带来存储量的增加,需根据实际情况选用。
3 应用实例
本文以中国大陆的影像地图为例,使用本文的数据缩减方法对海量瓦片影像数据进行缩减存储处理。
首先,对全国2000余万条特征点数据进行挖掘分析,计算出重要区域,然后通过此重要区域以及相关算法,判断每个瓦片是否为重要地图,计算结果如表2所示。
全部级别数据量之和为17176348张瓦片,总存储空间约为163.8G,相比没有缩减之前的18.58T的数据存储空间,缩减比例达99.14%。
因影像瓦片地图色彩都比较丰富,重要和非重要区域的地图图片大小差别并不是很大,由实际的存储容量就可以看得出来,所以使用理论上的瓦片数据的比例作为存储空间的缩减比例,是具有一定的参考价值的。endprint
从部署和更新时间上考虑,163.8GB的瓦片地图数据进行切片、压缩、打包、上传、解压等完整步骤,在单台普通计算机上只需要20天左右的时间,如果使用多台机器进行任务分解操作,基本上可满足快速更新部署的需求。
4 基于重要区域信息的扩展应用
4.1 地图快速更新
如果有新的影像地图数据产生,可优先对重要区域内的地图数据进行处理,达到数据快速更新的目的。
4.2 提升并发性能
众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此,在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦[4]。海量瓦片地图就是这样的情况,图片数据可达数十亿张以上,如果没有比较好的存储策略,在高并发访问时,文件IO势必成为系统瓶颈。当前比较简单且有效的方法是将访问频率较高或者随机读写比例较高的数据文件放在固态硬盘SSD上,而将访问频率较低或者顺序读写比例较高的数据文件存放在机械硬盘上[5]。
根据本文提出的数据缩减方法,就可以把重要地图放置在SSD硬盘上,把剩余的地图放置在机械硬盘上,可大大提升高并发时的地图访问速度。并且根据当前主流的存储器价格数据,SSD存储的价格大约是SATA盘的10~20倍,昂贵的高速存储器只有比较小的存储空间,把访问量高的数据放在高速存储上,访问量低的数据放在低速存储上,也可以达到节约成本的目的。总之,使用本文的数据缩减存储方法,可达到节约成本、提高并发访问性能的目的。
4.3 原理通用性
本缩减方法,还可适用于平面地图、地形图等各种瓦片地图或者其他地图数据的存储策略,便于对访问需求量比较高的“重要地图”进行优先考虑。
5 结语
本文提出的海量影像地图数据缩减存储方法,可有效的降低数据存储量,特别是当数据有多机备份时,具有非常明显的效果;进一步,基于此方法产生的重要区域信息数据,本文还提出了其可能的一些扩展应用,例如解决数据多级存储、高并发访问、成本控制以及快速更新部署的问题。
参考文献
[1] 王华斌,唐新明,李黔湘.海量遥感影像数据存储管理技术研究与实现[J].测绘科学,2008,33(6):156-157.
[2] 宋江洪,赵忠明.图像分块分层结构在海量数据处理中的应用[J].计算机工程与应用,2004(33).
[3] 许辉,马晓鹏.基于WEB墨卡托投影地理信息系统设计与实现[J].电脑编程技巧与维护,2011(8).
[4] 章文嵩.揭秘淘宝286亿海量图片存储与处理架构[EB/OL].http://storage.it168.com/a2010/0829/1096/000001096373_all.shtml,2010.
[5] 李俊杰.面向海量存储系统的分层存储技术研究[D].华南理工大学,2013.endprint
从部署和更新时间上考虑,163.8GB的瓦片地图数据进行切片、压缩、打包、上传、解压等完整步骤,在单台普通计算机上只需要20天左右的时间,如果使用多台机器进行任务分解操作,基本上可满足快速更新部署的需求。
4 基于重要区域信息的扩展应用
4.1 地图快速更新
如果有新的影像地图数据产生,可优先对重要区域内的地图数据进行处理,达到数据快速更新的目的。
4.2 提升并发性能
众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此,在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦[4]。海量瓦片地图就是这样的情况,图片数据可达数十亿张以上,如果没有比较好的存储策略,在高并发访问时,文件IO势必成为系统瓶颈。当前比较简单且有效的方法是将访问频率较高或者随机读写比例较高的数据文件放在固态硬盘SSD上,而将访问频率较低或者顺序读写比例较高的数据文件存放在机械硬盘上[5]。
根据本文提出的数据缩减方法,就可以把重要地图放置在SSD硬盘上,把剩余的地图放置在机械硬盘上,可大大提升高并发时的地图访问速度。并且根据当前主流的存储器价格数据,SSD存储的价格大约是SATA盘的10~20倍,昂贵的高速存储器只有比较小的存储空间,把访问量高的数据放在高速存储上,访问量低的数据放在低速存储上,也可以达到节约成本的目的。总之,使用本文的数据缩减存储方法,可达到节约成本、提高并发访问性能的目的。
4.3 原理通用性
本缩减方法,还可适用于平面地图、地形图等各种瓦片地图或者其他地图数据的存储策略,便于对访问需求量比较高的“重要地图”进行优先考虑。
5 结语
本文提出的海量影像地图数据缩减存储方法,可有效的降低数据存储量,特别是当数据有多机备份时,具有非常明显的效果;进一步,基于此方法产生的重要区域信息数据,本文还提出了其可能的一些扩展应用,例如解决数据多级存储、高并发访问、成本控制以及快速更新部署的问题。
参考文献
[1] 王华斌,唐新明,李黔湘.海量遥感影像数据存储管理技术研究与实现[J].测绘科学,2008,33(6):156-157.
[2] 宋江洪,赵忠明.图像分块分层结构在海量数据处理中的应用[J].计算机工程与应用,2004(33).
[3] 许辉,马晓鹏.基于WEB墨卡托投影地理信息系统设计与实现[J].电脑编程技巧与维护,2011(8).
[4] 章文嵩.揭秘淘宝286亿海量图片存储与处理架构[EB/OL].http://storage.it168.com/a2010/0829/1096/000001096373_all.shtml,2010.
[5] 李俊杰.面向海量存储系统的分层存储技术研究[D].华南理工大学,2013.endprint
从部署和更新时间上考虑,163.8GB的瓦片地图数据进行切片、压缩、打包、上传、解压等完整步骤,在单台普通计算机上只需要20天左右的时间,如果使用多台机器进行任务分解操作,基本上可满足快速更新部署的需求。
4 基于重要区域信息的扩展应用
4.1 地图快速更新
如果有新的影像地图数据产生,可优先对重要区域内的地图数据进行处理,达到数据快速更新的目的。
4.2 提升并发性能
众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此,在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦[4]。海量瓦片地图就是这样的情况,图片数据可达数十亿张以上,如果没有比较好的存储策略,在高并发访问时,文件IO势必成为系统瓶颈。当前比较简单且有效的方法是将访问频率较高或者随机读写比例较高的数据文件放在固态硬盘SSD上,而将访问频率较低或者顺序读写比例较高的数据文件存放在机械硬盘上[5]。
根据本文提出的数据缩减方法,就可以把重要地图放置在SSD硬盘上,把剩余的地图放置在机械硬盘上,可大大提升高并发时的地图访问速度。并且根据当前主流的存储器价格数据,SSD存储的价格大约是SATA盘的10~20倍,昂贵的高速存储器只有比较小的存储空间,把访问量高的数据放在高速存储上,访问量低的数据放在低速存储上,也可以达到节约成本的目的。总之,使用本文的数据缩减存储方法,可达到节约成本、提高并发访问性能的目的。
4.3 原理通用性
本缩减方法,还可适用于平面地图、地形图等各种瓦片地图或者其他地图数据的存储策略,便于对访问需求量比较高的“重要地图”进行优先考虑。
5 结语
本文提出的海量影像地图数据缩减存储方法,可有效的降低数据存储量,特别是当数据有多机备份时,具有非常明显的效果;进一步,基于此方法产生的重要区域信息数据,本文还提出了其可能的一些扩展应用,例如解决数据多级存储、高并发访问、成本控制以及快速更新部署的问题。
参考文献
[1] 王华斌,唐新明,李黔湘.海量遥感影像数据存储管理技术研究与实现[J].测绘科学,2008,33(6):156-157.
[2] 宋江洪,赵忠明.图像分块分层结构在海量数据处理中的应用[J].计算机工程与应用,2004(33).
[3] 许辉,马晓鹏.基于WEB墨卡托投影地理信息系统设计与实现[J].电脑编程技巧与维护,2011(8).
[4] 章文嵩.揭秘淘宝286亿海量图片存储与处理架构[EB/OL].http://storage.it168.com/a2010/0829/1096/000001096373_all.shtml,2010.
[5] 李俊杰.面向海量存储系统的分层存储技术研究[D].华南理工大学,2013.endprint