一种用于三维城市模型的细节层次转换方法和系统与流程

文档序号:14873660发布日期:2018-07-07 03:14阅读:240来源:国知局

本发明涉及及地理空间信息系统技术领域,尤其涉及一种用于三维城市模型的不同细节层次间的转换方法和系统。



背景技术:

3d地理信息系统(gis)模型越来越多地用于城市层面的规划和分析。通常需要定义不同细节层次(lod)的3dgis城市模型,以便更有效地浏览和处理大型模型。当在多lod图形用户界面中遍历3d城市模型时,对象的距离会改变,因此需要相应地修改对象的lod表示。因此,需要在3dgis城市模型的lod之间进行自动和快速的转换。

在目前可用的所有常见的3dgis标准中,城市地理标记语言(citygml)具有关于lod的最复杂的定义。citygml是由开放地理空间联盟(ogc)在2008年推出的3d城市对象的通用建模语言。citygml根据地形对象信息、语义信息和外观属性来定义城市对象,例如,建筑物和基础设施。除了citygml中的预定义信息,用户可以在citygml模式中创建应用程序域扩展(ade),以根据特定需要存储信息。在citygml中定义了五种不同的lod,用于高效的可视化和数据分析。citygml的高度集成和可扩展的模式使其成为用于各种应用的3dgis城市模型的趋势。

为了支持可视化中的快速渲染并满足不同的应用需求,必须实现不同lod之间的转换。当前一般的变换方法(例如,顶点聚类和边缘折叠),由于其数据源的限制,且没有考虑具有内部特征(例如,房间或家具)的3d建筑模型,因此不适用于其中内部特征被建模的citygml模型,不能处理具有大量表面的复杂3d模型。因此,目前并没有用于citygml中lod之间的完全转换的详细转换方法。



技术实现要素:

本发明的目的在于提供一种用于三维城市模型的细节层次转换方法和系统以明确了不同细节层次的建筑构件,建立了不同细节层次间的转换机制,可以快速实现具有内部特征的3d建筑模型在不同细节层次间的迅速转换。

一方面,本发明实施例提供一种用于三维城市模型的细节层次转换方法,包括以下步骤:

对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件,输出lod4层次模型,所述建筑构件为一组具有相应语义信息的平面;

根据lod3层次的语义特征,去除所述lod4层次模型中的室内建筑构件,利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为所述lod3层次的几何特征,输出lod3层次模型;

根据lod2层次的语义特征,去除所述lod3层次模型中的开口特征和外部建筑装饰构件,将所述lod3层次模型的几何特征转换为所述lod2层次的几何特征,输出lod2层次模型;以及

根据lod1层次的语义特征,去除所述lod2层次模型中的屋顶结构,将所述lod2层次模型的几何特征转换为所述lod1层次的几何特征,输出lod1层次模型。

优选地,对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件的所述步骤包括:

定位需要解析的建筑;

根据lod4层次的几何和语义特征,提取建筑构件。

优选地,所述lod4层次模型中的建筑构件包括房间、开口、室内建筑装饰、家具、内天花板面、外天花板面、内墙面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁,所述室内建筑构件包括所述房间、所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面;

所述lod3层次模型中的建筑构件包括开口、外天花板面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁,所述外部建筑装饰构件包括所述内楼层面和所述屋顶悬梁;

所述lod2层次模型中的建筑构件包括外天花板面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面。

优选地,还包括:

去除所述lod4层次模型中的所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面;

简化所述lod4层次模型中的所述开口;

利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为lod3子层次的几何特征,输出lod3子层次模型。

优选地,所述lod3子层次模型中的建筑构件包括房间、开口、外天花板面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁

优选地,利用壳提取算法提取建筑物外壳的所述步骤包括:

寻找建筑物的边界球体;

判断每个所述建筑构件的表面对所述边界球体的可见性,其中,如果一个表面上的三个随机生成的点都对所述边界球体可见,则判定该表面为可见表面;

将所有可见表面组成所述建筑物外壳。

相应地,本发明还提供一种用于三维城市模型的细节层次转换系统,包括数据预处理模块和转换模块,所述转换模块包括第一转换单元、第二转换单元、第三转换单元和第四转换单元,其中,

所述数据预处理模块用于对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件,所述建筑构件为一组具有相应语义信息的平面;

所述第一转换单元用于根据建筑构件输出lod4层次模型;

所述第二转换单元用于根据lod3层次的语义特征,去除所述lod4层次模型中的室内建筑构件,利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为所述lod3层次的几何特征,输出lod3层次模型;

所述第三转换单元用于根据lod2层次的语义特征,去除所述lod3层次模型中的开口特征和外部建筑装饰构件,将所述lod3层次模型的几何特征转换为所述lod2层次的几何特征,输出lod2层次模型;以及

