一种城市3d建筑数据的云平台数据组织和检索方法

xiaoxiao2020-7-22  18

一种城市3d建筑数据的云平台数据组织和检索方法
【专利摘要】本发明公开了一种城市3D建筑数据的云平台数据组织和检索方法,包括以下步骤:1)建立四层城市3D建筑数据的云平台架构,有云存储层、云平台服务层、应用服务层和应用层;2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表;3)建立基于MapReduce框架的完全二叉树的KD索引树;4)给出基于位置检索的建筑模型数据和属性数据的快速搜索方法。本发明采用四层架构组织云平台的城市3D建筑信息,建立倒排索引表和建筑模型数据和属性数据分布式存储组织,建立基于MapReduce框架的完全二叉树的KD索引树,本方法具有数据和服务的可扩展性,3D建筑数据存储效率高,实现分布式并行搜索,并能有效地处理多用户并发访问,检索的响应速度较理想。
【专利说明】一种城市3D建筑数据的云平台数据组织和检索方法
【技术领域】
[0001]本发明涉及数据组织和检索技术,尤其是指一种城市3D建筑数据的云平台数据组织和检索方法。
【背景技术】
[0002]随着云计算(cloud computing)技术的快速发展,面向各种应用的公有云、私有云和混合云的计算架构模式已成为人们探索的研究热点之一。
[0003]城市建筑信息化是建设数字城市、智慧城市的基础,城市空间信息的数据类型复杂,包括3D模型、各种属性数据、图像等,目前已有的B+树、KD树的检索树在云平台的空间信息检索方面都有一定的局限性。所以,需要建立一些新的方法,用于云平台中的3D建筑数据的有效分布式组织和快速检索。

【发明内容】

