CN103955511B - 一种城市3d建筑数据的云平台数据组织和检索方法 - Google Patents
一种城市3d建筑数据的云平台数据组织和检索方法 Download PDFInfo
- Publication number
- CN103955511B CN103955511B CN201410180825.6A CN201410180825A CN103955511B CN 103955511 B CN103955511 B CN 103955511B CN 201410180825 A CN201410180825 A CN 201410180825A CN 103955511 B CN103955511 B CN 103955511B
- Authority
- CN
- China
- Prior art keywords
- data
- building
- layer
- region
- city
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种城市3D建筑数据的云平台数据组织和检索方法,包括以下步骤:1)建立四层城市3D建筑数据的云平台架构,有云存储层、云平台服务层、应用服务层和应用层;2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表;3)建立基于MapReduce框架的完全二叉树的KD索引树;4)给出基于位置检索的建筑模型数据和属性数据的快速搜索方法。本发明采用四层架构组织云平台的城市3D建筑信息,建立倒排索引表和建筑模型数据和属性数据分布式存储组织,建立基于MapReduce框架的完全二叉树的KD索引树,本方法具有数据和服务的可扩展性,3D建筑数据存储效率高,实现分布式并行搜索,并能有效地处理多用户并发访问,检索的响应速度较理想。
Description
技术领域
本发明涉及数据组织和检索技术,尤其是指一种城市3D建筑数据的云平台数据组织和检索方法。
背景技术
随着云计算(cloud computing)技术的快速发展,面向各种应用的公有云、私有云和混合云的计算架构模式已成为人们探索的研究热点之一。
城市建筑信息化是建设数字城市、智慧城市的基础,城市空间信息的数据类型复杂,包括3D模型、各种属性数据、图像等,目前已有的B+树、KD树的检索树在云平台的空间信息检索方面都有一定的局限性。所以,需要建立一些新的方法,用于云平台中的3D建筑数据的有效分布式组织和快速检索。
发明内容
本发明的目的在于克服现有技术的不足与缺点,提供一种高效、可靠的城市3D建筑数据的云平台数据组织和检索方法,能提高3D建筑数据的分布式存储效率,实现并行搜索,提高检索效率。
为实现上述目的,本发明所提供的技术方案为:一种城市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)中,将每个城市建筑的数据分为两大类:一类是3D建筑模型数据,是描述建筑形状的非结构化数据;另一类是3D建筑属性数据,包括3D建筑的空间属性和非空间属性,是描述建筑特征的结构化数据;每一个建筑由建筑中心点的经纬度唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标;城市3D建筑数据的分布式存储组织:两类建筑数据分别存储在四层架构的云存储层上,模型数据以文件形式存储在HDFS的目录中,城市建筑分类由多级目录表示,每个模型文件由URI定位,即通用资源标识符定位;属性数据以可扩展的关系表形式存储在HBase中,每个建筑以唯一的建筑标识Bid为行键,属性数据为列集合;倒排索引表为每个建筑建立模型数据和属性数据的关联关系,倒排索引表的格式为:建筑中心点、建筑标识Bid、建筑目录的URI;通过Hadoop提供的配置和操作,在云平台服务层上管理云存储层中的城市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进行组合排序。
在步骤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)和(Xmax,Ymax)的矩形区域;
③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(Xi,Xi+1),Y方向区域的最小最大坐标为(Yi,Yi+1),其中,Xi=Xmin+Δt×(i-1),Xi+1=Xi+Δt,Yi=Ymin+Δt×(i-1),Yi+1=Yi+Δt,
④比较以X值排序的建筑中心点与(Xi,Xi+1)区域的位置关系,比较以Y值排序的建筑中心点与(Yi,Yi+1)区域的位置关系,求出每一个区域在X和Y方向的建筑个数和
⑤X方向和Y方向交替分割,并行生成KD索引树的左子树和右子树,MapReduce过程为:第i次分割的数据文件为n个区域的区域坐标和总的建筑点集,经划分得到n个区域和对应建筑点集,并以此作为Map的输入键值,map方法进行各区域的分割,即按坐标从小到大对t个等距区域的建筑个数累加,直到累加的建筑个数在X方向kcurr>k/2或者kcurr<k/2并且或Y方向kcurr>k/2或者kcurr<k/2并且k为或即区域的建筑个数,则Xj+1或Yj+1为分割边,j为等距边下标,第i+1次分割的子区域坐标X方向为:和或Y方向 和map的输出为这两个子区域和建筑点集;Reduce将Map的输出做合并处理,输出2n个X或Y方向的子区域和建筑点集;
⑥当前的子区域边长或Y方向大于Ta或者当前子区域的建筑个数或大于Tk,迭代执行步骤③、④、⑤,最后得到叶子节点子区域边长满足条件或者叶子节点的建筑个数满足条件的KD索引树。
在步骤4)中,所述检索阶段包括以下步骤:
①假定检索区域小于KD树叶子节点区域,设检索位置的经纬度投影后的平面点坐标为(X,Y),检索区域边长为a,则检索区域为(X-a/2,Y-a/2)和(X+a/2,Y+a/2),KD树第i个叶子节点区域为和其中i=1,2,…,m;
②第一次的MapReduce过程,从m个叶子节点区域中找出与检索区域相交的叶子节点:Map有2*(m+1)个输入的键值对,键值对的值为坐标(X,Y),对应m个叶子节点区域和一个检索区域,每个区域由两个坐标确定,通过并行配对,输出m个键值对,每个键值对的值表为4个顶点:(X-a/2,Y-a/2),(X+a/2,Y+a/2);Reduce将Map的输出做合并处理,输出n个叶子节点区域和检索区域有相交的键值对:其中i=1,2,…,n;
③第二次的MapReduce过程,从n个相交的叶子节点区域中找出所有在检索区域内的建筑:设n个叶子节点区域共有r个建筑中心点(BXi,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中的所有属性数据。
本发明与现有技术相比,具有如下优点和有益效果:
1、用四层架构组织云平台的城市3D建筑数据,为城市3D建筑数据的组织和操作提供更清晰的层次结构,为3D建筑数据的组织、服务和应用提供更规范的定义和内涵,为云平台数据扩展和多用户并发访问提供有效的架构模式,具有层次化、可扩展性、基于位置的检索、高效性和开放性等特点;
2、建筑的结构化数据和非结构化数据按照云平台的数据存储特点分别组织,并建立倒排索引表,极大地提高3D建筑数据的存储效率,实现分布式管理和并行计算;
3、建立基于位置检索的完全二叉树的KD索引树优化3D建筑数据的检索效率,KD索引树是在检索的准备阶段对建筑点集进行一次性的预处理,可以离线操作而不影响检索时间;
4、数据的分布式存储和基于MapReduce的检索方法能有效地处理多用户并发访问,检索的实时响应速度较理想;
5、通过MapReduce并行计算框架,建立完全二叉树的城市建筑KD索引树,通过基于地理位置的建筑信息检索,为应用层提供快速和有效的建筑检索应用服务,特别适合于大量移动用户的并发访问的检索应用。
附图说明
图1为本发明的四层云平台数据组织架构图。
图2为本发明的城市3D建筑模型数据的HDFS分布式存储结构。
图3为本发明的KD索引树的分割线选择方法示意图。
图4为本发明的建立KD索引树的MapReduce处理过程图。
图5为本发明的3D建筑数据检索处理流程图。
图6为本发明的实验中的Hadoop集群部署图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
本实施例所述的城市3D建筑数据的云平台数据组织和检索方法,其具体情况如下:
1)城市3D建筑数据的云平台数据组织采用四层的云平台架构,如图1所示,包括有云存储层、云平台服务层、应用服务层和应用层,其中,
所述云存储层位于最底层,该层由计算机集群组成,在Hadoop架构下,集群是由主服务器和从服务器组成,分别对应名字节点和数据节点,数据由HDFS和HBase组织,城市3D建筑数据分布地存储在集群的数据节点上,要求该层的存储能力具有可扩展性;
所述云平台服务层位于第二层,该层包括两类服务:第一类是为云存储层的城市3D建筑数据提供高效的数据管理服务,通过Hadoop提供的配置和操作进行设置和处理,例如数据块大小设置、数据复本个数设置、数据节点的负载均衡处理等;第二类是为应用服务层提供支撑服务,通过Hadoop的MapReduce为检索提供并行计算,建立并更新倒排索引表,要求该层能为应用服务提供高效的计算;
所述应用服务层位于第三层,为应用层提供城市3D建筑的各种应用服务,例如城市建筑的检索、识别、显示、编辑等应用服务,该层服务提供API接口形式,本发明的建筑数据检索位于这一层;
所述应用层位于最顶层,包括各种客户端程序、web页面或移动APP,用户通过应用层完成各自的应用。
2)城市3D建筑数据主要分为两类:3D建筑模型数据和3D建筑属性数据,其中,
3D建筑模型数据是描述建筑形状的非结构化数据,主要包括3D模型文件和对应的纹理文件,例如3D建筑模型、3D楼层模型、3D户型模型、模型对应的纹理图等;
3D建筑属性数据是描述建筑特征的结构化数据,主要包括3D建筑的空间属性和非空间属性,例如,空间属性可以是建筑的构造尺寸数据,或是建筑的经度、纬度、海拔高度、比例等几何属性,非空间属性可以是建筑的名称、面积、层数、所有者、用途、历史等社会或文化属性,每个建筑的属性数据都非常庞大和复杂,可能具有几千或几万个数据;
每一个建筑由建筑中心点的经纬度坐标数据唯一标识,再用Mercator投影将球面坐标的经纬度转化为平面地图的点坐标(X,Y),城市建筑的地理分布转化为平面坐标系上的不重叠的点集。
3)城市3D建筑数据的分布式存储组织:在Hadoop云平台下建立以下三类数据的存储组织:一是对应2)中的3D建筑模型数据;二是对应2)中的3D建筑属性数据;三是对应模型数据和属性数据关联关系的倒排索引表;
3D建筑模型数据和3D建筑属性数据都存储在云存储层上,倒排索引表存储在提供应用服务的应用服务器上,以便于应用服务的读取;
三类数据的存储组织方法描述如下:
①3D建筑模型数据的存储组织是以文件形式存储在HDFS的目录树结构中,如图2所示,城市或区域的建筑分类由多级目录表示,每个建筑的所有3D建筑模型文件存储在一个子目录中,并由HDFS的目录路径唯一指定,表示为:Path=\城市\区域\子区域\建筑,一个模型文件由“Path\文件名”唯一指定;
②3D建筑属性数据的存储组织是以可扩展的关系表形式存储在HBase中,HBase是基于列的适合于大稀疏结构化数据的数据库,每个建筑以唯一的建筑标识Bid为行键,以(<属性名>:<属性值>)为列,属性值的版本由时间戳管理,则建筑Bid的所有属性数据就是行键为Bid的列集合;
③倒排索引表为每个建筑建立其模型数据和属性数据的关联关系,该文件类型为文本文件,每一行表示一个建筑的关联关系,文件格式为:建筑中心点(X,Y)、建筑模型数据的路径Path、建筑属性数据的标识Bid,文件按照建筑中心点坐标值X和Y进行组合排序。
4)城市3D建筑数据检索的准备阶段:本方法在应用服务层上通过Hadoop的MapReduce并行计算框架,以迭代方式建立建筑数据快速检索的KD索引树,即对城市建筑所在的平面进行多次的水平和垂直的交替分割,如图3所示,分割后的子区域的建筑点个数近似相等,直到子区域边长小于阈值或子区域的建筑个数小于阈值则停止分割,完成分割的KD索引树是一个完全二叉树,共有m个叶子节点,每个叶子节点区域的建筑个数为ki(i=1,2,…,m);建立KD索引树包括以下步骤:
①设子区域边长的阈值为Ta,子区域建筑个数的阈值为Tk;
②对所有转换为平面坐标的建筑中心点(X,Y),分别以X值排序和以Y值排序,X方向的最小最大坐标为(Xmin,Xmax),Y方向的最小最大坐标为(Ymin,Ymax),城市区域是(Xmin,Ymin)和(Xmax,Ymax)的矩形区域;
③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(Xi,Xi+1),Y方向区域的最小最大坐标为(Yi,Yi+1),其中,Xi=Xmin+Δt×(i-1),Xi+1=Xi+Δt,Yi=Ymin+Δt×(i-1),Yi+1=Yi+Δt,
④比较以X值排序的建筑中心点与(Xi,Xi+1)区域的位置关系,比较以Y值排序的建筑中心点与(Yi,Yi+1)区域的位置关系,求出每一个区域在X和Y方向的建筑个数和
⑤X方向和Y方向交替分割,并行生成KD索引树的左子树和右子树,如图4所示,MapReduce过程为:第i次分割的数据文件为n个区域的区域坐标和总的建筑点集,经分割得到n个区域和对应建筑点集,并以此作为Map的输入键值,map方法进行各区域的分割,即按坐标从小到大对t个等距区域的建筑个数累加,直到累加的建筑个数在X方向kcurr>k/2或者kcurr<k/2并且(或Y方向(k为或即区域的建筑个数),则Xj+1(或Yj+1)为分割边(j为等距边下标),第i+1次分割的子区域坐标为:和(或Y方向和 map的输出为这两个子区域和建筑点集;Reduce将Map的输出做合并处理,输出2n个X(或Y)方向的子区域和建筑点集;
⑥当前的子区域边长(或Y方向大于Ta或者当前子区域的建筑个数(或)大于Tk,迭代执行步骤③、④、⑤,最后得到叶子节点子区域边长满足条件或者叶子节点的建筑个数满足条件的KD索引树。
5)城市3D建筑数据检索阶段:本方法在应用服务层上由已知的检索位置(经纬度)和检索区域(区域边长),通过步骤4)建立的KD索引树,使用MapReduce并行计算框架,找出相交的KD树叶子节点,再找出检索区域的所有建筑(由建筑中心点标识),再通过倒排索引表,找出检索区域建筑的所有模型数据和属性数据,如图5所示,检索阶段包括以下步骤:
①为了使检索出的建筑个数合理,本发明假定检索区域小于KD树叶子节点区域,设检索位置的经纬度投影后的平面点坐标为(X,Y),检索区域边长为a,则检索区域为(X-a/2,Y-a/2)和(X+a/2,Y+a/2),KD树第i个叶子节点区域为和其中i=1,2,…,m;
②第一次的MapReduce过程,从m个叶子节点区域中找出与检索区域相交的叶子节点:Map有2*(m+1)个输入的键值对,键值对的值为坐标(X,Y),对应m个叶子节点区域和一个检索区域(每个区域由两个坐标确定),通过并行配对,输出m个键值对,每个键值对的值表为4个顶点:(X-a/2,Y-a/2),(X+a/2,Y+a/2);Reduce将Map的输出做合并处理,输出n个叶子节点区域和检索区域有相交的键值对:其中i=1,2,…,n;
③第二次的MapReduce过程,从n个相交的叶子节点区域中找出所有在检索区域内的建筑:设n个叶子节点区域共有r个建筑中心点(BXi,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中的所有属性数据。
本发明所述基于Hadoop云平台的四层数据组织架构和检索方法具有以下特点:
1、层次化,城市3D建筑数据的组织和操作的结构更清晰,应用和服务的定义和内涵更规范;
2、可扩展性,具有云平台的计算机集群节点的可扩展性,建筑数据规模的可扩展性,基于云平台服务层和应用服务层的应用的可扩展性,所以城市3D建筑数据、服务业务和用户数量等都是可扩展的;
3、基于位置的检索,通过位置的经纬度检索可以确定周围的建筑信息,其检索应用更加适合移动计算,具有巨大的应用前景;
4、高效性,建立的KD索引树是完全二叉树,检索效率高,基于云平台的服务可以在分布式存储的数据节点上并行计算,建筑检索方法是通过MapReduce框架实现,适合于多用户并发访问;
5、开放性,基于Hadoop的云平台服务层可以提供开放的基本服务和组件,应用服务层可以通过提供可装配服务模块为开发者提供开放的框架。
本发明的实验环境是:由一台Dell PowerEdge2600作为主服务器,其余为普通PC机,共搭建7个节点服务器,其中一个兼设置为应用服务器和HDFS客户端,如图6所示。系统环境是Ubuntu Linux,Hadoop配置文件在conf目录下,主服务器的名字节点配置文件为conf/core_site.xml,初始配置HDFS数据块复本数为3。
实验结果:本实验使用美国芝加哥城市的建筑数据,有建筑实体N=801,020个,城市面积约14311平方公里。如果取Tk值为4000,则分割的区域数为BC=[N/Tk]=200,生成KD树的递归深度为k=[log2BC]=8;如果取Tk值为2000,则BC=400,k=9;如果取Tk值为1000,则BC=800,k=10。实验中我们假设区域边长的阈值为Ta=0.5,即叶子节点区域大小为0.5*0.5=0.25平方公里,则叶子节点区域数为m=57244。如下表1和表2所示,表1是不同Tk值时的KD索引树生成时间,表2是不同用户数在不同区域分割(Tk值不同)的情况下空间位置的检索响应时间。
表1
表2
在采用以上方案后,本发明采用四层架构组织云平台的城市3D建筑信息,HDFS存储建筑模型的非结构化数据,HBase存储建筑属性的结构化数据,由倒排索引表关联两类数据,建立完全二叉树的KD索引树优化3D建筑数据的检索效率,使用MapReduce实现并行计算的检索方法。这些相比现有技术,本发明方法能提高城市3D建筑数据的分布式存储效率,实现并行搜索,提高检索效率,云平台下的基于位置的建筑数据检索方法更适用于移动环境,本方法能有效地处理多用户并发访问,检索的响应速度较理想,值得推广。
以上所述之实施例子只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
Claims (4)
1.一种城市3D建筑数据的云平台数据组织和检索方法,其特征在于,包括以下步骤:
1)城市3D建筑数据的云平台数据组织:建立四层的云平台架构,包括有云存储层、云平台服务层、应用服务层和应用层,其中,云存储层为最底层,将城市3D建筑数据以分布式方式存储在计算机集群上;云平台服务层为第二层,为云存储层提供数据管理服务,为应用服务层提供支撑服务;应用服务层为第三层,为应用层提供城市3D建筑的各种应用服务计算,包括城市建筑的检索、识别、显示、编辑的应用服务,该层是以API接口的形式为应用层提供服务;第四层为应用层,是各种客户端程序,该层调用第三层的API实现各种应用;
2)通过Hadoop的HDFS文件管理和HBase数据库管理,建立3D建筑模型数据和属性数据的存储结构,以及倒排索引表,为海量城市3D建筑数据提供可扩展的分布式存储方法,为云存储层的复杂类型的3D建筑数据提供开放的数据管理方法;
3)城市3D建筑数据检索的准备阶段:在应用服务层上通过Hadoop的MapReduce并行计算框架,建立基于位置的建筑数据快速检索的完全二叉树的KD索引树;其中,在应用服务层上通过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)和(Xmax,Ymax)的矩形区域;
③X、Y方向分别等距分为t个区域,第i个X方向区域的最小最大坐标为(Xi,Xi+1),Y方向区域的最小最大坐标为(Yi,Yi+1),其中,Xi=Xmin+Δt×(i-1),Xi+1=Xi+Δt,Yi=Ymin+Δt×(i-1),Yi+1=Yi+Δt,
④比较以X值排序的建筑中心点与(Xi,Xi+1)区域的位置关系,比较以Y值排序的建筑中心点与(Yi,Yi+1)区域的位置关系,求出每一个区域在X和Y方向的建筑个数和其中i=1,2,…,t;
⑤X方向和Y方向交替分割,并行生成KD索引树的左子树和右子树,MapReduce过程为:第i次分割的数据文件为n个区域的区域坐标和总的建筑点集,经划分得到n个区域和对应建筑点集,并以此作为Map的输入键值,map方法进行各区域的分割,即按坐标从小到大对t个等距区域的建筑个数累加,直到累加的建筑个数在X方向kcurr>k/2或者kcurr<k/2并且或Y方向kcurr>k/2或者kcurr<k/2并且k为或即区域的建筑个数,则Xj+1或Yj+1为分割边,j为等距边下标,第i+1次分割的子区域坐标X方向为:和或Y方向和map的输出为这两个子区域和建筑点集;Reduce将Map的输出做合并处理,输出2n个X或Y方向的子区域和建筑点集;
⑥当前的子区域边长或Y方向大于Ta或者当前子区域的建筑个数或大于Tk,迭代执行步骤③、④、⑤,最后得到叶子节点子区域边长满足条件或者叶子节点的建筑个数满足条件的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建筑的空间属性和非空间属性,空间属性是建筑的构造尺寸数据,或是建筑的经度、纬度、海拔高度、比例的几何属性,非空间属性是建筑的名称、面积、层数、所有者、用途、历史的社会或文化属性;
每一个建筑的唯一标识:每一个建筑由建筑中心点的经纬度坐标数据唯一标识,再用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建筑数据的云平台数据组织和检索方法,其特征在于:在步骤4)中,所述检索阶段包括以下步骤:
①假定检索区域小于KD树叶子节点区域,设检索位置的经纬度投影后的平面点坐标为(X,Y),检索区域边长为a,则检索区域为(X-a/2,Y-a/2)和(X+a/2,Y+a/2),KD树第i个叶子节点区域为和其中i=1,2,…,m;
②第一次的MapReduce过程,从m个叶子节点区域中找出与检索区域相交的叶子节点:Map有2*(m+1)个输入的键值对,键值对的值为坐标(X,Y),对应m个叶子节点区域和一个检索区域,每个区域由两个坐标确定,通过并行配对,输出m个键值对,每个键值对的值表为4个顶点:(X-a/2,Y-a/2),(X+a/2,Y+a/2);Reduce将Map的输出做合并处理,输出n个叶子节点区域和检索区域有相交的键值对:其中i=1,2,…,n;
③第二次的MapReduce过程,从n个相交的叶子节点区域中找出所有在检索区域内的建筑:设n个叶子节点区域共有r个建筑中心点(BXi,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中的所有属性数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410180825.6A CN103955511B (zh) | 2014-04-30 | 2014-04-30 | 一种城市3d建筑数据的云平台数据组织和检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410180825.6A CN103955511B (zh) | 2014-04-30 | 2014-04-30 | 一种城市3d建筑数据的云平台数据组织和检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955511A CN103955511A (zh) | 2014-07-30 |
CN103955511B true CN103955511B (zh) | 2017-02-15 |
Family
ID=51332786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410180825.6A Expired - Fee Related CN103955511B (zh) | 2014-04-30 | 2014-04-30 | 一种城市3d建筑数据的云平台数据组织和检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955511B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268179A (zh) * | 2014-09-17 | 2015-01-07 | 成都飞机工业(集团)有限责任公司 | 非结构化三维模型数据解析算法 |
CN104298743A (zh) * | 2014-10-10 | 2015-01-21 | 浪潮集团有限公司 | 一种采用分布式3d动态空间数据分析方法 |
CN104580517A (zh) * | 2015-01-27 | 2015-04-29 | 浪潮集团有限公司 | 基于hdfs的访问方法和系统及用户本地系统设备 |
CN104636472A (zh) * | 2015-02-13 | 2015-05-20 | 烟台智慧云谷云计算有限公司 | 一种四层架构的tb级数据库存储系统及存储算法 |
CN105022837B (zh) * | 2015-08-17 | 2018-08-03 | 杭州德泽机器人科技有限公司 | 云端多模场景地图分布式存储结构 |
CN105183921B (zh) * | 2015-10-23 | 2019-03-26 | 大连大学 | 移动云计算环境下的基于双色反近邻查询的商店定址系统 |
EP3531310A4 (en) * | 2016-10-24 | 2020-04-29 | Beijing Wellintech Co., Ltd. | METHOD FOR EXTRACTING A DATABASE BASED ON A SPATIO-TEMPORAL DATABASE |
CN107038677A (zh) * | 2017-04-17 | 2017-08-11 | 山东辰华科技信息有限公司 | 基于大数据的科技成果转化服务系统 |
CN107103084A (zh) * | 2017-04-27 | 2017-08-29 | 厦门大学 | 一种质量保证的渐进式并行图像检索方法 |
CN107357802A (zh) * | 2017-05-19 | 2017-11-17 | 江苏龙腾工程设计股份有限公司 | 建筑信息模型数据库的关键词检索方法及系统 |
CN107590260B (zh) * | 2017-09-21 | 2020-02-18 | 北京星闪世图科技有限公司 | 点云数据实时检索方法及其系统 |
CN108038118B (zh) * | 2017-11-01 | 2021-10-15 | 华东师范大学 | 一种位置优先并维护最小外接矩形的kd树构建方法 |
CN109344223B (zh) * | 2018-09-18 | 2022-05-17 | 青岛理工大学 | 一种基于云计算技术的建筑信息模型管理系统及方法 |
CN110134688B (zh) * | 2019-05-14 | 2021-06-01 | 北京科技大学 | 一种在线社交网络中热点事件数据存储管理方法及系统 |
CN111598036B (zh) * | 2020-05-22 | 2021-01-01 | 广州地理研究所 | 分布式架构的城市群地理环境知识库构建方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417679B1 (en) * | 2008-05-21 | 2013-04-09 | Translattice, Inc. | Fast storage writes |
CN102819590A (zh) * | 2012-08-06 | 2012-12-12 | 厦门市美亚柏科信息股份有限公司 | 一种基于c#的快捷数据访问层实现方法 |
CN103714464A (zh) * | 2013-12-10 | 2014-04-09 | 澳柯玛股份有限公司 | 一种应用在智能冰箱上的智能超市系统及运行方法 |
-
2014
- 2014-04-30 CN CN201410180825.6A patent/CN103955511B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103955511A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955511B (zh) | 一种城市3d建筑数据的云平台数据组织和检索方法 | |
CN106528773B (zh) | 一种基于Spark平台支持空间数据管理的图计算系统及方法 | |
CN104063466B (zh) | 虚拟‑现实一体化的三维显示方法及系统 | |
Chalana et al. | Messy urbanism: Understanding the “other” cities of Asia | |
CN108804602A (zh) | 一种基于spark的分布式空间数据存储计算方法 | |
CN106933833A (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN108932347A (zh) | 一种分布式环境下基于社会感知的空间关键字查询方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN108268614B (zh) | 一种森林资源空间数据的分布式管理方法 | |
Wang et al. | Parallel trajectory search based on distributed index | |
CN109190052A (zh) | 一种分布式环境下基于社会感知的空间索引方法 | |
Xiong et al. | Data vitalization's perspective towards smart city: a reference model for data service oriented architecture | |
CN113792068A (zh) | 多层级多专题空间数据组织与检索的方法及装置 | |
Zhang et al. | Topic discovery of clusters from documents with geographical location | |
Shao et al. | Voronoi-based range-kNN search with map grid in a mobile environment | |
He et al. | Design and implementation of a POI collection and management system based on public map service | |
Wu et al. | Multi-source heterogeneous Hakka culture heritage data management based on MongoDB | |
Yao et al. | LandQ v1: A GIS cluster-based management information system for arable land quality big data | |
Xu et al. | [Retracted] Big Data Storage Index Mechanism Based on Spatiotemporal Information Cloud Platform | |
Lamprianidis et al. | Collaborative geospatial feature search | |
Yue et al. | Time-based trajectory data partitioning for efficient range query | |
CN109933567A (zh) | 基于gis模型技术的测绘档案空间化处理应用系统及方法 | |
Gong et al. | Object-oriented and integrated spatial data model for managing image, DEM, and vector data | |
Ma et al. | Research and Practice on Spatio-Temporal Big Data Cloud Platform of the Belt and Road Initiative |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 |
|
CF01 | Termination of patent right due to non-payment of annual fee |