所述第四转换单元用于根据lod1层次的语义特征,去除所述lod2层次模型中的屋顶结构,将所述lod2层次模型的几何特征转换为所述lod1层次的几何特征,输出lod1层次模型。

优选地,所述数据预处理模块包括:

定位单元,用于定位需要解析的建筑;

提取单元,用于根据lod4层次的几何和语义特征,提取建筑构件。

优选地,所述lod4层次模型中的建筑构件包括房间、开口、室内建筑装饰、家具、内天花板面、外天花板面、内墙面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁,所述室内建筑构件包括所述房间、所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面;

所述转换模块还包括第五转换单元,用于去除所述lod4层次模型中的所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面;简化所述lod4层次模型中的所述开口;利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为lod3子层次的几何特征,输出lod3子层次模型。

优选地,所述第二转换单元和所述第五转换单元包括壳提取子单元,用于寻找建筑物的边界球体;判断每个所述建筑构件的表面对所述边界球体的可见性,其中,如果一个表面上的三个随机生成的点都对所述边界球体可见,则判定该表面为可见表面;将所有可见表面组成所述建筑物外壳。

实施本发明实施例,具有如下有益效果:本发明提供的用于三维城市模型的细节层次转换方法和系统在考虑3d城市模型中的内部特征和语义信息的基础上,明确了不同细节层次包含的建筑构件,并建立了不同细节层次间的转换机制,可以快速实现具有内部特征(例如,房间或家具)的3d建筑模型在不同细节层次间的迅速转换;新定义的lod3子层次模型可以满足需要关于内部房间的信息的应用的需要,同时保持小的数据存储;基于光线追踪算法开发的新的外壳提取算法可以有效处理具有非凸形状的建筑物,实现建筑物外壳的快速提取。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的用于三维城市模型的细节层次转换方法的流程图;

图2是本发明实施例二提供的用于三维城市模型的细节层次转换方法的流程图;

图3是本发明实施例三提供的用于三维城市模型的细节层次转换系统的原理图;

图4是本发明实施例四提供的用于三维城市模型的细节层次转换系统的原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种用于三维城市模型的细节层次转换方法。参见图1,该用于三维城市模型的细节层次转换方法包括以下步骤:

步骤s110:对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件,输出lod4层次模型。

citygml使用边界表示法(brep)来模拟城市对象的几何形状,因此每个建筑构件都由一些平面限定以显示其3d形状。因此,在本实施例中,所述建筑构件为一组具有相应语义信息的平面。

具体地,在本实施例中,利用开源的citygml4jjava库,在数据输入过程中在citygml文件和java类之间进行转换,将输入的citygml文件转换为java类。

进一步地,对于给定的输入3d城市模型,首先定位所有建筑物。接着,在citygml4j的帮助下,提取诸如墙壁、开口和屋顶的建筑构件用于进一步的预处理。因此,步骤s110包括以下子步骤:

步骤s112:定位需要解析的建筑;

步骤s114:根据lod4层次的几何和语义特征,提取建筑构件。

在建筑构件的提取过程中,当程序确定要提取哪些建筑构件时,遵循表1中概述的建模要求和建筑特征要求。如表1所示,所述lod4层次模型中的建筑构件包括房间、开口、室内建筑装饰、家具、内天花板面、外天花板面、内墙面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁。

表1citygml中不同lod中包含的建筑构件

步骤s120:根据lod3层次的语义特征,去除所述lod4层次模型中的室内建筑构件,利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为所述lod3层次的几何特征,输出lod3层次模型。

具体地,如表1所示,lod4模型是citygml中最详细的模型,包括几乎所有关于建筑部件的几何信息。lod4模型与citygml中的lod3模型在室内建筑功能(如房间,楼梯和家具)方面有所不同。因此,lod4到lod3模型的变换基本上去除了这些特征并且将lod4几何(即表面,实体,曲线)改变为lod3几何。因此,这是包括语义信息处理和几何变换的过程。进一步地,当保留lod3特征时,还将检查保留的特征是否符合几何信息要求。当将lod4几何改为lod3几何时,我们使用java架构xml绑定(jaxb)来搜索特征并将特征转换为lod3几何。

进一步地,所述lod3层次模型中的建筑构件包括开口、外天花板面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁。

步骤s130:根据lod2层次的语义特征,去除所述lod3层次模型中的开口特征和外部建筑装饰构件,将所述lod3层次模型的几何特征转换为所述lod2层次的几何特征,输出lod2层次模型;

