程朋根,李志榮,聶運(yùn)菊,2,林淇昕
(1.東華理工大學(xué) 測(cè)繪工程學(xué)院,江西 南昌 330013;2. 流域生態(tài)與地理環(huán)境監(jiān)測(cè)國家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室,江西 南昌 330013;3. 廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
隨著城市現(xiàn)代化的飛速發(fā)展,人們對(duì)城市道路照明的需求越來越高[1]。照明設(shè)施的建設(shè)、管理與服務(wù)水平的高低越來越體現(xiàn)一個(gè)城市社會(huì)保障能力的強(qiáng)弱,也反映了一個(gè)城市現(xiàn)代化程度的高低。城市道路照明能為各種車輛的駕駛?cè)藛T以及行人創(chuàng)造良好的視覺環(huán)境,達(dá)到保障交通安全、完善城市功能、提高交通運(yùn)輸效率、方便人民生活、降低犯罪率和美化城市環(huán)境的目的[2]。因此在城市管理系統(tǒng)中不斷出現(xiàn)城市道路附屬設(shè)施管理方案,使城市路燈管理更加科學(xué)化、系統(tǒng)化,提高城市路燈的管理水平[3]。三維GIS突破了空間信息在二維地圖平面中單調(diào)表現(xiàn)的束縛,為各行各業(yè)以及人們的日常生活提供更有效的管理、輔助決策支持[4]?;谌SGIS管理系統(tǒng)能夠?yàn)榭蛻籼峁┲庇^的三維路燈展示,能更好地為客戶提供關(guān)于路燈建設(shè)、路燈改建、路燈管理等輔助決策。
在數(shù)字三維城市中,眾多優(yōu)秀的GIS軟件公司也相繼推出各自的三維軟件,例如SuperMap 8c、Skyline或CityMaker等三維平臺(tái);AutoCAD、3DMax、SketchUp或CityEngine等三維建模軟件。戴彬,鐘若飛,孫偉利,朱紅,張西童等人采用車載激光雷達(dá)點(diǎn)云數(shù)據(jù)對(duì)道路附屬設(shè)施或路燈進(jìn)行三維重建,道路附屬設(shè)施三維數(shù)據(jù)精度高,但點(diǎn)云處理的過程復(fù)雜,仍需要大量的人工交互,且數(shù)據(jù)量大[5-8]。趙雨琪,劉茂華,呂永來,陳秋曉,謝衍憶[9-13]等人利用CityEngine參數(shù)化建模的特點(diǎn),在道路中心線引入外部路燈模型進(jìn)行路燈的批量建模,但所建模型的位置并不是在實(shí)際路燈坐標(biāo)點(diǎn)上,從而導(dǎo)致路燈位置不準(zhǔn)確[9-13]。同時(shí),三維城市建設(shè)中道路附屬設(shè)施通常采用3DMax或SketchUp進(jìn)行手工建模,再將路燈三維模型手工擺放路燈坐標(biāo)點(diǎn)上,或隨意擺放到不準(zhǔn)確坐標(biāo)的道路兩旁,因此這種方法導(dǎo)致建模效率低、路燈位置不精確等問題。
本文針對(duì)城市道路附屬設(shè)施中路燈采用車載激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行三維重建,點(diǎn)云處理過程復(fù)雜,人工交互多,數(shù)據(jù)量大;以及采用3DMax或SketchUp進(jìn)行手工建模及擺放,效率低,位置不準(zhǔn)確等缺點(diǎn);提出基于3DMax與CityEngine的城市道路路燈批量建模與擺放方法。首先,在3DMax 根據(jù)實(shí)際路燈的外觀建立相同的路燈模型;其次,分析路燈坐標(biāo)點(diǎn)與道路中心線的空間關(guān)系計(jì)算鄰近角,再導(dǎo)入到CityEngine中,在路燈坐標(biāo)點(diǎn)上利用幾何函數(shù)與路燈坐標(biāo)點(diǎn)的屬性信息批量自動(dòng)建模,并通過規(guī)則程序調(diào)整路燈的大小與方向;最后,將路燈模型批量單棟導(dǎo)出,導(dǎo)入到3DMax中能夠直接進(jìn)行模型修改與格式轉(zhuǎn)換,能夠更快捷地為三維平臺(tái)提供數(shù)據(jù)。為城市管理中城市道路附屬設(shè)施路燈的三維建模提供實(shí)用、高效率、高精度的解決方案。
本文研究對(duì)象為城市道路附屬設(shè)施中的路燈。路燈坐標(biāo)點(diǎn)數(shù)據(jù)與道路中心線數(shù)據(jù)是三維建模的基礎(chǔ),對(duì)佛山石灣街道忠信路、東風(fēng)路、江濱路等道路中的路燈進(jìn)行采集,利用3DMax進(jìn)行建模。采用CityEngine軟件通過編寫規(guī)則程序引入外部靜態(tài)模型,聯(lián)接坐標(biāo)點(diǎn)空間數(shù)據(jù)、屬性信息、規(guī)則、路燈模型庫進(jìn)行自動(dòng)建模。
首先,應(yīng)用GIS和CAD等技術(shù)獲取道路中心線、路燈坐標(biāo)點(diǎn)數(shù)據(jù),導(dǎo)入ArcMap中添加路燈高度、路燈樣式、路燈鄰近角字段,將對(duì)應(yīng)的屬性信息添加到屬性表中。其次,在3DMax中建立與實(shí)際相同的路燈模型,然后在CityEngine中編寫批量自動(dòng)生成路燈三維模型的程序,并批量自動(dòng)生成模型;其中通過幾何創(chuàng)建函數(shù)引入外部靜態(tài)模型,先初始化路燈的樣式、大小、方向,然后在建模過程中將路燈坐標(biāo)點(diǎn)屬性表的信息作為實(shí)際參數(shù)傳遞給初始化的參數(shù),使路燈的真實(shí)樣式、大小、方向等信息表現(xiàn)出來,以達(dá)到與真實(shí)一致。最后,在CityEngine中批量單棟導(dǎo)出obj格式的路燈模型,然后在3DMax中運(yùn)行批量導(dǎo)入obj格式模型的插件(MaxScript腳本)導(dǎo)入模型,將導(dǎo)入的三維模型數(shù)據(jù)進(jìn)行場(chǎng)景整合和格式轉(zhuǎn)換,最終導(dǎo)入到SuperMap 8c或Skyline三維平臺(tái)中,總體流程如圖1所示。
運(yùn)用3DMax強(qiáng)大的建模功能進(jìn)行三維建模,建模的過程中綜合運(yùn)用拉伸、分割、旋轉(zhuǎn)、對(duì)齊及布爾運(yùn)算等技術(shù),把路燈的模型做到與實(shí)物一樣,并注意各個(gè)路燈模型的尺寸大致一樣。3DMax中建立的路燈模型如圖2所示。
在模型導(dǎo)出前,將模型的軸點(diǎn)中心坐標(biāo)值統(tǒng)一設(shè)置為(0,0,h/2),其中h為模型的高度,朝向均為正北方向;最后模型導(dǎo)出為obj格式,名稱依次為1至12。
1.2.1 提取路燈坐標(biāo)點(diǎn)與道路中心線
在城市三維建模中,通??蛻魰?huì)提供建模矢量基礎(chǔ)數(shù)據(jù),例如建筑點(diǎn)、線、面數(shù)據(jù),道路中心線,交通點(diǎn)、線、面數(shù)據(jù),水系點(diǎn)、線、面數(shù)據(jù)等,CAD數(shù)據(jù)如圖3與圖4所示。如果原始數(shù)據(jù)是CAD數(shù)據(jù),需要提取道路中心線數(shù)據(jù)與路燈坐標(biāo)點(diǎn)數(shù)據(jù);然后添加到ArcMap中分別保存為shp格式,并添加空間參考,本文采用UTM84投影坐標(biāo)系。
圖1 批量建模流程
圖2 路燈模型庫
圖3 CAD圖層管理
圖4 CAD道路中心點(diǎn)與路燈坐標(biāo)點(diǎn)
在路燈坐標(biāo)點(diǎn)數(shù)據(jù)的屬性表中,添加路燈高度、路燈樣式、路燈鄰近角字段,并對(duì)照外業(yè)采集的相片與路燈模型庫中的路燈進(jìn)行對(duì)照,把對(duì)應(yīng)路燈模型的樣式代碼作為屬性值添加到路燈樣式屬性中,同時(shí)將路燈的真實(shí)高度錄入到路燈高度屬性中。路燈坐標(biāo)點(diǎn)屬性表中需添加的字段如表1所示。
在冠詞選擇參數(shù)的基礎(chǔ)上,Ionin 等提出波動(dòng)假說,認(rèn)為普遍語法在二語習(xí)得中具有完全可及性,如果母語中缺少冠詞系統(tǒng),二語學(xué)習(xí)者在開始習(xí)得冠詞時(shí)會(huì)在兩種參數(shù)值之間波動(dòng),直到足夠的二語輸入使其可以設(shè)定正確的參數(shù)值,從而完全習(xí)得冠詞[9]16 。
表1 路燈坐標(biāo)點(diǎn)屬性表添加的字段
1.2.2 判斷空間關(guān)系
判斷路燈坐標(biāo)點(diǎn)與道路中心的空間關(guān)系,將道路中心線作為路燈坐標(biāo)點(diǎn)的鄰近要素,計(jì)算路燈坐標(biāo)點(diǎn)的鄰近角,如圖5所示,并把鄰近角作為屬性值添加到路燈坐標(biāo)點(diǎn)的屬性表中。在批量自動(dòng)建模過程中利用鄰近角來確定路燈的方向。注意:鄰近角以正東方向?yàn)檎S方向,逆時(shí)針為正,順時(shí)針為負(fù)。
基于CityEngine參數(shù)化批量自動(dòng)建模是計(jì)算機(jī)程序三維建模,路燈模型的批量生成依賴于CGA規(guī)則程序的幾何函數(shù)。采用CGA規(guī)則中的幾何創(chuàng)建函數(shù),引入外部的靜態(tài)模型,并根據(jù)路燈坐標(biāo)點(diǎn)、路燈樣式屬性值確定路燈的樣式。引入前的靜態(tài)模型在3DMax中的朝向?yàn)檎狈较?,在CityEngine中場(chǎng)景坐標(biāo)系y軸以正北方向?yàn)檎S方向,同樣逆時(shí)針為正,順時(shí)針為負(fù)。采用幾何變換函數(shù)調(diào)整路燈模型的大小,設(shè)置模型的偏移量,根據(jù)鄰近角調(diào)整路燈的方向。批量自動(dòng)生成模型的流程如圖6所示。
圖5 計(jì)算路燈坐標(biāo)點(diǎn)要素的鄰近角
圖6 批量生成路燈模型步驟
CityEngine中模型的旋轉(zhuǎn)角度計(jì)算過程(相對(duì)于正北方向)為:
批量建模過程中主要用到的函數(shù)如表2所示。
1)設(shè)置路燈樣式: 在CGA規(guī)則中初始化路燈樣式,生成模型前聯(lián)接路燈坐標(biāo)點(diǎn)表示路燈樣式的屬性字段,建模時(shí)路燈坐標(biāo)點(diǎn)中代表路燈樣式的屬性值作為實(shí)際參數(shù)確定路燈的樣式;
AttrLAMP_STYLE=1
importLamp-->
i(getObj(LAMP_STYLE))
表2 主要用到的幾何函數(shù)
2)設(shè)置路燈的高度: 在CGA規(guī)則中初始化路燈的高度,生成模型前聯(lián)接路燈高度字段,批量建模時(shí)路燈坐標(biāo)點(diǎn)的高度屬性數(shù)據(jù)作為實(shí)際參數(shù)確定路燈的高度信息。
AttrLAMP_HEIGHT=10
importLamp_heitht-->
s(x,LAMP_HEIGHT,z)
3)設(shè)置路燈的旋轉(zhuǎn)角度: 在CGA規(guī)則中初始化路燈的鄰近角,聯(lián)立路燈坐標(biāo)點(diǎn)的鄰近角,計(jì)算路燈模型的旋轉(zhuǎn)角度angle_z,建模時(shí)路燈點(diǎn)屬性數(shù)據(jù)鄰近角作為實(shí)際參數(shù)確定路燈的旋轉(zhuǎn)角度。
AttrNEAR_ANGLE =10
angle_z=NEAR_ANGLE-90
importLamp_heitht-->
rotate(rel, world, 0,angle_z, 0)
將預(yù)處理完成的shp格式的路燈坐標(biāo)點(diǎn)數(shù)據(jù)導(dǎo)入CityEngine中,選擇路燈點(diǎn)并關(guān)聯(lián)路燈點(diǎn)的路燈樣式、路燈高度、鄰近角字段,然后運(yùn)行CGA批量建模規(guī)則程序,批量生成路燈三維模型。建模程序依次讀取每一個(gè)shp點(diǎn)以及對(duì)應(yīng)的屬性信息(路燈樣式、路燈高度、鄰近角),根據(jù)路燈點(diǎn)的屬性信息獲取對(duì)應(yīng)樣式,生成對(duì)應(yīng)高度的路燈,并且根據(jù)鄰近角調(diào)整路燈的角度,路燈的燈臂與道路中心線垂直。采用該方法對(duì)實(shí)驗(yàn)區(qū)佛山石灣街道忠信路、東風(fēng)路、江濱路等道路的路燈進(jìn)行建模,批量生成的路燈模型如圖7所示,路燈模型的生成效率高,模型的結(jié)構(gòu)基本一致,路燈的朝向與實(shí)際幾乎相符。
圖7 CityEngine批量生成三維路燈模型
數(shù)字三維城市建設(shè)中,在三維平臺(tái)(例如:SuperMap 8c或Skyline)中構(gòu)建三維場(chǎng)景,通常需要在3DMax中將三維場(chǎng)景分別轉(zhuǎn)換為fbx格式或.x與xp2格式的數(shù)據(jù),然后再導(dǎo)入到三維平臺(tái)中。由于三維平臺(tái)中導(dǎo)入三維場(chǎng)景數(shù)據(jù)格式的要求,所以本文批量自動(dòng)建立的路燈模型最終需要導(dǎo)入到3DMax進(jìn)行格式轉(zhuǎn)換,所以在CityEngine批量建模的模型需要全部導(dǎo)出。然后使用批量導(dǎo)入obj格式模型的插件將文中圖7的路燈模型導(dǎo)入到3DMax中,如圖8所示,路燈模型可以直接進(jìn)行修改,能夠更高效地為三維平臺(tái)構(gòu)建三維場(chǎng)景提供三維數(shù)據(jù),并可方便地進(jìn)行數(shù)據(jù)共享和重復(fù)利用。
圖8 3DMax批量導(dǎo)入的路燈三維模型
綜上所述,本文以二維城市測(cè)繪數(shù)據(jù)的空間信息和屬性信息為建模基礎(chǔ),通過分析路燈坐標(biāo)點(diǎn)與道路中心線的空間關(guān)系,采用鄰近角來控制路燈的方向,編制批量自動(dòng)生成路燈三維模型的CGA程序,將二維數(shù)據(jù)的屬性信息與程序中設(shè)置的參數(shù)建立聯(lián)接關(guān)系,控制模型的樣式、大小及方向,其程序方法簡(jiǎn)單,實(shí)現(xiàn)成本低,建模效率高,同時(shí)在路燈坐標(biāo)點(diǎn)上建立路燈模型提高模型位置的精度;然后使用編制的模型導(dǎo)入插件,將模型導(dǎo)入到3DMax軟件中進(jìn)行場(chǎng)景整合與格式轉(zhuǎn)換,更高效地為三維平臺(tái)中提供三維場(chǎng)景數(shù)據(jù)。
本文提出的基于3DMax與CityEngine的城市道路路燈批量建模與擺放方法可以更充分利用路燈坐標(biāo)點(diǎn)二維數(shù)據(jù)的空間信息和屬性信息,并對(duì)路燈三維模型的樣式、大小及方向進(jìn)行有效控制,快速批量自動(dòng)生成坐標(biāo)更為準(zhǔn)確的路燈三維模型;為三維城市建設(shè)中道路附屬設(shè)施路燈的批量自動(dòng)建模提供了實(shí)用、低成本、高效率的解決方案。但該方法對(duì)城市道路附屬設(shè)施中具有文字信息,如路牌的三維建模仍具有局限性。
[1] 黃飛龍. 城市道路照明管理規(guī)劃系統(tǒng)中路燈自動(dòng)配置算法和照明評(píng)價(jià)模型[J]. 測(cè)繪科學(xué)技術(shù)學(xué)報(bào),2011,28(3):231-234.
[2] 楊建華. 新建城市總體規(guī)劃中路燈照明專項(xiàng)規(guī)劃思路探討——以貴安新區(qū)路燈照明專項(xiàng)規(guī)劃為例[J]. 中外建筑,2016(10):84-90.
[3] 萬劍華,陶為翔,劉國慶. 基于WebGIS和GSM短消息的城市路燈智能管理設(shè)計(jì)[J]. 測(cè)繪工程,2007,16(3):52-55.
[4] 朱慶. 三維GIS及其在智慧城市中的應(yīng)用[J]. 地球信息科學(xué)學(xué)報(bào),2014,16(2):151-157.
[5] 戴彬,鐘若飛,胡競(jìng). 基于車載激光掃描數(shù)據(jù)的城市地物三維重建研究[J]. 首都師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,32(3):89-96.
[6] 孫偉利. 基于車載LiDAR技術(shù)的公路三維建模與應(yīng)用[D].北京:首都師范大學(xué),2013.
[7] 朱紅,張正鵬. 車載LiDAR點(diǎn)云數(shù)據(jù)分割與半自動(dòng)化建模方法[J]. 國土資源遙感,2014,26(1):47-51.
[8] 張西童,劉會(huì)云,李永強(qiáng),等. 車載LiDAR場(chǎng)景中路燈的提取與識(shí)別[J]. 測(cè)繪工程,2016,25(9):50-54.
[9] 趙雨琪, 牟乃夏, 張靈先. 利用CityEngine進(jìn)行三維校園參數(shù)化精細(xì)建模[J]. 測(cè)繪通報(bào), 2017(1): 83-86,111.
[10] 劉茂華,楊洋,岳強(qiáng). CityEngine與ArcGIS結(jié)合的輔助道路規(guī)劃設(shè)計(jì)[J]. 測(cè)繪通報(bào),2016(12):64-67,95.
[11] 呂永來,李曉莉. 基于CityEngine平臺(tái)的高速鐵路建模方法的研究與實(shí)現(xiàn)[J]. 測(cè)繪,2013,36(1):19-22.
[12] 陳秋曉,張斌,吳寧,等. 城市道路參數(shù)化建模規(guī)則初探[J]. 建筑與文化,2013(7):40-41.
[13] 謝衍憶,黃良平,陳元增,等. 基于CityEngine的城市三維快速建模方法及應(yīng)用[J]. 地理空間信息,2016,14(2):39-40.