叶芳毅
摘 要:三维城市模型标准化的研究,尚未引起国内学者的注意,该文基于笔者多年从事地理信息系统的相关工作经验,以三维城市模型为研究对象,分析了CityGML模型的概念,专题模型的构建方法,给出了构建的实例,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。
关键词:CityGML 三维城市模型 数字地形模型 建筑物模型
中图分类号:P2 文献标识码:A 文章编号:1674-098X(2012)12(b)-000-02
三维城市模型数据的交换需要面对GIS业界历来关注的数据异构问题,即交互的两个系统之间存在语法、语义差异。地理标记语言(GML)封装了空间地理参考系统,具有描述几何拓扑、时间等信息的能力,便于地理信息的分布式存储和交换。以GML为介质的WFS(网络要素服务)接口规范,得到了GIS软件厂商的广泛支持,为异构地理信息系统之间实现了语法级的互操作。语义互操作性设想在某一领域存在对现实世界的对象及其属性和关系的公认定义,然而目前尚未有被广泛认可的三维城市语义模型存在。
近年来,人们也提出了一些三维城市模型,但这些模型大多是纯几何模型,而忽略了语义和拓扑层面,基本上只能用于可视化目的,对专题查询、分析或空间数据挖掘等支持很差,可重用性有限。因此有必要采用泛化建模方法,以满足不同应用场合的信息需求。CityGML由德国北莱茵河-威斯特伐利亚地区空间数据基础设施三维特别兴趣小组于2002年开始研发,致力于描述三维城市对象的共同语义信息,以期能成为三维城市模型数据交换格式标准。而三维城市模型标准化的研究,尚未引起国内学者的注意。
1 CityGML基本概念
1.1 细节层次模型(LOD)
Clark于1976年最初提出了细节层次模型的概念。根据处理分析和展示多源数据的需要,CityGML把描述三维城市对象的精细程度分为5个细节层次。LOD0实质上就是2.5维的DTM数据,可以在其上叠加航空影像或者2维地图。LOD1用块状表示建筑物,屋顶、纹理数据、植被对象在LOD2层次描述。LOD3层次描述建筑物的结构,包括墙、屋顶结构、阳台等,可以把高分辨率的纹理叠加到这些结构面上。此外,交通对象、植被对象在这一层次做了更精细地描述。LOD4层次主要对房间的内部结构、门、窗、楼梯、家具等对象进行建模。
不同细节层次,点位的定位精度要求是不一样的,如LOD1下定位精度要求为
5 m,而在LOD4下要求为0.2 m甚至更小。因此可以通过LOD级别来评价三维城市数据集的质量。
由此可见,用户可根据应用需求,采用不同的层次建模。在一个CityGML数据集中,同一对象可以在不同细节层次上表示,而同一个对象的不同细节层次的数据也可以分别放在两个数据集中。细节层次模型既便于三维对象可视化展示,也便于多源数据的集成。
1.2 几何拓扑建模
如果既要维护空间完整性又要避免对象的几何描述数据的冗余,几何拓扑模型是必不可少的。ISO19107标准已建立表达空间对象的几何属性与拓扑关系的概念。然而该标准提供了大量的建模选择,如果建模目的仅局限于某一方面,该标准显得太过复杂。因此基于ISO19107,CityGML采用更为紧凑易用的模型。
CityGML用边界表达方法对专题对象的空间属性进行几何拓扑建模,即0~3维基本几何元素分别为点、边、面、立体等。边、面、立体等基元可以相应地聚合成为弧聚合体、面聚合体、立体聚合体。CityGML要求点、边、面、立体基元及聚合体必须满足一些完整性约束,确保模型的一致性。如几何基元内部元素必须是相离的,如果两个元素有公共边界,则该边界必须是低一维的几何基元。这些约束条件消除数据冗余,并确保拓扑关系清晰性,如任两个立体基元之间是相离的,它们的体积即为两者体积之和,反之若允许两个立体基元有交叉的话,计算它们的体积将麻烦得多。
1.3 几何语义建模
CityGML实现了对空间对象的几何拓扑属性和语义进行一致性建模。在语义特征方面,CityGML通过专题模型描述现实对象(如建筑物)及其属性、层次关系等。在空间特征方面,现实对象的空间属性即为几何拓扑对象。CityGML模型涵盖语义和几何拓扑两个层次体系,其优点是便于分别在各自层次体系中遍历,或在它们之间相互遍历。
1.4 闭合面和地下对象
在三维建模时,隧道、地下人行通道等地下对象,其建模方法有别于一般的地表面对象。首先不易确定其几何体类型。地上对象可直观地使用一个闭合几何体表达其形状,但对地下对象,却需要形象描述其中空部分所处的空间。ISO19107标准用外壳表达这样的中空部分。然而,既然这个外壳是闭合的,即不应存在从其内部连接到外部的通道,但这和人造地下构筑物的概念不相符合。因此,必须使模型能够较好的表达地下构筑物的入口。
另一个问题是地下对象和DTM的无缝集成。其一是在DTM中产生孔洞描述入口,然而DTM要描述地表面,要求不应存在孔洞。
当DTM和地下对象集成时,确保它们在入口处无缝接合,可用受约束三角网来实现,即把地下对象和地表相交形成的边,当作DTM的边,相交面为两者所共有。CityGML引进了“闭合面”(ClosureSurface)这个概念,对于没有闭合的对象,用虚拟的“闭合面”缝合,如这里提到的相交面。当计算体积时,把地下对象当作闭合实体来看待,当进行可视化时,把相交面设为不可见。
1.5 三维模型的简化
CityGML支持对现实对象精细化描述,但并不意味着在建模时一味地盲目追求仿真、模拟原形。对于具有几何不变性、表面材质纹理的相似性及重要的形状和位置特征(朱庆等,2003)的现实对象,如同一种类的树木、路灯、电杆等,CityGML采用几何隐含的建模方法,即建立一个逼真的三维模型(保存到VRML、DXF或X3D文件中)重复使用,三维模型的定位由表达其三维空间地理位置的参考点(referencePoint) 和空间姿态参数(一个4维变换矩阵)决定。
2 专题模型
作为一种多功能三维城市数据模型和交换格式,CityGML基于ISO191XX系列标准,用GML3实现了建筑物、DTM、交通、植被、水资源、城市设施、土地利用等三维城市模型。作为示例,该文介绍DTM模型和建筑物模型。
2.1 DTM模型
地形在三维城市建模中重要一部分,CityGML用起伏要素(ReliefFeature)来描述,一个起伏要素对象描述了某一块地域的地形起伏。地形可以表现为规则格网(RasterRelief)、不规则三角形(TINRelief)、断裂线(BreaklineRelief)、质点集(一系列三维点,MassPointRelief)等。断裂线表示地形表面不连续的部分,如山脊、峡谷等,在几何上表现为三维曲线。
在CityGML数据集中,这四种地形表现形式可以灵活组合。首先,每种类型均可在不同LOD中出现,反映不同的精度和分辨率。其次,每块地表可用不同组合方式来描述,如格网和断裂线,或TIN、断裂线的组合。在这种情形下,断裂线和不规则三角网必须缝合。再次,相邻地域的地形可以使用不同的形式表达。为便于不同地域地形的组合,每一起伏要素对象用一个二维(可含“洞”)多边形来指定它的有效范围,这种方法便于对不同精度的地形进行拼合。
2.2 建筑物模型
建筑物模型是CityGML的核心,用于表达建筑物及组成部分、附属部分的空间和专题特征。图1给出四种细节层次下建筑物的展示效果。AbstractBuilding类是该模型的枢纽,它是CityObject类的子类。AbstractBuilding的派生类有BuildingPart和Building类,即把建筑物的某一部分在建模时把它当作抽象“建筑物对象”。另外,一个Building对象可以是一个复杂建筑物对象(Building Complex)的一部分。
建筑物和地形的集成是三维城市建模的一个重要课题,特别是当考虑不同LOD层次的地形数据和建筑物模型数据叠加时。为此引入了建筑物和地表面的“交叉曲线”(TerrainIntersection)这个概念,该曲线描述了建筑物和地表面接合的确切位置,为环绕该建筑物的一个闭环。如果某个建筑物包含院子,则该曲线由两个闭环组成,依次类推。在集成时,把建筑物和地形表面进行拖拽,直至其与交叉曲线缝合,确保纹理的正确定位。因不同LOD层次的数据精度不同,所以在一个建筑物可能在不同的LOD有相应的交叉曲线。
在LOD2层次,已可以清晰分辨建筑物的各个面,如屋顶、墙、地板等。为消除数据冗余,表达它们空间属性的面几何体,同时又为表达整个建筑物的几何立体所引用。建筑物的空缺部分如窗口,用闭合面表达。一个LOD2建筑物的几何形状,可由多个立体聚合体和面聚合体组成。此外,一个LOD2的建筑物还可能包括烟囱、阳台、天线等,用BuildingInstallation表示。CityGML对这类设施的几何形状类型没有作限制,用ObjectGeometry类来描述。该类是SolidGeometries(立体聚合体)、CurveGeometries(弧聚合体)、SurfaceGeometries(面聚合体)等聚合类的父类。
在LOD3层次下,建筑物的空缺部分用Opening类对象来表达,其派生类包括Door和Window等。Openings类是CityObject类的派生类,意味着可以直接从外部数据集直接引用它的对象实例。
LOD4对LOD3进一步作了补充,添加了对建筑物内部结构的描述,如“房间”为天花板、内墙、地板等面“包”住。多个房间聚合成“房间组合体”(GroupOfRooms), 房间之内放置家具(Building_ Furnitures)、附属设施等。CityGML区分二者的准则是前者是房间内可移动的部分,而后者是永久性地和房间固定在一起,如楼梯、柱子。在LOD4层次,门在拓扑意义上连接了两个邻接的房间,即表示门的面体在几何意义上是两个房间几何体的边界之一部分。
图1 LOD1-LOD4建筑物模型
3 建模实例
CityGML目前主要在德国的柏林等几个城市得到了应用。柏林市建设了一个虚拟三维城市模型系统,其系统数据库基于CityGML的逻辑结构设计,用于存储和管理三维数据,目前主要有以下类型的数据:(1)地籍数据;(2)航空影像;(3)DTM(数字地型模型),20 m精度部分作为框架数据,高分辨率DTM作为三维城市模型的核心数据,特殊地区用TIN建模;(4)建筑物模型数据,在大约250 km2范围内采用激光扫描或摄像测量方法对建筑物进行三维重建,LOD3、LOD4层次的数据主要通过CAD或3D MAX等工具建模,然后再转换成为CityGML
格式。
图2 建筑物模型
CityGML开发人员也做了一些应用于灾害管理方面的建模实验,如在洪水淹没仿真时,评估人员可以根据楼层的高度和楼层的地下部分,评估建筑物的受损程度;利用建筑物内部拓扑结构图,求解水、烟气等的通路,用经典的最短路径算法来计算逃生路径等。对于每一个建筑物而言,在三维模型中把它当作一个cityObjectMember看待,它的空间属性可以用不同LOD2层次的数据来描述,如图3所示。
图3 建筑物对象
4 结语
CityGML致力于提供三维城市模型数据标准,使人们避免针对不同的应用进行大量的重复建模工作,便于在网络环境下实现三维数据的交换与互操作。CityGML开发小组于2005年向OGC提交了0.3.0版本的讨论稿,今年9月份在其网站上已经发布了0.4.0版本,其专题模型还在完善之中。
CityGML被OGC评为GML最佳实践项目,预计将很快成为OGC的一项标准。为使WFS规范支持 CityGML,OGC已经开始做了相关的实验。波恩大学制图与地理信息学院向OGC提交了W3DS(Web 3D Service)规范的讨论稿,或许CityGML会像GML一样,成为W3DS服务的传输
介质。
在软件支持方面,目前LandXplorer等软件可编辑并对CityGML进行三维可视化展示;英国Snowflake软件公司的GO Publisher,是一款WFS服务器软件,可以从关系数据库中把三维模型数据直接发布成为CityGML数据。目前一些主流GIS软件已经部分支持GML文件的读取,如ArcGIS9等,可以期待当CityGML成为OGC标准之后,将会得到更多GIS平台软件的支持。
参考文献
[1] 李军.三维GIS空间数据模型及可视化技术研究:[D].长沙:国防科学技术大学,2000.
[2] 朱庆,GIS中三维模型的设计[J].武汉大学学报(自然科学版),2003,3(28):283-287.