具体地,如表1所示,由于lod2层次和lod3层次之间的数据要求的差距,将模型从lod3变换到lod2时,大量的信息是不可靠的。如表1所示,在转换过程中去除诸如窗和门的开口。其他特征,例如,外部建筑物安装,也将被移除。

进一步地,所述lod2层次模型中的建筑构件包括外天花板面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面。

步骤s140:根据lod1层次的语义特征,去除所述lod2层次模型中的屋顶结构,将所述lod2层次模型的几何特征转换为所述lod1层次的几何特征,输出lod1层次模型。

具体地,在本实施例中,如表1所示,lod1层次模型中的建筑物是没有任何屋顶结构的箱子。因此,lod2到lod1变换只是简单地删除所有的屋顶结构,并为其余的墙壁建立包络线。lod2和lod1模型之间的差异如表1所示。虽然lod1是典型的块模型,但墙的形状仍然保留在模型中。所有剩余的表面被写入一个实体citygmllod1模型。由于屋顶在此过程中被首先移除,所以在lod1模型中将不会呈现屋顶悬伸。

本实施例提出的用于三维城市模型的细节层次转换方法考虑了3d城市模型中的内部特征和语义信息,明确了不同细节层次包含的建筑构件,并建立了不同细节层次间的转换机制,可以快速实现具有内部特征(例如,房间或家具)的3d建筑模型在不同细节层次间的迅速转换。

实施例二

本实施例提供了一种用于三维城市模型的细节层次转换方法。参见图2,该用于三维城市模型的细节层次转换方法包括以下步骤:

步骤s210:对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件,输出lod4层次模型。

如表1所示,所述lod4层次模型中的建筑构件包括房间、开口、室内建筑装饰、家具、内天花板面、外天花板面、内墙面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁。

步骤s220:去除所述lod4层次模型中的所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面,简化所述lod4层次模型中的所述开口,利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为lod3子层次的几何特征,输出lod3子层次模型。

lod4层次模型通常包含大量有关详细几何和语义信息的信息。与lod3型号相比,lod4层次模型包含室内装饰,例如,房间、地板和家具。lod4模型不再是块模型,并且具有建筑物的楼层表示,有了这样的详细信息,lod4模型可以支持各种应用,例如,能耗模拟和房间级分析。然而,citygml中的lod4模型在文件大小方面往往太大,无法被有效地呈现和传输。因此,我们提出一个新的lod3子层次模型,它具有较小的文件大小,但仍支持在房间级别的模拟和分析。如表1所示,所述lod3子层次模型中的建筑构件包括房间、开口、外天花板面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁,因此,在lod3子层次模型中包含建筑物的内部和外部特征,但具有简化的几何形状。lod3子层次模型具有以下三个属性:

首先,为了减少文件存储,lod3子层次模型是类似于lod2模型的块模型。因此,在步骤s220中,关于形成块的表面的语义信息,例如,构造类型和功能,将被保持和存储;

其次,由于开口对于诸如采光和自然通风模拟的许多分析是重要的,因此,开口特征也保持在lod3子层次模型中。由于块模型中的壁不具有厚度,因此,这些开口将被简化并投影到壁表面,保留在这些表面上以显示可访问空间的特征;

最后,lod3子层次模型不存储诸如家具的内部特征,但是它们可以保持房间或空间规范以支持基于地板或房间的更广泛的应用。用户可以存储建筑物内的房间的大小和位置,而不考虑其实际边界。

由于上述特性,lod3子层次模型将具有丰富的数据,足以可视化,并支持广泛的应用。在lod3层次模型中,门窗通常具有复杂的形状,并且使用许多曲面来建模它们的边界表示(brep);此外,lod3模型中的壁具有厚度,并且由brep中的多个表面表示。但lod3子层次模型仅使用一个表面来表示每个窗,门和墙。因此,lod3.5模型可以保留建筑模型的重要特性,同时还具有占用较小的内存。

步骤s230:根据lod2层次的语义特征,去除所述lod3子层次模型中的开口特征和外部建筑装饰构件,将所述lod3子层次模型的几何特征转换为所述lod2层次的几何特征,输出lod2层次模型;

步骤s240:根据lod1层次的语义特征,去除所述lod2层次模型中的屋顶结构,将所述lod2层次模型的几何特征转换为所述lod1层次的几何特征,输出lod1层次模型。

本实施例中,通过lod3子层次模型可以满足需要关于内部房间的信息的应用的需要,同时保持小的数据存储。

进一步地,在实施例一和实施例二中都包括利用壳提取算法提取建筑物外壳的步骤。当试图简化建筑模型时,建筑物的外壳的提取是常见的步骤。虽然外部特征和内部特征可以在citygml中定义,但是一些输入模型可能不一定将特征区分为内部或外部。例如,从其他数据格式(如ifc或kml)转换的citygml模型可能无法定义每个曲面是内部还是外部。因此,需要提取输入模型的外壳。

