1. 程式人生 > >CityEngine使用GIS模板創造三維數字城市(一)

CityEngine使用GIS模板創造三維數字城市(一)

ArcGIS提供了ArcScene和ArcGlobe兩種應用程式,二維資料可以以三維的形式進行視覺化展示。然而,一般採用設定圖層的“Base Heights”屬性實現。
某些情況下,把二維幾何圖形轉化為貼附地形表面的三維要素是非常必要的。這樣,當你想使用這些要素和地表互動或者進行空間分析的時候會更具有真實性。
如下的操作步驟描述瞭如何使用三維資料並結合地形資料來建立三維貼附地形的三維要素,模板中使用的資料是虛擬城市模板的一部分。


1、 開啟2Dto3D.sxd文件
在“2Dto3D\Maps and GDBs”下啟動2Dto3D.sxd文件。



右鍵單擊DEM圖層,點選【屬性】,在【基本高度】標籤下啟用【在自定義表面浮動】選項,如圖2。




設定完成以後DEM可以看到高低起伏,而二維資料卻在DEM下面。我們可以通過設定圖層屬性(【基本高度】->【在自定義表面浮動】)來顯示,但是如果你得到真實的三維要素,那需要將二維要素轉化為基於DEM的三維要素。


2、 二維線轉化為三維線
我們已經構建了一個建立好的模型來快速生成3D線。右鍵點選“2Dto3Dlines”GP模型(位於CityData.gdb中Conversion工具箱中)並【編輯】。




通過模型我們可以看到要對“Streets”進行簡化,去掉多餘的曲線;然後,簡化的街道資料被“Interpolate Shape” 工具轉化為3D街道資料。點選【模型】->【驗證整個模型】,然後【執行】。


定位到書籤“3Dstreets”和“Bridges”檢視分析結果。




3 、二維點轉化為三維點
我們同樣構建了一個模型來快速生成3D點。右鍵點選“2Dto3DPoints”GP模型(位於CityData.gdb中Conversion工具箱中)並【編輯】。



可以看到,“Street furniture”點資料直接被“Interpolate Shape”工具轉化成3D點。點選【模型】->【驗證整個模型】,然後【執行】。



關閉模型後,雙擊“2Dto3DPoints”模型,選擇“vegetation”圖層並修改輸出資料名稱為“Vegetation3D”,【確定】將“vegetation”點資料生成3D點。




4 、二維的面轉化為三維面
首先,開啟並編輯“2Dto3DPolygons”GP模型。



可以看到這個模型有2個輸出結果:“Building1_footprints3D”、“Building1_footprints3D_bufferline”,讓我們分析一下這個模型都做了哪些事情。
“Building1_footprints3D”是實際的3D建築物底面,而“Building1_footprints3D_bufferline”是3D的線要素,它將參與地形整平,使得建築物底面更好的與地形貼合。
A、“Building1_footprints3D”的生成需要4步:
1) 面要素轉點要素(FeatureToPoint)
2) 向點要素新增Z資訊(Add Surface Information)
3) 連結點屬性給原始的多邊形(Join Field)
4) 基於Z資訊,將2D多邊形轉化為3D多邊形(Feature to 3D by Attribute)
B、“Building1_footprints3D_bufferline”的生成需要3步:
1) 對2D多變形建立緩衝區(Buffer)
2) 將生成的緩衝區多邊形轉化為線(Polygon To Line)
3) 根據DEM把2D線轉化為3D線(Interpolate Shape)
點選【模型】->【驗證整個模型】,然後【執行】。



對於“Building2_footprints3D”重複相同的操作。




5 、利用3D多邊形把地形整平
從場景中我們可以看到一部分3D多邊形不能很好的與地形貼合,我們接下來要做的就是將地形整平(“tin”儲存於DEM資料夾)。



右鍵單擊“BurnFeaturesIntoDEM”GP模型並編輯。



模型分為兩步:編輯Tin、將Tin轉化為柵格。



點選【模型】->【驗證整個模型】,然後【執行】。



對於“Building_footprints3D”重複相同的操作。



注:這一步需要在英文介面下完成。


6、 建立三維數字城市
    向量資料處理完成以後,可以載入到CityEngine中作為基礎資料,再賦予相應的規則快速建立城市模型,更詳細的操作請關注系列文章《使用GIS模板創造三維數字城市(二)》。