見出し画像

CityGML -都市空間を記述する-

こんにちは、SAKAMOTOです!

今回は3次元都市空間を記述するためのデータ交換フォーマットであるCityGMLについて、概要を超簡単にまとめます。


詳しく知りたい方は、ぜひPLATEAUの解説ページを見てください!
この記事内の説明は基本的にProject PLATEAUのページでも解説されており、そちらの方が正確かつ詳しい情報が得られます。





3D都市モデルの標準フォーマット:CityGML

CityGMLはOGC(Open Geospatial Consotium)で提唱されている、3D都市モデルを扱うための標準的なフォーマットです。

このように標準フォーマットを定めることは異なるソフトウェアやシステム間でのデータの交換が容易になるという利点があり、Project PLATEAUでは3D都市モデルをCityGML形式で公開しています。

OGC(Open Geospatial Consotium)
産・官・学の様々な機関から構成される、地理空間情報に関する国際標準化団体

https://www.ogc.org/

💡標準的なフォーマット?
「こういう構造で、こういう情報を持ったファイルを、こういう名前で、こういう配置で置いてくださいね〜」といった感じで、データの標準的な仕様を定めたもののことです!



CityGMLの「GML」の部分

CityGMLは、地理空間情報を扱うためのXML文法である「GML」を拡張したフォーマットです。

XML  (AWS : https://aws.amazon.com/jp/what-is/xml/)
任意のデータを定義するルールを提供するマークアップ言語です。

マークアップ言語  (AWS : https://aws.amazon.com/jp/compare/the-difference-between-html-and-xml/)
人間と他のソフトウェアプログラムの両方が理解できるデータを記述するための体系です。データの構造、タイプ、属性、各部の間の関係、表示、意味を定義する読みやすい構文を使用します。


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以下の各フォルダの中に入っています。

13105_bunkyo-ku_city_2023_citygml_1_op(CityGML)の中身
udx/bldgファイルの中に、建築物の情報がまとめられたgmlファイルが入っています。


GMLファイルの中身を見てみると、データが <(属性名)> 値 </(属性名)> の形で格納され、それが階層構造になっていることが分かります。

GMLファイルの中身
このデータはudx/bldg/53394567_bldg_6697_op.gml に入っていました。
この階層構造を持ったデータの中に、意味情報と幾何情報がそれぞれ格納されています。



CityGMLの特徴

  • 都市に存在する様々な地物を表現可能

  • 単純な形状から複雑な内部構造まで、異なる詳細度での表現(LODの設定)が可能

  • 幾何学的な形状だけでなく、オブジェクトに意味情報(例えば、建物の用途や道路の種類)を持たせることができる

  • 新しい属性、新しいオブジェクトを後から追加することが可能(拡張性)

  • 異なるソフトウェアやシステム間でのデータの交換が容易(相互運用性)



CityGMLの嬉しいポイント

最後に、CityGMLでデータが公開されることの何が嬉しいか、軽くまとめます。

全部入りの統一されたデータ構造である

CityGMLはそのフォルダ構造が統一された形式であり、その中に大量の情報を含めることが可能です。
単純に構造が統一されているだけでも嬉しいのに、モデルを扱う際に色々なソースからデータを回収する手間も省けます。自治体によって中身の構造が全然違うなんてこともありません!


加工の幅が広い

GMLファイルはプログラム内で読み書きして中身を加工することが容易です。データが階層構造になっているため、建物単位でデータを加工することも容易で、ユーザーの意思で個々のデータを消したり数値を変えたりできます。
例えば、「ユーザー指定の条件で建物の色を変えたい!」と考えたとき、ただ可視化できるだけのデータでは建物ごとにデータを分割する前処理から書く必要がある場合もあります。しかし、GML形式のように最初から階層構造で記述されていればその必要はありません。


まとめ

この記事ではCityGMLについて簡単にまとめました。
今回ダウンロードした文京区のデータを実際に加工してみたので、次回はその処理についてまとめるかも。


この記事が気に入ったらサポートをしてみませんか?