发明名称 一种城市3D建筑数据的云平台数据组织和检索方法
摘要 本发明公开了一种城市3D建筑数据的云平台数据组织和检索方法,包括以下步骤:1)建立四层城市3D建筑数据的云平台架构,有云存储层、云平台服务层、应用服务层和应用层;2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表;3)建立基于MapReduce框架的完全二叉树的KD索引树;4)给出基于位置检索的建筑模型数据和属性数据的快速搜索方法。本发明采用四层架构组织云平台的城市3D建筑信息,建立倒排索引表和建筑模型数据和属性数据分布式存储组织,建立基于MapReduce框架的完全二叉树的KD索引树,本方法具有数据和服务的可扩展性,3D建筑数据存储效率高,实现分布式并行搜索,并能有效地处理多用户并发访问,检索的响应速度较理想。
申请公布号 CN103955511B 申请公布日期 2017.02.15
申请号 CN201410180825.6 申请日期 2014.04.30
申请人 华南理工大学 发明人 何浥尘;陈泽琳
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 蔡茂略
主权项 一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于,包括以下步骤:1)城市3D建筑数据的云平台数据组织:建立四层的云平台架构,包括有云存储层、云平台服务层、应用服务层和应用层,其中,云存储层为最底层,将城市3D建筑数据以分布式方式存储在计算机集群上;云平台服务层为第二层,为云存储层提供数据管理服务,为应用服务层提供支撑服务;应用服务层为第三层,为应用层提供城市3D建筑的各种应用服务计算,包括城市建筑的检索、识别、显示、编辑的应用服务,该层是以API接口的形式为应用层提供服务;第四层为应用层,是各种客户端程序,该层调用第三层的API实现各种应用;2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表,为海量城市3D建筑数据提供可扩展的分布式存储方法,为云存储层的复杂类型的3D建筑数据提供开放的数据管理方法;3)城市3D建筑数据检索的准备阶段:在应用服务层上通过Hadoop的MapReduce并行计算框架,建立基于位置的建筑数据快速检索的完全二叉树的KD索引树;其中,在应用服务层上通过Hadoop的MapReduce并行计算框架,以迭代方式建立建筑数据快速检索的KD索引树,即对城市建筑所在的平面进行多次的水平和垂直的交替分割,分割后的子区域的建筑点个数近似相等,直到子区域边长小于阈值或子区域的建筑个数小于阈值则停止分割,完成分割的KD索引树是一个完全二叉树,共有m个叶子节点,每个叶子节点区域的建筑个数为k<sub>i</sub>,i=1,2,…,m;建立KD索引树包括以下步骤:①设子区域边长的阈值为Ta,子区域建筑个数的阈值为Tk;②对所有转换为平面坐标的建筑中心点(X,Y),分别以X值排序和以Y值排序,X方向的最小最大坐标为(X<sub>min</sub>,X<sub>max</sub>),Y方向的最小最大坐标为(Y<sub>min</sub>,Y<sub>max</sub>),城市区域是(X<sub>min</sub>,Y<sub>min</sub>)和(X<sub>max</sub>,Y<sub>max</sub>)的矩形区域;③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(X<sub>i</sub>,X<sub>i+1</sub>),Y方向区域的最小最大坐标为(Y<sub>i</sub>,Y<sub>i+1</sub>),其中,X<sub>i</sub>=X<sub>min</sub>+Δt×(i‑1),X<sub>i+1</sub>=X<sub>i</sub>+Δt,Y<sub>i</sub>=Y<sub>min</sub>+Δt×(i‑1),Y<sub>i+1</sub>=Y<sub>i</sub>+Δt,<img file="FDA0001118736200000021.GIF" wi="387" he="103" />④比较以X值排序的建筑中心点与(X<sub>i</sub>,X<sub>i+1</sub>)区域的位置关系,比较以Y值排序的建筑中心点与(Y<sub>i</sub>,Y<sub>i+1</sub>)区域的位置关系,求出每一个区域在X和Y方向的建筑个数<img file="FDA0001118736200000022.GIF" wi="56" he="63" />和<img file="FDA0001118736200000023.GIF" wi="82" he="62" />其中i=1,2,…,t;⑤X方向和Y方向交替分割,并行生成KD索引树的左子树和右子树,MapReduce过程为:第i次分割的数据文件为n个区域的区域坐标和总的建筑点集,经划分得到n个区域和对应建筑点集,并以此作为Map的输入键值,map方法进行各区域的分割,即按坐标从小到大对t个等距区域的建筑个数累加,直到累加的建筑个数在X方向k<sub>curr</sub>&gt;k/2或者k<sub>curr</sub>&lt;k/2并且<img file="FDA0001118736200000024.GIF" wi="398" he="71" />或Y方向k<sub>curr</sub>&gt;k/2或者k<sub>curr</sub>&lt;k/2并且<img file="FDA0001118736200000025.GIF" wi="395" he="66" />k为<img file="FDA0001118736200000026.GIF" wi="156" he="109" />或<img file="FDA0001118736200000027.GIF" wi="182" he="109" />即区域的建筑个数,则X<sub>j+1</sub>或Y<sub>j+1</sub>为分割边,j为等距边下标,第i+1次分割的子区域坐标X方向为:<img file="FDA0001118736200000028.GIF" wi="635" he="73" />和<img file="FDA0001118736200000029.GIF" wi="653" he="76" />或Y方向<img file="FDA00011187362000000210.GIF" wi="637" he="75" />和<img file="FDA00011187362000000211.GIF" wi="654" he="72" />map的输出为这两个子区域和建筑点集;Reduce将Map的输出做合并处理,输出2n个X或Y方向的子区域和建筑点集;⑥当前的子区域边长<img file="FDA00011187362000000212.GIF" wi="277" he="70" />或Y方向<img file="FDA00011187362000000213.GIF" wi="261" he="71" />大于Ta或者当前子区域的建筑个数<img file="FDA00011187362000000214.GIF" wi="61" he="63" />或<img file="FDA00011187362000000215.GIF" wi="54" he="61" />大于Tk,迭代执行步骤③、④、⑤,最后得到叶子节点子区域边长满足条件或者叶子节点的建筑个数满足条件的KD索引树;4)城市3D建筑数据检索阶段:在应用服务层上由已知的检索位置和检索区域,通过步骤3)建立的KD索引树和Hadoop的MapReduce并行计算框架,找出与检索区域相交的KD索引树的叶子节点,再通过Hadoop的MapReduce并行计算框架,找出检索区域的所有建筑,再通过倒排索引表,找出检索区域所有建筑的3D模型数据和3D属性数据。
地址 510640 广东省广州市天河区五山路381号