[0004]本发明的目的在于克服现有技术的不足与缺点,提供一种高效、可靠的城市3D建筑数据的云平台数据组织和检索方法,能提高3D建筑数据的分布式存储效率,实现并行搜索,提高检索效率。
[0005]为实现上述目的,本发明所提供的技术方案为:一种城市3D建筑数据的云平台数据组织和检索方法,包括以下步骤:
[0006]I)城市3D建筑数据的云平台数据组织:建立四层的云平台架构,包括有云存储层、云平台服务层、应用服务层和应用层,其中,云存储层为最底层,将城市3D建筑数据以分布式方式存储在计算机集群上;云平台服务层为第二层,为云存储层提供数据管理服务,为应用服务层提供支撑服务;应用服务层为第三层,为应用层提供城市3D建筑的各种应用服务计算,包括城市建筑的检索、识别、显示、编辑的应用服务,该层是以API接口的形式为应用层提供服务;第四层为应用层,是各种客户端程序,如移动端的App程序、WEB页面程序、PC客户端应用程序,该层主要调用第三层的API实现各种应用;
[0007]2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表,为海量城市3D建筑数据提供可扩展的分布式存储方法,为云存储层的复杂类型的3D建筑数据提供开放的数据管理方法;
[0008]3)城市3D建筑数据检索的准备阶段:在应用服务层上通过Hadoop的MapReduce并行计算框架,建立基于位置的建筑数据快速检索的完全二叉树的KD索引树;
[0009]4)城市3D建筑数据检索阶段:在应用服务层上由已知的检索位置和检索区域,通过步骤3)建立的KD索引树和Hadoop的MapReduce并行计算框架,找出与检索区域相交的KD索引树的叶子节点,再通过Hadoop的MapReduce并行计算框架,找出检索区域的所有建筑,再通过倒排索引表,找出检索区域所有建筑的3D模型数据和3D属性数据。
[0010]在步骤2)中,将每个城市建筑的数据分为两大类:一类是3D建筑模型数据,是描述建筑形状的非结构化数据;另一类是3D建筑属性数据,包括3D建筑的空间属性和非空间属性,是描述建筑特征的结构化数据;每一个建筑由建筑中心点的经纬度唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标;城市3D建筑数据的分布式存储组织:两类建筑数据分别存储在四层架构的云存储层上,模型数据以文件形式存储在HDFS的目录中,城市建筑分类由多级目录表示,每个模型文件由URI定位,即通用资源标识符定位;属性数据以可扩展的关系表形式存储在HBase中,每个建筑以唯一的建筑标识Bid为行键,属性数据为列集合;倒排索引表为每个建筑建立模型数据和属性数据的关联关系,倒排索引表的格式为:建筑中心点、建筑标识Bid、建筑目录的URI ;通过Hadoop提供的配置和操作,在云平台服务层上管理云存储层中的城市3D建筑数据。
[0011]所述3D建筑模型数据是描述建筑形状的非结构化数据,主要包括3D模型文件和对应的纹理文件,如3D建筑模型、3D楼层模型、3D户型模型、模型对应的纹理图;
[0012]所述3D建筑属性数据是描述建筑特征的结构化数据,主要包括3D建筑的空间属性和非空间属性,如空间属性是建筑的构造尺寸数据,或是建筑的经度、纬度、海拔高度、t匕例的几何属性,非空间属性是建筑的名称、面积、层数、所有者、用途、历史的社会或文化属性;
[0013]每一个建筑的唯一标识:每一个建筑由建筑中心点的经纬度坐标数据唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标(X,Y),城市建筑的地理分布转化为平面坐标系上的不重叠的点集;
[0014]城市3D建筑数据的分布式存储组织:在Hadoop云平台下建立以下三类数据的存储组织:一是对应3D建筑模型数据;二是对应3D建筑属性数据;三是对应模型数据和属性数据关联关系的倒排索引表;
[0015]所述3D建筑模型数据和3D建筑属性数据都存储在云存储层上,倒排索引表存储在提供应用服务的应用服务器上,以便于应用服务的读取;
[0016]所述三类数据的存储组织方法描述如下:
[0017]①3D建筑模型数据的存储组织是以文件形式存储在HDFS的目录树结构中,城市或区域的建筑分类由多级目录表示,每个建筑的所有3D建筑模型文件存储在一个子目录中,并由HDFS的目录路径唯一指定,表示为=Path = \城市\区域\子区域\建筑,一个模型文件由“Path\文件名”唯一指定;
[0018]②3D建筑属性数据的存储组织是以可扩展的关系表形式存储在HBase中,HBase是基于列的适合于大稀疏结构化数据的数据库,每个建筑以唯一的建筑标识Bid为行键,以(〈属性名 >:〈属性值 >)为列,属性值的版本由时间戳管理,则建筑Bid的所有属性数据就是行键为Bid的列集合;
[0019]③倒排索引表为每个建筑建立其模型数据和属性数据的关联关系,该文件类型为文本文件,每一行表示一个建筑的关联关系,文件格式为:建筑中心点(X,Y)、建筑模型数据的路径Path、建筑属性数据的标识Bid,文件按照建筑中心点坐标值X和Y进行组合排序。
[0020]在步骤3)中,在应用服务层上通过Hadoop的MapReduce并行计算框架,以迭代方式建立建筑数据快速检索的KD索引树,即对城市建筑所在的平面进行多次的水平和垂直的交替分割,分割后的子区域的建筑点个数近似相等,直到子区域边长小于阈值或子区域的建筑个数小于阈值则停止分割,完成分割的KD索引树是一个完全二叉树,共有m个叶子节点,每个叶子节点区域的建筑个数为ki; i = 1,2,…,m ;建立KD索引树包括以下步骤:
[0021]①设子区域边长的阈值为Ta,子区域建筑个数的阈值为Tk ;
[0022]②对所有转换为平面坐标的建筑中心点(X,Y),分别以X值排序和以Y值排序,X方向的最小最大坐标为(xmin,Xmax), Y方向的最小最大坐标为(Ymin,Ymax),城市区域是(Xfflin, Yfflin)和(Χ.,Υ.)的矩形区域;
[0023]③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(Xi,Xi+1),Y 方向区域的最小最大坐标为(Yi,Yi+1),其中,Xi = Xmin+Atx (1-1), xi+1 =
Xi+At, Yi = Ymin+Atx (1-1), Yi+1 = Yi+At,
【权利要求】
1.一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于,包括以下步骤: 1)城市3D建筑数据的云平台数据组织:建立四层的云平台架构,包括有云存储层、云平台服务层、应用服务层和应用层,其中,云存储层为最底层,将城市3D建筑数据以分布式方式存储在计算机集群上;云平台服务层为第二层,为云存储层提供数据管理服务,为应用服务层提供支撑服务;应用服务层为第三层,为应用层提供城市3D建筑的各种应用服务计算,包括城市建筑的检索、识别、显示、编辑的应用服务,该层是以API接口的形式为应用层提供服务;第四层为应用层,是各种客户端程序,如移动端的App程序、WEB页面程序、PC客户端应用程序,该层主要调用第三层的API实现各种应用; 2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表,为海量城市3D建筑数据提供可扩展的分布式存储方法,为云存储层的复杂类型的3D建筑数据提供开放的数据管理方法; 3)城市3D建筑数据检索的准备阶段:在应用服务层上通过Hadoop的MapReduce并行计算框架,建立基于位置的建筑数据快速检索的完全二叉树的KD索引树; 4)城市3D建筑数据检索阶段:在应用服务层上由已知的检索位置和检索区域,通过步骤3)建立的KD索引树和Hadoop的MapReduce并行计算框架,找出与检索区域相交的KD索引树的叶子节点,再通过Hadoop的MapReduce并行计算框架,找出检索区域的所有建筑,再通过倒排索引表,找出检索区域所有建筑的3D模型数据和3D属性数据。
2.根据权利要 求1所述的一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于:在步骤2)中,将每个城市建筑的数据分为两大类:一类是3D建筑模型数据,是描述建筑形状的非结构化数据;另一类是3D建筑属性数据,包括3D建筑的空间属性和非空间属性,是描述建筑特征的结构化数据;每一个建筑由建筑中心点的经纬度唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标;城市3D建筑数据的分布式存储组织:两类建筑数据分别存储在四层架构的云存储层上,模型数据以文件形式存储在HDFS的目录中,城市建筑分类由多级目录表示,每个模型文件由URI定位,即通用资源标识符定位;属性数据以可扩展的关系表形式存储在HBase中,每个建筑以唯一的建筑标识Bid为行键,属性数据为列集合;倒排索引表为每个建筑建立模型数据和属性数据的关联关系,倒排索引表的格式为:建筑中心点、建筑标识Bid、建筑目录的URI ;通过Hadoop提供的配置和操作,在云平台服务层上管理云存储层中的城市3D建筑数据。
3.根据权利要求2所述的一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于: 所述3D建筑模型数据是描述建筑形状的非结构化数据,主要包括3D模型文件和对应的纹理文件,如3D建筑模型、3D楼层模型、3D户型模型、模型对应的纹理图; 所述3D建筑属性数据是描述建筑特征的结构化数据,主要包括3D建筑的空间属性和非空间属性,如空间属性是建筑的构造尺寸数据,或是建筑的经度、纬度、海拔高度、比例的几何属性,非空间属性是建筑的名称、面积、层数、所有者、用途、历史的社会或文化属性; 每一个建筑的唯一标识:每一个建筑由建筑中心点的经纬度坐标数据唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标(X,Y),城市建筑的地理分布转化为平面坐标系上的不重叠的点集; 城市3D建筑数据的分布式存储组织:在Hadoop云平台下建立以下三类数据的存储组织:一是对应3D建筑模型数据;二是对应3D建筑属性数据;三是对应模型数据和属性数据关联关系的倒排索引表; 所述3D建筑模型数据和3D建筑属性数据都存储在云存储层上,倒排索引表存储在提供应用服务的应用服务器上,以便于应用服务的读取; 所述三类数据的存储组织方法描述如下: ①3D建筑模型数据的存储组织是以文件形式存储在HDFS的目录树结构中,城市或区域的建筑分类由多级目录表示,每个建筑的所有3D建筑模型文件存储在一个子目录中,并由HDFS的目录路径唯一指定,表示为=Path = \城市\区域\子区域\建筑,一个模型文件由“Path\文件名”唯一指定; ②3D建筑属性数据的存储组织是以可扩展的关系表形式存储在HBase中,HBase是基于列的适合于大稀疏结构化数据的数据库,每个建筑以唯一的建筑标识Bid为行键,以(〈属性名 >:〈属性值 >)为列,属性值的版本由时间戳管理,则建筑Bid的所有属性数据就是行键为Bid的列集合; ③倒排索引表为每个建筑建立其模型数据和属性数据的关联关系,该文件类型为文本文件,每一行表示一个建筑的关联关系,文件格式为:建筑中心点(X,Y)、建筑模型数据的路径Path、建筑属性数据的标识Bid,文件按照建筑中心点坐标值X和Y进行组合排序。
4.根据权利要求1所述的一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于:在步骤3)中,在应用服务层上通过Hadoop的MapReduce并行计算框架,以迭代方式建立建筑数据快速检 索的KD索引树,即对城市建筑所在的平面进行多次的水平和垂直的交替分割,分割后的子区域的建筑点个数近似相等,直到子区域边长小于阈值或子区域的建筑个数小于阈值则停止分割,完成分割的KD索引树是一个完全二叉树,共有m个叶子节点,每个叶子节点区域的建筑个数为ki;i = 1,2,一,m;建立KD索引树包括以下步骤: ①设子区域边长的阈值为Ta,子区域建筑个数的阈值为Tk; ②对所有转换为平面坐标的建筑中心点(X,Y),分别以X值排序和以Y值排序,X方向的最小最大坐标为(Xmin,Xmax),Y方向的最小最大坐标为(Ymin,Ymax),城市区域是(Xmin,Ymin)和(Χ_,Υ_)的矩形区域; ③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(Xi,XiJ,Y 方向区域的最小最大坐标为(Yi,Yi+1),其中,Xi = Xmin+AtX (1-1),Xi+1 = Xi+At, Yi =Ymin+Atx (1-l),Yi+1 = VAt AT = x^ ~x.....; ④比较以X值排序的建筑中心点与(Xi,xi+1)区域的位置关系,比较以Y值排序的建筑中心点与(Yi,Yi+1)区域的位置关系,求出每一个区域在X和Y方向的建筑个数k和k〖,其中 i = 1,2,…,t ; ⑤X方向和Y方向交替分割,并行生成KD索引树的左子树和右子树,MapReduce过程为:第i次分割的数据文件为η个区域的区域坐标和总的建筑点集,经划分得到η个区域和对应建筑点集,并以此作为Map的输入键值,map方法进行各区域的分割,即按坐标从小到大对t个等距区域的建筑个数累加,直到累加的建筑个数在X方向k-Ak/2或者并且 OW+ k%, )>k/2,或 Y 方向 Uk/2 或者 kcu?〈k/2 并且(U Aj+i)>k/2,k 为 H或,^^^ ’即区域的建筑个数,则Xp1或Yp1为分割边,j为等距边下标,第i+Ι次分割的子区域坐标 X 方向为:(xtL!,),(^1M,Kl1)和(),(,C7);或 Y 方向(XiJu1JJ1:1 ),( ?/+Y )和(XitnJui ),(); map 的输出为这两个子区域和建筑点集;Reduce将Map的输出做合并处理,输出2n个X或Y方向的子区域和建筑点集;⑥当前的子区域边长Ol1 -1i)或Y方向O人-F丄)大于Ta或者当前子区域的建筑个数kf或k〖大于Tk,迭代执行步骤③、④、⑤,最后得到叶子节点子区域边长满足条件或者叶子节点的建筑个数满足条件的KD索引树。
5.根据权利要求1所述的一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于:在步骤4)中,所述检索阶段包括以下步骤:①假定检索区域小于KD树叶子节点区域,设检索位置的经纬度投影后的平面点坐标为(X,Y),检索区域边长为a,则检索区域为(X-a/2,Y-a/2)和(X+a/2,Y+a/2),KD树第i个叶子节点区域为(X丨,Y〗)和(X12,Y)),其中i = 1,2,…,m ; ②第一次的MapReduce过程,从m个叶子节点区域中找出与检索区域相交的叶子节点:Map有2*(m+l)个输入的键值对,键值对的值为坐标(X,Y),对应m个叶子节点区域和一个检索区域,每个区域由两个坐标确定,通过并行配对,输出m个键值对,每个键值对的值表为 4 个顶点:(X11, Y; ),( X12,Y^),(X-a/2, Y-a/2),(X+a/2, Y+a/2);Reduce将Map的输出做合并处理,输出n个叶子节点区域和检索区域有相交的键值对:(X;,Y;), (X125Yj)s 其中 i = 1,2,…,η; ③第二次的MapReduce过程,从η个相交的叶子节点区域中找出所有在检索区域内的建筑:设η个叶子节点区域共有r个建筑中心点(BX^BYi),其中i = 1,2,...,r ;Map有r+2个输入的键值对,对应的值为r个建筑中心点和检索区域,通过并行配对,输出r个键值对,每个键值对的值表为 3 个顶点:(BXi, BYi),(X-a/2, Y-a/2),(X+a/2, Y+a/2) ;Reduce 将 Map的输出做合并处理,输出s个在检索区域里的建筑中心点(BXi, BYi),其中i = 1,2,…,s; ④通过倒排索引表,找出s个建筑的所有模型数据和属性数据:由建筑中心点(BXi,BYi),得到该建筑的3D模型数据的路径Path,即找到该建筑存储在HDFS中的所有模型数据文件;由建筑中心点(BXi, BYi),得到建筑属性数据的标识Bid,即找到该建筑存储在HBase中的所有属性数据。
【文档编号】G06F17/30GK103955511SQ201410180825
【公开日】2014年7月30日 申请日期:2014年4月30日 优先权日:2014年4月30日
【发明者】何浥尘, 陈泽琳 申请人:华南理工大学

最新回复(0)