发明名称 |
一种海量遥感影像元数据分布式存储方法及并行查询方法 |
摘要 |
本发明公开了一种海量遥感影像元数据分布式存储方法及并行查询方法。涉及基于HDFS存储、Spark分布式并行计算、Redis内存缓存的海量遥感影像元数据并行空间索引构建和查询。该方法在KD-Tree算法基础上发明了DKD-Tree算法。在Spark框架下利用DKD-Tree算法构建分区,将构建的分区数据保存在HDFS中,利用Spark先在构建的DKD-Tree中进行分区查询,再在查询到的分区中进行具体的查询,基于DKD-Tree的查询大大缩减查询范围,提高查询效率。本发明可以在大数据环境下对遥感影像元数据做到实时查询,在数据量增加时,可以增加Spark节点保证查询的实时性,具有很好的可扩展性。 |
申请公布号 |
CN105589951A |
申请公布日期 |
2016.05.18 |
申请号 |
CN201510958688.9 |
申请日期 |
2015.12.18 |
申请人 |
中国科学院计算机网络信息中心 |
发明人 |
王学志;王逢阳;周园春;黎建辉;肖潇 |
分类号 |
G06F17/30(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
北京君尚知识产权代理事务所(普通合伙) 11200 |
代理人 |
司立彬 |
主权项 |
一种海量遥感影像元数据分布式存储方法,其步骤为:1)根据设定属性对海量遥感影像元数据进行属性分区;2)对每一属性分区后的数据分别进行均匀地理范围分区;21)首先读取每一属性分区中的遥感影像元数据,计算遥感影像元数据的最大经度的均值和方差、最大纬度的均值和方差、数据总条数N、最小边界矩阵MBR,构建DKD‑Tree根节点,然后将根节点保存到一队列中;22)从该队列中弹出一个节点标记为当前节点,如果当前节点的数据条数小于最小数据条数阈值,则当前节点不再分裂;将当前节点标记为叶子节点,并分配唯一的ID标识;如果当前节点数据条数大于或等于最小数据条数阈值,则选择方差最大的维度进行数据划分,即首先根据所选维度计算数据条目的中位数,然后根据该中位数将数据分为三个分支:①最大边界小于中位数的影像数据、②最小边界大于中位数的影像数据以及在情况①和②之外的数据;然后将分支节点放入该队列中;23)重复步骤22)构建每一属性分区的DKD‑Tree树,当当前DKD‑Tree树深度大于树深度阈值则将当前DKD‑Tree树序列化并保存,并保存当前DKD‑Tree树的每个叶子节点中的数据。 |
地址 |
100190 北京市海淀区中关村南四街4号1号楼 |