王永君,陳青燕,楊玉嬌,陳學業(yè),孫 劍
1. 南京師范大學江蘇省地理信息資源開發(fā)與應用協(xié)同創(chuàng)新中心, 江蘇 南京 210023; 2. 南京師范大學虛擬地理環(huán)境教育部重點實驗室,江蘇 南京 210023; 3. 南京師范大學地理環(huán)境演變國家重點實驗室培育點, 江蘇 南京 210023; 4. 上海樹融數(shù)據(jù)科技有限公司,上海 200082; 5. 自然資源部城市國土資源監(jiān)測與仿真重點實驗室, 廣東 深圳 518034
三維城市模型作為數(shù)字城市及智慧城市空間框架數(shù)據(jù)的核心內(nèi)容[1-3],被廣泛應用于旅游、室內(nèi)導航、災害逃生、城市規(guī)劃、虛擬戰(zhàn)場等領域[4-7]。但目前開放的三維城市模型一般是面向可視化或者具體應用,模型中會存在語義、拓撲和幾何不一致性的問題,如建筑物幾何模型未閉合、建筑墻面為非平面等[8],從而導致三維模型并不能滿足主題查詢、空間數(shù)據(jù)挖掘以及基于空間關系計算、分析等方面的需求,不利于其在下游領域的深層次應用。對三維空間模型數(shù)據(jù)的幾何、拓撲和語義的一致性檢測和修復是三維模型空間分析和下游領域深度應用的前提和保證[9-10],其中三維空間模型數(shù)據(jù)的拓撲一致性是保證模型幾何、拓撲表達的真實性、正確性的重要方面[11-12]。在CAD領域,三維實體通常以邊界表示法(boundary representation,B-rep)表示,并以數(shù)據(jù)結(jié)構強制性要求多面體為流形形體[13-14]。在GIS相關領域,對三維模型的檢測主要根據(jù)模型建模需求定義幾何拓撲一致性規(guī)則,再以規(guī)則檢測模型為主[15-16]。文獻[12]針對3D城市模型的拓撲一致性檢測給出13條規(guī)則,從拓撲和數(shù)學公理兩個方面驗證規(guī)則的完整性、正確性、有效性。但該規(guī)則未考慮多面體的孔洞問題,無法檢測CityGML(city geography markup language)模型LOD3中含有門窗的建筑物,模型的拓撲檢測不完整。
本文擬針對CityGML模型數(shù)據(jù),提出適合多種LODs數(shù)據(jù)的語義約束下的拓撲一致性規(guī)則,設計相應的檢測算法,并采用公開數(shù)據(jù)對算法進行試驗與驗證。
CityGML是開放地理空間信息聯(lián)盟(open geospatial consortium,OGC)為實現(xiàn)三維城市模型信息共享和可視化而提出的國際標準,基于XML模式實現(xiàn)了虛擬三維城市模型中城市空間對象三維幾何、拓撲、語義信息的存儲和交換[17-18]。作為一種開放、結(jié)合室內(nèi)外場景的數(shù)據(jù)模型,CityGML被廣泛地應用于三維GIS領域,如室內(nèi)外一體化導航、無人駕駛、防災減災、路徑分析等[19-20]。CityGML有如下特點:①按照GML3.1.1實現(xiàn)了建筑物、地形、交通、植被、水體、城市設施、土地利用等三維城市專題模塊,其中以建筑物模型的使用最為廣泛與復雜;②CityGML中空間對象的幾何屬性通過幾何-拓撲模型進行表示[21],即更高維度的圖元拓撲由低維原語構建,簡單幾何模型一般有4個維度的基本幾何元素,每一個維度對應一個幾何-拓撲基元,零維(point)、一維(curve)、二維(surface)、三維(solid),即點、線、面、體;③針對同一個地理空間對象,CityGML在模型的語義層面上,對空間對象的屬性或?qū)ο笾g的關系進行描述,在空間層面上,對空間對象所在的空間位置和范圍等進行描述,因此CityGML的拓撲一體化模型通過對應關系相互聯(lián)系空間對象的幾何語義建模和幾何拓撲建模兩個方面[22](圖1);④針對同一空間對象的語義、拓撲與幾何信息,CityGML模型將描述的精細程度分為5個細節(jié)層次LOD0—LOD4,針對建筑物、建筑物部件以及建筑物附屬設施由簡到繁的表達(圖2)。
圖1 CityGML語義、幾何與拓撲一致性模型[22]Fig.1 CityGML semantic, geometric and topologic consistency model[22]
圖2 CityGML 5個細節(jié)層次[16]Fig.2 The five LODs of CityGML[16]
CityGML建筑物模型的一致性規(guī)則主要有幾何拓撲和幾何語義兩個方面。其幾何要素的空間屬性通過GML3的幾何-拓撲模型進行表示,GML3的幾何模型在ISO19107標準上構建。因此根據(jù)ISO19107等通用的國際標準提取建筑物模型的幾何檢測規(guī)則,可以在保證建筑物幾何有效性的同時,減少不同模型之間數(shù)據(jù)模型集成的沖突。CityGML的語義屬性代表對象在現(xiàn)實空間中的具體意義,因此可根據(jù)不同語義對象在現(xiàn)實空間的屬性,定義針對建筑物的拓撲規(guī)則。
1.2.1 拓撲規(guī)則提取
通過分析ISO19107/OGC/GML3[10,16,23-24]等標準中幾何圖元點、線、面、體的定義,根據(jù)幾何維度不同,分層次對幾何模型定義相應拓撲規(guī)則。其中,參照CityGML OGC標準,surface不考慮曲面,而是由平面片構成,以polygon表示;curve被強制定義為折線,以line string進行表示;solid定義為用封閉表面shell圍起來的邊界,體有內(nèi)外邊界,即內(nèi)外shell之分。具體規(guī)則定義如下。
(1) 環(huán)規(guī)則
規(guī)則1:linear ring至少由3點組成,當只有3點時,第1點和最后一點坐標不可相同,記為CL-NumPoints&CL-Close。
規(guī)則2:除了首末點,linear ring上其他點的坐標值不同,記為CL-DupPoint。
規(guī)則3:linear ring上點不能重復,記為CL-DupRing。
規(guī)則4:linear ring具有非自相交性,記為CL-SelfInt。如圖3(a)的solid因為面上內(nèi)外環(huán)相交而無效。
(2) 面規(guī)則
規(guī)則5:polygon上所有點需在同一個平面上,但允許有一定的平面允許容差,記為CP-Plan-Dist&CP-Plan-Dist-TRI。
規(guī)則6:同一個面上內(nèi)外環(huán)方向相反,外環(huán)方向為右手系逆時針方向,記為CP-Clockwise。
規(guī)則7:polygon上的內(nèi)外環(huán)拓撲關系為外環(huán)包含內(nèi)環(huán),記為CP-InROutside。
規(guī)則8:面上內(nèi)環(huán)之間不能相交或重疊,記為CP-NoCrossing。
規(guī)則9:面內(nèi)部必須連通可達,記為CP-Connected,如圖3(b)上表面,一個內(nèi)環(huán)因?qū)⒁粋€平面分成兩部分而無效。
(3) 體規(guī)則
規(guī)則10:solid至少由4個有效且位于不同平面上的面組成,記為CS-NUMFaces。
規(guī)則11:solid上的每一條邊被兩個面,且僅被兩個面所共享,為流形形體。記為CS-Non ManifoldEdge&CS-NonManifoldVer。如圖3(c),一條公共邊被3個面所共享而無效。
規(guī)則12:構成solid的各個面不相交,記為CS-SelfInt。
規(guī)則13:構成solid上的每個面都有方向,且面的法向量必須都指向solid外部,記為CS-Face-Orient&CS-Face-Out。
規(guī)則14:solid必須有連通性,記為CS-Connected。如圖3(c),solid兩部分不可達。
規(guī)則15:內(nèi)shell必須在外shell內(nèi)部,且shells之間不能相交重疊,只能相切于點、線,記為CS-Inshell-Outside。如圖3(d),solid因內(nèi)部shell之間的交叉而無效。
圖3 4個不符合檢測規(guī)則的無效solidFig.3 Four invalid solids which break the validation rules
1.2.2 語義屬性規(guī)則提取
基于幾何語義一致性原則,CityGML中的面元素、體元素都有對應的語義屬性信息,可從語義屬性中分析提取空間實體的拓撲一致性規(guī)則,包括空間隱喻規(guī)則與非空間隱喻規(guī)則??臻g隱喻規(guī)則如幾何對象間的方向約束、拓撲關系約束或者距離約束。如在LOD2、LOD3中語義為wall surface的空間對象相對應的幾何表達為polygon,wall surface的語義屬性會對該polygon幾何元素有法向量方向約束,即可提取相應規(guī)則;非空間隱喻規(guī)則如門窗與墻體的is-part-of的關系。
(1) 語義屬性對空間對象的方向約束需考慮CityGML多層次的特點,模型中不同的LOD層次所含語義對象信息不同,則有不同的方向約束規(guī)則。具體見表1。
表1 不同語義屬性對語義對象的方向約束規(guī)則
(2) 語義屬性對空間對象間的拓撲關系約束。該約束考慮不同語義對象間的拓撲關系,根據(jù)CityGML的數(shù)據(jù)特點,將其支持的三維拓撲關系分為相等(equal)、相離(disjoint)、相交(intersects)、相切(touch)、包含(contains)5種,且根據(jù)分層的幾何結(jié)構規(guī)則,僅考慮相同幾何基元間的拓撲關系。在LOD1和LOD2中,建筑物的幾何信息是單個幾何體或者復合面, 針對該語義對象考察點與點、線與線、面與面間的拓撲關系;在LOD3中,門窗與墻以面表示,需要考慮門、窗等語義要素在幾何上的拓撲關系,wall surface上的點與window/door上的點應在同一平面上,且門窗與墻面內(nèi)環(huán)相切,墻面幾何的內(nèi)環(huán)間不能相離、相交或重疊等;在LOD4中建筑物為復合體,包括墻、門窗、室內(nèi)房間、樓梯等幾何體,室內(nèi)幾何對象之間不能相交,且被包含于整個建筑物外圍,整個建筑物外圍包括 roof surface、wall surface和ground surface。部分空間對象的拓撲關系約束形式化表達見表2。
表2 語義屬性約束下的拓撲關系表達
(3) 語義屬性對空間對象的距離約束。根據(jù)GB50352—2019《民用建筑設計統(tǒng)一標準》及GB 50096—2011《住宅設計規(guī)范》中對常見室內(nèi)對象的設計規(guī)定,可分析提取針對空間對象層高、凈高等距離關系的約束規(guī)則[25-26](表3)。
表3 不同語義對象的距離約束規(guī)則示例
(4) 非空間隱喻對空間對象的約束。一些語義關系,如is-part-of等只能在語義層面提取[27],如每個room必定與一個door關聯(lián)并與其相切,3樓的stair way必須高于2樓的stair way等常識性規(guī)則,則需對stair way所在樓層、floor所在樓層信息,門窗與房間is-part-of的關聯(lián)關系等非空間隱喻提取拓撲一致性檢測規(guī)則,具體示例見表4。
表4 語義對象間的非空間隱喻規(guī)則示例
本文以產(chǎn)生式表示法表示規(guī)則集,一個產(chǎn)生式對應一個規(guī)則,并采用點、線、面、體、多體等不同幾何維度的分層檢測算法進行拓撲一致性檢測。高維度的拓撲檢測建立在低維度的幾何一致性基礎上。
上述規(guī)則,最終可轉(zhuǎn)換為諸如平面擬合、距離判斷等約束條件,采用最小二乘法、三維布爾運算等算法,進行判斷與求解。由于涉及的檢測算法較多,考慮到平面檢測在模型檢測中比較典型,本文僅以此為代表進行介紹。
2.1.1 投影降維檢測
三維空間數(shù)據(jù)相較二維空間數(shù)據(jù)復雜,由直線的幾何投影特性可知:三維平面向不垂直于該面的另一個二維面進行投影,投影面上各點的順序關系不會發(fā)生改變,即投影點之間的拓撲關系與相對應空間點之間的拓撲關系一致。因此在拓撲一致性檢測的過程中,三維面的自相交檢測可通過降維投影到相應的二維平面,通過二維面的自相交檢測判斷空間面是否相交。但由于投影有積聚性和收縮性,若向垂直于該面的平面進行投影,則所有點會積聚為一條線,投影后各點之間的距離也會發(fā)生改變。為了避免投影的積聚性和減少投影收縮可能引起的判斷誤差,根據(jù)空間三維面的單位法向量判定投影方向,選擇沿法向量的3個方向軸的最大矢量軸進行投影,若法向量為(0,0,1),則沿Z軸向xy平面投影。因此點、線、面幾何元素的自相交、面上內(nèi)外環(huán)等拓撲一致性通過投影降維進行檢測。
2.1.2 拓撲一致性檢測算法
針對三維平面的檢測規(guī)則共有5條,面元素的幾何一致性檢測建立在該面所有環(huán)都具有拓撲一致性的基礎上,并考慮幾何結(jié)構和語義對象兩種規(guī)則約束。針對規(guī)則(5),通過同一面上所有空間點到擬合面的距離可檢測構成該面的點是否在給定的精度閾值范圍內(nèi)共面,采用最小二乘法生成擬合面[28];針對規(guī)則(6)、(7)、(8),先將三維面投影降維到二維面,然后對投影面做環(huán)方向檢測、包含檢測以及內(nèi)環(huán)相交檢測;針對規(guī)則(9),可首先將三維面進行三角剖分,通過判斷剖分后三角形之間的連通關系,檢測面內(nèi)部的連通性。本文提出另外一種方法,由于面的內(nèi)部連通性主要由內(nèi)環(huán)與外環(huán)、內(nèi)環(huán)之間的關系決定,當其關系滿足以下的約束時,面的內(nèi)部是連通的(各個條件為遞進關系,即從上到下,滿足條件即可終止判斷):
(1) 面有且只有一個外環(huán),無內(nèi)環(huán)。
(2) 面有一個內(nèi)環(huán),且內(nèi)環(huán)與外環(huán)沒有公共頂點。
(3) 面有一個內(nèi)環(huán),內(nèi)環(huán)與外環(huán)之間只有一個公共頂點。
(4) 面有多于一個內(nèi)環(huán),每個內(nèi)環(huán)都與外環(huán)沒有公共頂點。
(5) 每個內(nèi)環(huán)與外環(huán)之間最多只有一個公共頂點,且內(nèi)環(huán)之間沒有公共頂點。
(6) 內(nèi)環(huán)之間最多只有一個公共頂點,且兩個相鄰內(nèi)環(huán)之間只能通過該公共頂點進行連通。
當CityGML細節(jié)層次模型為LOD3及以上,需要檢測solid中多個shells的拓撲關系或者多個solids間的拓撲關系,在CGAL庫中以Nef-Polyhedral表示對象,對對象進行布爾運算,求其交集、并集、差集,以volume數(shù)判斷shell之間的空間關系。
不同LOD層級的建筑物適應不同的一致性規(guī)則。LOD1是以規(guī)則長方體表示建筑物的沒有屋頂結(jié)構的塊狀模型,因而在LOD1的檢測中,只考慮簡單體的拓撲規(guī)則,不考慮幾何面的語義屬性、面上內(nèi)外環(huán)的拓撲關系或者幾何體中內(nèi)外shell的拓撲關系等;LOD2中可以確切地表示建筑物屋頂?shù)男螤罴巴庥^,是一個帶有屋頂結(jié)構的簡化模型,所有幾何面均擁有語義屬性信息,因此在這個層級的幾何模型中,在LOD1拓撲檢測的基礎上,增加語義屬性對幾何結(jié)構約束的規(guī)則檢測;LOD3的建筑模型在LOD2的基礎上,增加了墻面、門窗、屋頂形狀等詳細的幾何外觀信息以及對“開口”的描述,在LOD3建筑模型的拓撲一致性檢測過程中,以LOD2的拓撲檢測為基礎,增加語義屬性中復合面間拓撲關系的規(guī)則檢測,以檢測墻面與窗或者窗與窗之間的幾何拓撲關系;LOD4在LOD3的基礎上加入了三維空間對象的內(nèi)部結(jié)構信息,如房間、樓梯、家具等,這里不考慮家具等室內(nèi)設施,因而在LOD3拓撲檢測的基礎上,增加了內(nèi)外shell及體與體之間的拓撲一致性檢測。由此可見,多層次的語義規(guī)則更有助于CityGML模型不同細節(jié)層次幾何模型的拓撲一致性檢測需求。
在同一個CityGML模型中,前文中描述的規(guī)則之間具有依賴關系。按照幾何要素進行劃分。環(huán)要素的檢測優(yōu)先于其他所有規(guī)則進行檢測,其后依次是面要素規(guī)則檢測,外殼要素規(guī)則檢測,體要素規(guī)則檢測,多體要素規(guī)則檢測;后一個環(huán)節(jié)的檢測依賴于前一個環(huán)節(jié)規(guī)則檢測結(jié)果,在前一個檢測正確或者經(jīng)過修復后正確之后,后面環(huán)節(jié)的檢測方能開始。
此外,在各個幾何要素層的檢測過程中,各個子規(guī)則也需要遵循一定的依賴性。下面以面檢測為例進行說明。
面檢測子規(guī)則具體見表5。在保證其前序環(huán)規(guī)則檢測正確后,ID為203的多邊形平面性檢測是面要素幾何一致性檢測的前提,ID為201、202、205、206、207的規(guī)則之間相互獨立,依賴于ID為203、208的規(guī)則。其他子規(guī)則之間的檢測依賴關系見表6。
表5 面要素子規(guī)則
表6 面要素子規(guī)則檢測的依賴性說明
Tab.6 Dependency of sub-rule detection of polygon
elements
檢測規(guī)則ID201202203204205206207208201√√202√√203204√√√√√√√205√√206√√207√√208√209√210√
CityGML的幾何模型未顯示存儲solid中的拓撲關系,對solid的每個面采用單獨存儲的方法。因此在一個正方形中,同一個點將被存儲3次,則可能會出現(xiàn)3個坐標表示同一個點。當點數(shù)值很大時,在計算機的浮點計算下會導致solid出現(xiàn)未閉合的不一致性,因此需考慮一定的舍入誤差。ISO19107及GML中要求CityGML幾何模型中表面必須為平面,OGC在OGC CityGML QIE中對幾何模型平面性引入平面容差和角度容差[16]。
一條拓撲一致性規(guī)則對應一個類型的拓撲問題。當建筑物模型的拓撲不一致類型較多且數(shù)據(jù)缺失嚴重時,較難修復全部類型的錯誤。這里以常見的平面幾何要素、方向一致性、閉合性、重復性等拓撲一致性問題的修復為例進行說明。
平面幾何的特性與幾何實體的語義屬性互相聯(lián)系,針對平面幾何要素的修復,需以語義屬性規(guī)則進行輔助。以下對常見的地面(ground surface)、墻面(wall surface)及屋頂(roof surface)分別進行說明。
地面的法向量垂直向下,計算該幾何面所有點所在最小二乘擬合面,面上所有點到擬合面的對應投影點構成平面Z,設平面Pxy平行于xy水平面并經(jīng)過平面中最低點,求得Z平面上所有點到該平面的投影點,則對應投影點坐標構成的面即是修復后的幾何面,如圖4(a)所示;墻面應與地面共享一條邊,以邊與法向量構建平面Pyz,原幾何面上所有點至該平面的投影點構成的面即為修復面,如圖4(b)所示;屋頂主要分為平屋頂與三角屋頂,平面屋頂修復與地面修復方法類似,如圖4(c)所示;三角屋頂需計算該屋頂所有點所在最小二乘擬合面,所有點沿Z軸至擬合面的投影點構成的面即為屋頂?shù)男迯兔?,如圖4(d)所示。
圖4 平面幾何體的修復Fig.4 Fixing errors in plane geometry
在各個等級規(guī)則中,都有對方向性的檢測。以solid為例,其外shell法向應指向體外,而內(nèi)shell方向應指向體的內(nèi)部。該錯誤可通過遍歷每個面,根據(jù)該面的正確朝向,對順序不一致的邊界點索引進行反轉(zhuǎn),從而修復方向不一致問題。在其他的檢測等級中,也可依次處理方向不一致問題。
閉合性修復分為環(huán)與體的情況。環(huán)的首末點必須相同,以保證環(huán)的閉合性,可通過復制第一點坐標并加入到點序列末尾,對環(huán)的閉合性進行修復。
多面體以半邊數(shù)據(jù)結(jié)構表示,即幾何模型中每條邊均存在僅被兩個面所共享的特征,如圖5所示,有向邊〈V5,V6〉存在于面D中,有向邊〈V6,V5〉存在于面C中,則邊V5V6僅被C、D兩個面共享。針對數(shù)據(jù)結(jié)構表示的特性,可通過存儲的半邊信息以修復未閉合問題。如圖5所示,邊V1V2僅存在于面A中,有向邊〈V1,V2〉存在于面A中,則〈V2,V1〉是缺失面B的一邊,同理可得有向邊〈V1,V4〉、〈V4,V3〉、〈V3,V2〉,即缺失面B由邊〈V1,V4〉、〈V4,V3〉、〈V3,V2〉、〈V2,V1〉組成。對于LOD2/LOD3的閉合修復,可通過面B的法向量方向賦予語義信息。若單位法向量向上為屋頂,向下為地面;若法向量為水平方向則需判斷面B為墻面還是門窗。有向邊〈V1,V2〉在面A中,若其為面A外環(huán)中的邊,則邊〈V2,V1〉為面B的外環(huán),標識B為墻面;否則為門或者窗。對于LOD4的體閉合修復,則為該Solid語義屬性,其中針對未閉合面修復的算法如下:
圖5 建筑物體未閉合Fig.5 Solid geometry is not closed
begin
多面體_polyhedron;
if (_polyhedron->is_closed() == false)
while (_polyhedron->size_of_border_edges()>0)
Halfedge_handle he=++(_polyhedron->border_halfedges_begin());
he->vertex()->point().x()
he->vertex()->point().y()
he->vertex()->point().z()∥get the point in the missing polygon
_polyhedron->fill_hole(he);
_polyhedron->normalize_border();
end if
end
以環(huán)的重復性修復為例,在環(huán)一致性規(guī)則中,同一個環(huán)的點只允許首末點相同,其他點不允許重復。根據(jù)點重復類型不同,修復分為兩種情況,一種情況如圖6(a)所示,R=(V0,V1,V2,V3,V3,V0),其中點V3在點序列中出現(xiàn)連續(xù)重復;另一種情況如圖6(b)中的R=(V0,V1,V4,V3,V2,V4,V0),點V4在序列中不是連續(xù)重復。針對(a)圖中的重復性,可將重復的第2個點直接刪除;針對(b)圖中的不一致問題,可將該環(huán)分為R=(V0,V1,V4,V0)及R=(V4,V2,V3,V4)兩個環(huán),因此多邊形被分割成多個多邊形。針對環(huán)重復、面重復或者shell等不一致問題,則可直接進行刪除。
圖6 環(huán)上點的兩種重復性情況Fig.6 Two repetitive cases of points on the ring
本文研究以CityGML建筑物模型的LOD2數(shù)據(jù)、LOD3數(shù)據(jù)及LOD4數(shù)據(jù)為例,進行試驗驗證分析。其中LOD2含32個建筑物,LOD3含400個建筑物,數(shù)據(jù)來源于OGC官網(wǎng),LOD4建筑物含10個語義對象,由某棟IFC建筑物模型經(jīng)過數(shù)據(jù)轉(zhuǎn)換得到的CityGML LOD4數(shù)據(jù)。統(tǒng)一設置舍入誤差為1 mm,平面容差分別為0.01 m,平面角度容差1°。檢測系統(tǒng)界面如圖7所示。
圖7 幾何檢測試驗系統(tǒng)界面Fig.7 System interface of geometric validation
針對CityGML LOD2試驗數(shù)據(jù)的幾何一致性檢測結(jié)果統(tǒng)計如圖8所示。該模型數(shù)據(jù)在幾何一致性檢測中存在環(huán)自相交、非平面、非流形邊、方向不一致、數(shù)據(jù)不完整導致幾何模型未閉合的不一致問題。如圖8(a)所示,該數(shù)據(jù)中不一致性問題占比達到一半以上;圖8(b)中給出了不一致問題的類型,其中非平面的幾何錯誤(對應203號面要素規(guī)則)相比其他不一致性問題為多。
圖8 LOD2建筑物幾何一致性檢測試驗結(jié)果Fig.8 Results of geometric consistency validation on LOD2 model of building
圖9給出了某些建筑物中出現(xiàn)的非流形問題(圖6(a))及方向不一致問題(圖6(b))共存的情況。其中紅色表示roof surface,灰色表示wall surface,藍色表示ground surface。
圖9 LOD2數(shù)據(jù)中多種幾何不一致共存的情況Fig.9 Multiple geometric inconsistency coexist in LOD2 models
針對CityGML LOD3試驗數(shù)據(jù)的幾何一致性檢測結(jié)果統(tǒng)計如圖10。該模型數(shù)據(jù)在幾何一致性檢測中存在環(huán)自相交、環(huán)與環(huán)相交、非平面、門窗與墻面拓撲關系錯誤,導致幾何模型中內(nèi)環(huán)在外環(huán)外部或者門與墻面相交的內(nèi)外環(huán)拓撲關系錯誤、模型數(shù)據(jù)不完整導致幾何模型未閉合及模型方向不一致等問題。如圖10(a)所示,該數(shù)據(jù)中不一致性問題占比約33%;圖10(b)中給出了不一致問題的類型,其中非平面的幾何錯誤(對應203號面要素規(guī)則)同樣最為突出。圖11給出了某些建筑物中因門窗與墻面相離或者相交從而導致數(shù)據(jù)存在環(huán)與環(huán)相交的幾何不一致問題,如圖11(a)、(b),其中紅色表示roof surface,灰色表示wall surface,土黃色表示窗,棕色表示門。
圖10 LOD3建筑物幾何一致性檢測試驗結(jié)果Fig.10 Results of geometric consistency validation on LOD3 models of building
圖11 LOD3數(shù)據(jù)幾何不一致可視化Fig.11 Visualizing results of inconsistency of LOD3 models
CityGML LOD4細節(jié)層次的建筑物數(shù)據(jù)中,語義對象以solid表示,有room、living room、hall way、window、door、floor surface、ground surface、wall surface、roof surface、stair way。該LOD4的建筑物數(shù)據(jù)存在非流形、方向不一致、room不存在與door的關聯(lián)關系導致該room不與其他室內(nèi)空間連通、幾何體未閉合及語義對象間的拓撲關系錯誤等幾何不一致等問題。其中低等級的幾何錯誤較少,但方向不一致性錯誤較多。living room、roof surface、ground surface都出現(xiàn)了該錯誤,如room與door 的is-part-of的錯誤(圖12(a))、樓板與樓梯的拓撲關系錯誤(圖12(b))。
圖12 LOD4幾何不一致可視化Fig.12 Visualizing results of inconsistency of LOD4 models
本文以CityGML建筑物模型中常見的建筑物為研究對象,根據(jù)國際與國內(nèi)的相關標準,從建筑物幾何結(jié)構特征和語義屬性信息中抽取對建筑物幾何結(jié)構、拓撲關系、方向關系、距離關系具有約束影響及可轉(zhuǎn)化為約束條件的非空間隱喻的語義信息了構建了建筑物的拓撲一致性規(guī)則集。考慮到不同LOD層次和不同語義屬性的幾何對象,結(jié)合拓撲一致性規(guī)則對單個語義對象的點、線、面、體等幾何要素及多個語義對象間的空間關系,進行模型空間數(shù)據(jù)拓撲一致性的分層檢測,提出了系統(tǒng)的不一致性檢測方法,檢測同一空間現(xiàn)象/空間實體在表達時存在的拓撲不一致問題,并進行了典型修復算法研究。試驗結(jié)果表明所提出的規(guī)則和算法可檢測出存在幾何不一致的建筑物模型空間數(shù)據(jù),可為后期修復提供有力支持,確保數(shù)據(jù)集的拓撲一致性,提高空間數(shù)據(jù)質(zhì)量,提升三維數(shù)據(jù)在集成中的互操作性。