CityGML -都市空間を記述する-
こんにちは、SAKAMOTOです!
今回は3次元都市空間を記述するためのデータ交換フォーマットであるCityGMLについて、概要を超簡単にまとめます。
詳しく知りたい方は、ぜひPLATEAUの解説ページを見てください!
この記事内の説明は基本的にProject PLATEAUのページでも解説されており、そちらの方が正確かつ詳しい情報が得られます。
3D都市モデルの標準フォーマット:CityGML
CityGMLはOGC(Open Geospatial Consotium)で提唱されている、3D都市モデルを扱うための標準的なフォーマットです。
このように標準フォーマットを定めることは異なるソフトウェアやシステム間でのデータの交換が容易になるという利点があり、Project PLATEAUでは3D都市モデルをCityGML形式で公開しています。
CityGMLの「GML」の部分
CityGMLは、地理空間情報を扱うためのXML文法である「GML」を拡張したフォーマットです。
CityGMLが都市モデルを記述できる理由
CityGMLでは、3D都市モデルを記述するにあたって
・都市を構成する基本的な地物(建築物、土地利用、道路など)
・地物の属性
・地物の幾何形状
を表現するためのフォーマットを定めています。
これにより、意味情報と幾何形状を統合した都市モデルを作っている訳ですね!
CityGML(PLATEAU版)の構造
PLATEAUのページでは、東京都23区のCityGML形式データを展開したフォルダ構造例が紹介されています(Project PLATEAU : https://www.mlit.go.jp/plateau/learning/tpc03-1/)。
13100_tokyo23-ku_2020_citygml_3_2_op
├─13100_indexmap_op.pdf
├─codelists
├─metadata
├─specification
└─udx
├─bldg
│ ├─53392633_bldg_6697_appearance
│ ├─…略…
├─brid
│ ├─53392641_brid_6697_appearance
│ ├─…略…
├─dem
├─fld
│ ├─natl
│ │ ├─arakawa_arakawa_1
│ │ ├─…略…
│ └─pref
│ ├─arakawa_kandagawa
│ ├─…略…
├─frn
│ └─53394525_frn_6697_sjkms_appearance
├─lsld
├─luse
├─tran
└─urf
文京区の例
以下は文京区の都市モデルの構成です。
GMLファイルはudx以下の各フォルダの中に入っています。
GMLファイルの中身を見てみると、データが <(属性名)> 値 </(属性名)> の形で格納され、それが階層構造になっていることが分かります。
CityGMLの特徴
都市に存在する様々な地物を表現可能
単純な形状から複雑な内部構造まで、異なる詳細度での表現(LODの設定)が可能
幾何学的な形状だけでなく、オブジェクトに意味情報(例えば、建物の用途や道路の種類)を持たせることができる
新しい属性、新しいオブジェクトを後から追加することが可能(拡張性)
異なるソフトウェアやシステム間でのデータの交換が容易(相互運用性)
CityGMLの嬉しいポイント
最後に、CityGMLでデータが公開されることの何が嬉しいか、軽くまとめます。
全部入りの統一されたデータ構造である
CityGMLはそのフォルダ構造が統一された形式であり、その中に大量の情報を含めることが可能です。
単純に構造が統一されているだけでも嬉しいのに、モデルを扱う際に色々なソースからデータを回収する手間も省けます。自治体によって中身の構造が全然違うなんてこともありません!
加工の幅が広い
GMLファイルはプログラム内で読み書きして中身を加工することが容易です。データが階層構造になっているため、建物単位でデータを加工することも容易で、ユーザーの意思で個々のデータを消したり数値を変えたりできます。
例えば、「ユーザー指定の条件で建物の色を変えたい!」と考えたとき、ただ可視化できるだけのデータでは建物ごとにデータを分割する前処理から書く必要がある場合もあります。しかし、GML形式のように最初から階層構造で記述されていればその必要はありません。
まとめ
この記事ではCityGMLについて簡単にまとめました。
今回ダウンロードした文京区のデータを実際に加工してみたので、次回はその処理についてまとめるかも。
この記事が気に入ったらサポートをしてみませんか?