CityEngine使用GIS模板創造三維數字城市(二)
上一節介紹了將二維資料轉化為三維資料,並作為CityEngine的基礎資料。下面介紹的過程中建立三維費城的二維和三維地理資訊系統資料。使用的資料是虛擬城市模板的一部分。
1、下載數字城市模板
有兩種方法下載數字城市的模板:
2、啟動CityEngine,選單File -> Help -> Download Tutorials and Examples 在Examples選項卡中Philadelphia例子既可以,如圖1所示
圖1下載模板
2、載入數字城市模板
如果在CityEngine模板庫中,下載模板則需要將模板匯入到CityEngine工作空間中:
1、選單File -> import -> Project -> existing project into workspace
圖2匯入模板到工作空間中
2、在 Select archive file選擇項中選擇 Example_Philadelphia.zip檔案。在Project選項卡中選擇Example_Philadelphia__2011_1,點選Finish即可。
圖3匯入模板
3、建立新的場景
這個模板中已經有3個已經準備好的場景,您可以雙擊這些場景進行瀏覽,如圖4所示:
圖4現有場景
現在讓我們從頭開始,建立一個新的場景。選單File->New->CityEngine->CityEngine scene ,選擇專案的場景目錄,給它一個名稱和設定座標系統(EPGS:2272)
圖5建立場景
4、新增地形和影像
在Example_Philadelphia__2011_1/data/DEM目錄下面找到DEM_burn.tif,選中它然後將它拖動到視窗裡面(viewport)。在Choose coordinate system for ‘DEM_burn.tif’對話方塊中選中同樣的座標系(EPGS:2272)。在彈出的Terrain對話方塊中,Texture file選項卡中選擇貼在地形上的影像(data/basemap/Philly_basemap3.tif)。如圖6所示
圖6選擇影像
點選Finish按鈕,按“f”鍵盤場景放大到資料的位置。如圖7
圖7地形和影像
5、新增GIS資料
在Example_Philadelphia__2011_1/data目錄下面找到Results.gdb,選中它然後將它拖動到視窗裡面(viewport)。在File Geodatabase Import對話方塊中(如圖8所示),點選Finish,將GIS資料載入到了場景中如圖9所示:
圖8 File Geodatabase Import對話方塊
圖9 GIS資料
6、使用規則
1、使用向量建築輪廓和屬性建立三維建築
A、選擇“Building1_footprints3D”圖層的所有物件:可以選中圖層上的一個物件,右鍵選單 Select->Select Objects in the Same Layer選中該圖層上的所有物件,如圖10所示:
圖10選擇同一圖層上的所有物件
B、在Example_Philadelphia__2011_1/rules目錄下面找到GIS-Driven buildings.cga規則檔案,選中它然後將它拖動到“Building1_footprints3D”圖層選中的所有物件上。向量物件按照GIS-Driven buildings檔案中的規則產生三維模型,如圖11所示:
圖11 GIS-Driven building規則產生模型
C、這個規則使用了GIS資料中的屋檐高度(Eave_Ht),脊高(Ridge_Ht)和屋頂樣式(Roof _Form)等屬性資料來生成三維建築。使用規則建立模型的優勢是,您可以通過改變規則來輕鬆地修改模型。例如,選擇一個感興趣的建築開啟Inspector對話方塊,可以修改屋檐高度,脊高,屋頂樣式、側面紋理和屋頂紋理等屬性,如圖12所示:
圖12修改模型屬性
2、使用建築輪廓匯入已有三維模型
如果您已經有了一些三維模型,這些模型都是通過第三方建模軟體生成的。有兩種方式可以將這些模型匯入到CityEngine中:
A、如果模型帶有地理座標,例如dae/kml檔案,可以直接將這些檔案拖到CityEngine中。也是使用選單File->Import使用匯入對話方塊工具,將一個目錄下面的所有*.kml檔案匯入到場景中。
B、如果模型沒有位置資訊,您可以使用向量建築物輪廓來為模型定位。選擇Building2_footprints3D圖層上的所有向量物件,在Example_Philadelphia__2011_1/ rules目錄下面找到Collada_Buildings.cga規則檔案,選中它然後將它拖動到Building2_footprints3D圖層選中的所有物件上。即可將已有的模型按照地理位置匯入到CityEngine場景中,如圖13:
圖13匯入已有模型
注:1、可以看到CityEngine可以很好的支援已有三維模型,CityEngine可以很非常方便模型的進行模型修改或更新。
2、選擇所有向量物件的時候,可以選擇某一個模型然後右鍵選單 Select->Select Objects in the Same Layer。還可以在Scene對話方塊(如圖14所示)上關閉其他向量圖層,軟後Ctrl+A,選中開啟圖層中的所有物件。
圖14關閉其他圖層
3、建立植物和街道設施
GeoDatabase中的植物點資料,它提供了植物的位置並且帶有植物的大小和型別等屬性。根據這些資料可以將已有的三維模型按照正確的大小匯入到場景中。選擇Vegetation3D layer圖層上的所有向量物件。在Example_Philadelphia__2011_1/ rules目錄下面找到Vegetation.cga規則檔案,選中它然後將它拖動到Vegetation3D laye圖層選中的所有物件上。同樣的方式選中StreeFurniture3D layer圖層上的所有向量物件,將Street Furniture.cga規則賦予它們,效果如圖15所示:
圖15植物和街道設施
4、建立街道
從圖16上可以看到街道向量部分插入到了地面裡面。
圖16街道陷入地形
這是由高程的精度低或者構建街道的三角網稀疏造成的,可以在CityEngine中進行調整:選擇Streets3D layer上的所有向量物件,選單Layer->Align Shapes To Terrain,在Align Terrain對話方塊(如圖17所示)上Maximal raise distance選項卡中選擇1米,點選Apply按鈕。
圖17調整地形
選擇Streets3D layer上的所有向量物件,賦予Street Construction.cga規則,可以在Inspector對話方塊調整中調整Vehicles per km和People percentage為道路新增一些車輛和行人,如圖18所示:
圖18建立街道
7、匯出結果
3D城市建立完成後,可以使用CityEngine進行瀏覽也可以將建立好的模型匯入到ArcGIS中以進行海量資料的瀏覽和更深入的分析。將模型匯入到ArcGIS中可以先將模型匯出成COLLADA (dae),更詳細的操作請關注系列文章《使用GIS模板創造三維數字城市(三)》。