在攻讀博士學(xué)位期間,我在 3D GIS 研究中遇到了以下缺點:
- 包含多個細節(jié)級別的 CityGML 數(shù)據(jù)集很少。
- 不存在程序化生成的 CityGML 格式的數(shù)據(jù)。
- 沒有免費的程序化建模引擎。
- 公開可用的 CityGML 模型通常包含大量(拓撲)錯誤。
推薦:用 NSDT編輯器 快速搭建可編程3D場景
為了解決這些問題,我開發(fā)了 Random3Dcity,這是一個基本的實驗性開源程序建模引擎,用于自動構(gòu)建合成建筑及其在 CityGML 中的多個 LOD 中的實現(xiàn)。 我在博士項目中將生成的數(shù)據(jù)集用于多種目的,例如對用例中使用特定 LOD 的性能進行基準(zhǔn)測試,但可能的應(yīng)用并不限于此。 特此,我彌合了差距并公開發(fā)布了數(shù)據(jù)集。 引擎的代碼也已發(fā)布。
除了這個項目之外,我還為 3D 城市模型設(shè)計了一種新的 LOD 規(guī)范,該規(guī)范擴展了 CityGML 中的規(guī)范。 該規(guī)范已通過該引擎實現(xiàn)。
憑借其多樣化的建筑物和大量的表示,Random3Dcity 的目標(biāo)是成為可用的最完整的 CityGML(可能還有 3D)數(shù)據(jù)集。 然而,請注意其局限性,例如實驗性質(zhì)和合成結(jié)果。
1、從隨機參數(shù)描述到多種表示形式的 CityGML
Random3Dcity 由兩部分組成。
第一個構(gòu)建具有隨機屬性(程序化建模器)的建筑物,例如高度、屋頂類型和窗戶數(shù)量及其尺寸。
做到這一點的算法相對聰明,它通過遵守大量約束(例如窗戶不重疊)來實現(xiàn)這一點,并注意設(shè)計的建筑物看起來盡可能真實。 引擎將這些數(shù)據(jù)存儲在人類可讀的參數(shù)描述(自己的 XML 模式)中,例如: Gabled2.89。
由于這種隨機性,數(shù)據(jù)集非常適合作為無偏差數(shù)據(jù)源進行許多分析,并適合重新創(chuàng)建現(xiàn)實世界數(shù)據(jù)中可能不可用的許多不同場景。 按照目前的配置,不同建筑物的數(shù)量約為 1054 座。
引擎的第二部分讀取這些數(shù)據(jù),并通過生成多個詳細級別的 CityGML 文件以 3D 形式實現(xiàn)它們。
以下出版物描述了該方法:使用程序建模引擎 Random3Dcity 在 CityGML 中生成多 LOD 3D 城市模型 。
2、更精細的 LOD劃分
作為博士研究的目標(biāo)之一,我開發(fā)了一種新規(guī)范,將 CityGML LOD 規(guī)范細化為 16 個 LOD,即適合當(dāng)前每個 LOD 0、1、2 和 3 的四個不太模糊且詳細指定的變體,旨在 補充 CityGML 規(guī)范。它們是對 3D 制作工作流程進行徹底研究、與從業(yè)者接觸以及檢查現(xiàn)有 3D 模型的產(chǎn)物。
上圖顯示了規(guī)范的直觀描述,下面顯示了包含 100 座建筑物的數(shù)據(jù)集的四個 LOD 的組合。
詳細規(guī)范發(fā)布于:改進的 3D 建筑模型的 LOD 規(guī)范。
3、樓層內(nèi)部實體
Random3Dcity 能夠生成三個細節(jié)級別的基本內(nèi)部:每層一個實體,整個建筑物一個實體(從外殼偏移),以及每個樓層一個 2D 多邊形。 例如,這些實體可以用作構(gòu)建體積計算的地面實況模型。
該引擎生成一些內(nèi)部參數(shù),例如托梁和墻壁厚度,并計算實體的幾何形狀。
4、多個幾何參考
每座建筑物均以多個細節(jié)級別生成(共 16 個)。 此外,它們也是在多個幾何參考中生成的(例如,LOD1 塊模型頂部的不同高度)。
在下面,你可以看到 LOD1 塊模型的七個變體,涉及頂面所使用的幾何參考。
此外,覆蓋區(qū)使用了不同的參考:實際覆蓋區(qū)和屋頂邊緣的投影。 這也適用于 LOD2 模型。
以下出版物描述了該主題:3D 建筑模型 LOD 的變體及其對空間分析的影響 。
5、引擎生成的 CityGML 數(shù)據(jù)集示例
截至 2015 年 3 月 11 日的版本(Random3Dcity v. 0.1.4)。 所有數(shù)據(jù)集包含 900 座建筑物。 下載數(shù)據(jù)之前請閱讀附加信息。 如果你使用這些數(shù)據(jù)來準(zhǔn)備一份出色的出版物,請引用以下論文:使用程序建模引擎 Random3Dcity 在 CityGML 中生成多 LOD 3D 城市模型。
如果你不愿意下載代碼源并自己生成數(shù)據(jù)集,這里我準(zhǔn)備了示例 CityGML 數(shù)據(jù)的壓縮集合。 該 zip 還包含使用我的工具 CityGML2OBJs 生成的 OBJ 文件,如果需要轉(zhuǎn)換為其他格式的3D模型,可以使用這個在線的3D格式轉(zhuǎn)換工具。
下面給出了每個表示的描述。
詳細程度 | 幾何參考 | Brep 或solid | 文件名 | 注釋 |
---|---|---|---|---|
LOD0.1 | 實際占地 | Brep | LOD0_1_F0_H3.gml | 僅包含占地空間 |
LOD0.2 | 實際占地,屋頂一半高度 | Brep | LOD0_2_F0_H3.gml | 包含占地空間和屋頂邊緣多邊形 |
LOD0.3 | 實際占地,獨立高度 | Brep | LOD0_3_F0_H3.gml | 包含占地空間和屋頂邊緣多邊形 |
LOD1.1 | 實際占地,屋頂半高處的高度 | Brep | LOD1_1_F0_H3.gml | |
LOD1.2 | 實際占地,屋頂半高處的高度 | Brep | LOD1_2_F0_H3.gml | |
LOD1.2 | 占地從屋頂邊緣偏移20 厘米 | Solid | LOD1_2_Fd_H5_solid.gml | 不同的占地(偏移) |
LOD1.3 | 實際占地,屋頂半高處的高度 | Solid | LOD1_3_F0_H3_solid.gml | |
LOD2.0 | 實際占地 | Brep | LOD2_0_F0.gml | |
LOD2.0 | 實際占地 | Brep | LOD2_0_F0_S0.gml | 無語義 |
LOD2.1 | 實際占地 | Brep | LOD2_1_F0.gml | |
LOD2.2 | 實際占地 | Brep | LOD2_2_F0.gml | |
LOD2.2 | 實際占地 | Brep | LOD2_2_F0_S0.gml | 無語義 |
LOD2.2 | 從屋頂邊緣投影 | Brep | LOD2_2_F1.gml | |
LOD2.3 | 實際足跡 | Brep | LOD2_3_F0.gml | |
LOD3.0 | 墻壁從屋頂邊緣投影 | Brep | LOD3_0.gml | 空中要素 |
LOD3.1 | 不適用 | Brep | LOD3_1.gml | 陸地特征 |
LOD3.2 | 不適用 | Brep | LOD3_2.gml | |
LOD3.2 | 不適用 | Brep | LOD3_2_S0.gml | 無語義 |
LOD3.3 | 不適用 | Brep | LOD3_3.gml | 非常詳細的模型(系列中最好的) |
LOD3.3 | 不適用 | Brep | LOD3_3_S0.gml | 無語義 |
Interior-LOD0 | 不適用 | Brep | Interior-LOD0.gml | 每層一個多邊形 |
Interior-LOD1 | 不適用 | Brep | Interior-LOD1.gml | 建筑物的一個實體 |
Interior-LOD2 | 不適用 | Brep | Interior-LOD2_2.gml | 每層一個實體 |
備注和未來的工作
- 可以使用我的工具 CityGML2OBJs 將此數(shù)據(jù)轉(zhuǎn)換為 OBJ,如果需要轉(zhuǎn)換為其他格式的3D模型,可以使用這個在線的3D格式轉(zhuǎn)換工具。
- 所有 gml:LinearRing 和 gml:Polygon 都有一個 gml:id,它是隨機生成的 (UUID)。
- 以 _S0.gml 結(jié)尾的數(shù)據(jù)集不包含語義區(qū)分的表面。
- 坐標(biāo)系是局部的。
- 數(shù)據(jù)符合 CityGML 2.0。
該引擎的完整產(chǎn)品包含更多帶有改組變體的數(shù)據(jù)集(更準(zhǔn)確地說是 392 個)。 例如,并非所有帶有高度的 LOD1 變體都放在這里。 如果你需要其他變體,請與我聯(lián)系,或使用提供的代碼生成它們。
6、錯誤的數(shù)據(jù)集(故意)
已經(jīng)創(chuàng)建了一個輔助引擎來模擬上述原始數(shù)據(jù)集的采集錯誤。 該數(shù)據(jù)適合錯誤傳播分析(例如,請參閱我的相關(guān)論文)。 此外,由于某些文件中的拓撲可能會損壞,因此其使用可能會擴展到其他領(lǐng)域,例如測試驗證和修復(fù)工具。
6.1 位置誤差
LOD | 分布誤差 | 錯誤數(shù)據(jù)集 | 注釋 |
---|---|---|---|
LOD1 | σ = 0.0 m (GT) | LOD1-F1H1 [5.7MB] | Solid |
σ = 0.2 m | LOD1-F1H1-0.2 [5.7MB] | Solid | |
LOD2 | σ = 0.0 m (GT) | LOD2-F1 [8.7MB] | Brep |
σ = 0.2 m | LOD2-F1-0.2 [8.7MB] | Brep | |
LOD3 | σ = 0.0 m (GT) | LOD3 [81.4MB] | Brep |
σ = 0.2 m | LOD3-0.2 [81.4MB] | Brep |
注意:
- 誤差相當(dāng)于 ISO 19157 空間數(shù)據(jù)質(zhì)量元素位置精度。
- 假設(shè)不存在不確定性的空間相關(guān)性。
- 所有坐標(biāo)的不確定性都相同。 垂直 (z) 坐標(biāo)不單獨處理。
6.2 重疊的對象
重疊的對象是不需要的。 因此,這些數(shù)據(jù)集也可能有助于測試驗證和修復(fù)軟件。 以下數(shù)據(jù)集包含在多個 LOD 中重疊的建筑物。
LOD | 錯誤數(shù)據(jù)集 | 注釋 |
---|---|---|
LOD2 | LOD2-重疊 [519kB] | Brep |
LOD3 | LOD3-重疊 [5.2MB] | Brep |
6.3 不明確的語義
這些數(shù)據(jù)集包含打亂的語義表面和/或缺失的語義類。 表面的語義是統(tǒng)一隨機的(以下各為 1/3:GroundSurface、RoofSurface、WallSurface)。
LOD | 錯誤數(shù)據(jù)集 | 注釋 |
---|---|---|
LOD2 | LOD2-F1-任意語義 [2.2MB] | Brep |
LOD3 | LOD3-任意語義 [21.2MB] | Brep, 門窗缺失(用 3 個類代替) |
6.4 嚴重的拓撲錯誤
以下 LOD3 數(shù)據(jù)集包含拓撲錯誤,例如破碎的實體和內(nèi)部位于其外部的多邊形。文章來源:http://www.zghlxwxcb.cn/news/detail-648525.html
LOD | 錯誤數(shù)據(jù)集 | 注釋 |
---|---|---|
LOD3 | LOD3-錯誤拓撲 [21MB] | Brep, 大多數(shù)錯誤都是外圍窗口 |
LOD3 | LOD3_solid-error-topology [1.9MB] | Solid, 大多數(shù)錯誤是屋頂尖端自重疊 |
原文鏈接:CityGML程序化建模 — BimAnt文章來源地址http://www.zghlxwxcb.cn/news/detail-648525.html
到了這里,關(guān)于CityGML程序化建模開源引擎及數(shù)據(jù)集的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!