在数据处理之后,citygml模型被分成具有相应语义信息的许多平面。我们的目标是通过从外部检查这些表面的外观,找到它们的外壳。因此,利用壳提取算法提取建筑物外壳的步骤包括以下子步骤:

寻找建筑物的边界球体;

判断每个所述建筑构件的表面对所述边界球体的可见性,其中,如果一个表面上的三个随机生成的点都对所述边界球体可见,则判定该表面为可见表面;

将所有可见表面组成所述建筑物外壳。

在上述可提取算法中,第一步是找到外部,这是建筑物的边界球体。接下来,检查每个表面对边界球上的点的可见性。使用光线跟踪算法确定表面的可见性,假设观察光线从球体上的点射出点,其中,如果一个点不能从边界球上的任何点可见,判定包含该点的任何表面不能位于建筑模型的外壳上。如果从表面的三个随机生成的点都从边界球体可见,则表面被认为是可见的,并且因此在建筑物的外壳上。为了避免故障判断,其中一些外表面从边界球不可见,因此还将检查所产生的外壳的连续性。如果表面存在孔,还将重复检查孔内的表面,看看它们是否在外部。

在执行外部提取算法之后,外壳上的表面将被转换为lod3层次或lod3子层次的建筑构件,并且将生成lod3层次模型或lod3子层次模型。基于光线追踪算法开发的新的外壳提取算法利用citygml模型中的语义信息,发现建筑的精确外壳形成lod3模型。与其他方法例如足迹跟踪相比,新算法可以处理具有非凸形状的建筑物。

实施例三

图3是本发明一实施例提供的用于三维城市模型的细节层次转换系统的原理图。如图3所示,用于三维城市模型的细节层次转换系统包括数据预处理模块310和转换模块320。

所述数据预处理模块310用于对输入的citygml文件进行解析处理,提取其中包含的几何数据和语义信息,生成建筑构件,所述建筑构件为一组具有相应语义信息的平面,包括:

定位单元312,用于定位需要解析的建筑;

提取单元314,用于根据lod4层次的几何和语义特征,提取建筑构件。

所述转换模块320包括第一转换单元322、第二转换单元324、第三转换单元326和第四转换单元328,其中:

所述第一转换单元322用于根据建筑构件输出lod4层次模型;

所述第二转换单元324用于根据lod3层次的语义特征,去除所述lod4层次模型中的室内建筑构件,利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为所述lod3层次的几何特征,输出lod3层次模型;

所述第三转换单元326用于根据lod2层次的语义特征,去除所述lod3层次模型中的开口特征和外部建筑装饰构件,将所述lod3层次模型的几何特征转换为所述lod2层次的几何特征,输出lod2层次模型;以及

所述第四转换单元328用于根据lod1层次的语义特征,去除所述lod2层次模型中的屋顶结构,将所述lod2层次模型的几何特征转换为所述lod1层次的几何特征,输出lod1层次模型。

实施例四

图4是本发明一实施例提供的用于三维城市模型的细节层次转换系统的原理图。与图3所示的实施例的不同之处在于,该用于三维城市模型的细节层次转换系统转换模块320还包括第五转换单元330。

由于在所述lod4层次模型中的建筑构件包括房间、开口、室内建筑装饰、家具、内天花板面、外天花板面、内墙面、内楼层面、外楼层面、屋顶面、建筑装饰、墙面、地面、闭合面和屋顶悬梁,所述室内建筑构件包括所述房间、所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面。因此,所述第五转换单元,用于去除所述lod4层次模型中的所述室内建筑装饰、所述家具、所述内天花板面、和所述内墙面;简化所述lod4层次模型中的所述开口;利用壳提取算法提取建筑物外壳,将所述lod4层次模型的几何特征转换为lod3子层次的几何特征,输出lod3子层次模型。

进一步地,由于所述第二转换单元322和所述第五转换单元330需要利用壳提取算法提取建筑物外壳,因此,第二转换单元322和所述第五转换单元330包括壳提取子单元,用于寻找建筑物的边界球体;判断每个所述建筑构件的表面对所述边界球体的可见性,其中,如果一个表面上的三个随机生成的点都对所述边界球体可见,则判定该表面为可见表面;将所有可见表面组成所述建筑物外壳。

需要说明的是:上述实施例提供的用于三维城市模型的细节层次转换系统在实现用于三维城市模型的细节层次转换方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于三维城市模型的细节层次转换系统与用于三维城市模型的细节层次转换方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1