一种栅格数据切片生成的方法及系统的制作方法

文档序号:9327016阅读:558来源:国知局
一种栅格数据切片生成的方法及系统的制作方法
【技术领域】
[0001]本发明涉及地理信息领域,具体涉及一种栅格数据切片生成的方法及系统。
【背景技术】
[0002]地图瓦片是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。常见的谷歌地图瓦片就是一种典型的地图瓦片,其表示的范围是经度-180度到180度,玮度-85度到85度的范围,采用的是Web墨卡托地图投影。凡是采用谷歌地图瓦片的切片模型的在线地图,都可以看成是谷歌地图瓦片的一个实例。中国地区的谷歌地图瓦片有21个级别。任意一个级别表示的地理范围是一致的,第O级只有一张256X256大小的地图切片,第I级的行列瓦片数均是第O级的两倍,因此有四张256X256大小的切片,依次类推。第20级拥有1048576X1048576张切片,数量非常庞大。如果需要存储这么多切片,并且一张切片的平均大小按照15KB来计算,则需要15360TB的存储空间。这么庞大的数据量,生成一次是需要很长时间的。但为了网络地图发布的需要,花费较长时间生成切片又是值得的。目前在常见的网络地图发布服务商中,只有谷歌地图的切片数据是最丰富最完整最全面的。谷歌地图的最大切片级别往往比其他服务商的切片级别高上很多,例如在中国地区,它比百度地图提供的影像地图服务就要高上两个级别。一个级别是4倍的数据量,两个级别就是16倍的数据量。级别的提升,意味着生成时间和存储量的提高。在现今科学日益发达,计算机技术更加先进的时代,信息的及时更新是很重要的。如果地图数据更新周期太长,则反映不了现今的一些地理数据变化。而卫星影像数据,包括航拍的数据处理和更新时间并不长,很有可能很快就有局部甚至全部更新地图瓦片的需求。因此,高效率、高稳定性、高准确度和高数据容量的地图瓦片生成机制是很有必要的。现今常用的地图瓦片生成技术,已知的就是按照顺序对单个图片出图,或者是按照数据划分来使用服务器集群来对地图区域出图。但是这些技术没有充分利用计算机性能;或者是配置麻烦,需要专业的知识来操作;或者虽然是利用了服务器集群来计算,但没有充分发挥出服务器的性能以及集群计算的优势;或者是数据划分和更新没有统一的机制,需要利用人工来指定数据的配置和进行监控。

【发明内容】

[0003]本发明所要解决的技术问题是提供一种具有性能优良、更加方便快捷、支持数据量更大的栅格数据切片生成方法及系统。
[0004]本发明解决上述技术问题的技术方案如下:一种栅格数据切片生成的方法,包括以下步骤,
[0005]SI,设置切片参数;
[0006]S2,遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
[0007]S3,按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
[0008]S4,根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片。
[0009]在上述技术方案的基础上,本发明还可以做如下改进。
[0010]进一步,在步骤S2中所述切片任务所需要的数据包括文件的相对路径、文件表示的地理范围、分辨率大小;
[0011]所述R树索引建立的方法为,首先将筛选出数据的文件的相对路径、文件表示的地理范围和分辨率的大小信息存储起来形成一个文件信息数组,并统计所有文件的地理范围的并集,然后将文件信息数组中的地理范围与所有文件信息数组中的地理范围建立R树索引。
[0012]进一步,在步骤S3中,确定单次栅格数据切片任务所需覆盖的地理范围的方法为,根据筛选的任务切片所需要的数据中的文件表示的地理范围数据和最大级别的栅格数据的分辨率来确定单次栅格数据切片任务所需覆盖的地理范围。
[0013]进一步,在步骤S4中,循环进行切片任务生成栅格数据切片的方法包括以下步骤,
[0014]S41,根据单次栅格数据切片任务覆盖的地理范围查询R树索引,找出用于本次任务切片的数据文件;
[0015]S42,将本次任务切片的数据文件与当前需要覆盖的地理范围进行求交,得到需要读取的文件数据范围;
[0016]S43,对需要读取的文件数据范围进行两两求差,得到每个文件读取数据范围的结果;
[0017]S44,对每个文件读取数据范围的结果进行分割形成矩形区域数据,并为每个矩形区域数据分配数据内存块;
[0018]S45,根据读取任务读取指定范围的矩形区域中的数据,并将读取的数据存储在相对应的数据内存块P中,并将数据内存块P的地址存储在预先分配的且存储有最大级别的切片数据结果的数据内存M中;
[0019]S46,使用并行的方法,以行为单位通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据;
[0020]S47,在数据内存M完成数据读取任务后,删除数据内存块P中读取过的相对应内存数据,并开始生成数据内存M中最大级别的栅格数据切片;
[0021 ] S48,根据数据内存M中的数据和数据内存块P中没有读取过的内存循环生成下一级的栅格数据切片。
[0022]进一步,在步骤S43中,对需要读取的文件数据范围进行两两求差的方法为,使用最高分辨率的数据文件范围依次减去低分辨率数据文件范围,得到每个文件读取数据范围的结果。
[0023]进一步,在步骤S45中,指定范围的矩形区域中数据的读取是以队列的方式加入到读取任务中来的。
[0024]进一步,在步骤S46中,通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据的方法为,通过查找数据内存M中的栅格点,再计算栅格点投影到数据内存块P中的相对坐标,根据相对坐标读取数据内存块P中的数据;若设定的输出切片的投影和当前使用的数据文件投影相同,则无需进行投影转换。
[0025]进一步,还包括栅格数据切片压缩,所述栅格数据切片压缩的方法为将需要压缩的栅格数据切片的内存的地址传入到数据压缩线程进行压缩处理。
[0026]进一步,还包括栅格数据切片的写入,将栅格数据切片内存的地址传入到写入线程队列中,由写入线程负责写入。
[0027]本发明的有益效果是:本发明一种栅格数据切片生成的方法,充分利用了多核计算机的优势,采用自动通信的方式进行协商,厘清任务,无需人工再去配置,并且自动计算好任务模型,充分发挥局域网并行计算的优势;同时本发明还对数据划分和更新有一套统一的机制,无需人工对数据配置和监控。运用发明的方法,能够高效、稳定、准确地进行大数据容量的栅格地图瓦片生成;而即使是矢量地图瓦片,只要是运用本发明所述的思想,也能够同样高效、稳定、准确地生成地图瓦片。
[
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1