李寅超,曹天馳,韓妍嬌
(哈爾濱市勘察測繪研究院,黑龍江 哈爾濱 150010)
隨著傾斜攝影測量技術(shù)的不斷完善,實景三維模型越來越多地應(yīng)用于我國的城市精細化管理[1]、智慧社區(qū)[2]、智慧園區(qū)[3]等應(yīng)用場景中。世界各地基于實景三維模型構(gòu)建的智慧城市[4]、城市信息模型平臺[5]正在不斷出現(xiàn),越來越多的城市管理數(shù)據(jù)匯聚在以三維模型為基底的系統(tǒng)平臺之上。
原始的實景三維模型僅僅是具有三維坐標的“一張皮”,為了將城市管理的各類數(shù)據(jù)與實景三維模型關(guān)聯(lián),就需要對模型進行單體化以實現(xiàn)地理實體的屬性查詢。當前的實景三維模型單體化方法主要分為兩個方向,一個方向是在實景三維模型數(shù)據(jù)上進行單體化分割,如基于模型頂點ID標簽的單體化[6]和模型切割重建單體化方法[7]。另一方向是將矢量數(shù)據(jù)與實景三維模型數(shù)據(jù)疊加實現(xiàn)動態(tài)分割[8]。
在城市精細化管理應(yīng)用中,常常需要在建筑模型單體化的基礎(chǔ)上,進一步實現(xiàn)建筑物分層分戶單體化。在近幾年新建小區(qū)可基于房產(chǎn)分層分戶矢量中的建筑物面和層高信息實現(xiàn)分層三維白模自動生成[9]。然而大量的老小區(qū)實現(xiàn)建筑物分層主要通過手工對建筑物分層分戶紙質(zhì)圖矢量化后實現(xiàn)分層[10],基于傾斜模型全自動生成老小區(qū)分層信息又要耗費人力檢核[11],要將城市全部建筑物分層分戶需要消耗大量的人力。因此,本文提出一種方法,基于實景三維模型和基礎(chǔ)地理信息提取建筑物高度、樓層層數(shù)和建筑物平面信息,動態(tài)實現(xiàn)實景三維模型分層,以提高實景三維模型分層數(shù)據(jù)制作的效率。
為了實現(xiàn)實景三維模型建筑物分層,本文綜合利用實景三維模型數(shù)據(jù)、大比例尺基礎(chǔ)地理信息數(shù)據(jù),通過提取建筑物層數(shù)、頂部高程、底部高程、底面輪廓等信息,然后通過Python腳本自動生成建筑物各樓層矢量面數(shù)據(jù),通過矢量面與實景三維模型疊加實現(xiàn)建筑物分層,具體流程如圖1所示。
圖1 建筑物分層提取流程圖
自動化建筑物分層數(shù)據(jù)生成,需要獲取建筑物的各層房高數(shù)據(jù)。此處以居民住宅小區(qū)建筑物為例,一般住宅小區(qū)建筑物包含商服功能區(qū)與住宅功能區(qū)。兩個功能區(qū)往往層高不同、平面結(jié)構(gòu)不同,因此需要分別量測。
具體量測包含的內(nèi)容可表示為:
BS={(NBF,HtBF,HbBF),(NLF,HtLF,HbLF)}
(1)
式(1)中BS為待提取建筑物的量測內(nèi)容,BF為待提取建筑物的商服功能區(qū),LF為待提取建筑物的住宅功能區(qū),BF、LF均可為空,但不能同時為空。NBF、NLF分別為商服功能區(qū)、住宅功能區(qū)總樓層數(shù),建筑物總樓層數(shù)N=NBF+NLF。HtBF、HtLF分別為兩區(qū)的頂部高程,HbBF、HbLF分別為兩區(qū)的底部高程,一般情況下HtBF=HbLF。
自動化建筑物分層數(shù)據(jù)生成,依據(jù)建筑物底面輪廓作為基準,生成建筑物各樓層的矢量面數(shù)據(jù)。建筑物底面數(shù)據(jù)可通過城市大比例尺基礎(chǔ)地理信息數(shù)據(jù)獲取建筑物面數(shù)據(jù),然后將其中的飄樓、簡易房屋等面合并成為建筑物底面輪廓面。將合成的建筑物底面輪廓面與實景三維模型制作時生成的真正射影像進行疊加對比,如發(fā)現(xiàn)有變化及時更新修正。確保建筑物底面輪廓面與實景三維模型的輪廓面保持一致。
商服功能區(qū)、住宅功能區(qū)各樓層通過建筑物底面輪廓確定平面范圍,通過頂部、底部高程確定各層的高度,從而確定每個樓層的三維空間范圍,則一棟建筑物任意樓層可表示為:
(2)
其中,B(i)為建筑物第i樓層,PG為第i樓層底面輪廓,Ht(i)為第i樓層頂部高程,HbBF(i)為第i樓層底部高程。設(shè)商服功能區(qū)第i樓層的層高為HBF(i),則:
(3)
由此可得商服功能區(qū)第i樓層的頂部高程和底部高程為:
HtBF(i)=HBF·i+HbBF
(4)
HbBF(i)=HBF·(i-1)+HbBF
(5)
基于上述推導(dǎo),商服功能區(qū)各樓層數(shù)據(jù)均可通過2.1、2.2節(jié)數(shù)據(jù)提取結(jié)果表示。住宅功能區(qū)各樓層數(shù)據(jù)推導(dǎo)原理與商服功能區(qū)相同,此處不再贅述?;谝陨蠑?shù)據(jù)提取結(jié)果,可實現(xiàn)房屋各樓層面自動生成。
本文通過超圖iDesktop與ArcMap相結(jié)合完成方法的實現(xiàn),其中超圖iDesktop在實景三維數(shù)據(jù)操作及處理方面較為出色,ArcMap在二維數(shù)據(jù)Python腳本自動化處理方面較為出色。
哈爾濱市于2019年完成城區(qū)實景三維模型建設(shè),并于2020年對數(shù)據(jù)更新擴充,目前建模面積為 800 km2。本文以哈爾濱市某小區(qū)建筑物為例,分別提取了該小區(qū)一棟建筑物的實景三維模型OSGB數(shù)據(jù)、實景三維模型對應(yīng)的真正射影像IMG數(shù)據(jù),以及小區(qū)內(nèi)大比例尺地形圖中建筑物SHP矢量數(shù)據(jù)。
首先,通過超圖iDesktop的“查詢坐標值”工具提取了建筑物住宅功能區(qū)、商服功能區(qū)的頂部高程、底部高程數(shù)據(jù),數(shù)據(jù)采集位置示意如圖2所示:
圖2 數(shù)據(jù)采集位置示意
然后,通過ArcMap將數(shù)據(jù)采集結(jié)果錄入建筑物面矢量數(shù)據(jù)。數(shù)據(jù)屬性字段及錄入結(jié)果如圖3所示:
圖3 數(shù)據(jù)采集結(jié)果
根據(jù)2.3節(jié)推導(dǎo)出的建筑物每層的層高計算公式,利用ArcMap的Toolbox工具新建Toolset,然后將自動計算分層數(shù)據(jù)的Python腳本綁定至Toolset,Python腳本核心代碼邏輯示意如圖4所示:
圖4 核心代碼邏輯示意
Toolset參數(shù)設(shè)置界面如圖5所示。通過“自動分層”Toolset可在“輸入層”處選取數(shù)據(jù)采集要素層,在“頂部高程”“底部高程”處選取對應(yīng)的字段名稱,在“結(jié)果層”處選取分層結(jié)果輸出圖層。
圖5 Toolset參數(shù)設(shè)置界面
執(zhí)行Toolset,分層數(shù)據(jù)自動生成后保存至結(jié)果圖層,將結(jié)果圖層以建筑物面為底,以建筑物底部高程作為基礎(chǔ)高程,根據(jù)頂部高程和底部高程之差作為拉伸高度進行拉伸后結(jié)果如圖6所示。
圖6 建筑物分層提取結(jié)果
利用本文的半自動分層方法實現(xiàn)的動態(tài)分層數(shù)據(jù)已經(jīng)在哈爾濱市基礎(chǔ)地理信息共享與服務(wù)系統(tǒng)中試用,并在平房區(qū)智慧城市建設(shè)、哈爾濱市智慧社區(qū)建設(shè)進行了試點建設(shè)。項目的在線應(yīng)用采用SuperMapiClient3DforWebGL開發(fā)包搭建,應(yīng)用中首先通過鼠標點擊實景三維模型的建筑物獲取點擊位置的經(jīng)緯度以及高程參數(shù),然后根據(jù)參數(shù)與建筑物分層提取結(jié)果中矢量面進行空間匹配,最后將矢量面以頂部高程、底部高程之差為高度并以底部高程和經(jīng)緯度為錨點拉伸成體,最終以貼模型效果展示在應(yīng)用場景中。選中的樓層以亮黃色標識,試點項目效果如圖7所示:
圖7 試點項目效果
經(jīng)過試點建設(shè)后,通過人機交互的半自動方法實現(xiàn)了樓層分割的精度與工作效率的雙重提升。與建筑物總高度自動分層相比更準確,不會因為樓頂?shù)母叱烫崛″e誤或商服與住宅區(qū)樓層高度不一致而導(dǎo)致樓層分割錯位。與手動進行實景三維模型建筑物分層切割或手動建立分層白模相比,時間消耗更少。目前城市管理逐漸精細化過渡,下一步研究工作考慮結(jié)合不動產(chǎn)權(quán)證書房屋分戶圖數(shù)據(jù)實現(xiàn)真正的分層分戶數(shù)據(jù)。分層分戶數(shù)據(jù)的實現(xiàn)可以大大提高城市管理、社會治理的工作精準度以及工作效率,從而實現(xiàn)城市管理服務(wù)的飛躍。