3D都市モデルのCityGMLの現在とこれから

これは [FOSS4G Advent Calendar 2020](https://qiita.com/advent-calendar/2020/foss4g) の記事です。

当初は「3D都市モデルのCityGMLをQGISで読み込む？」という記事名で，CityGMLをCityJSONに変換してQGISに読み込む一連の流れについて解説しようとしたのですが，12/8のMIERUNE Advent Calendar 2020-7日目で@nokonoko_1203さんが秀逸な記事を執筆されたので，実際の変換方法などを知りたい方はそちらをご覧ください．[QGISで3D巨大都市（の一部）を召喚する](https://qiita.com/nokonoko_1203/items/0491abe96d8a2f476f45)

ということで，この記事では3D都市モデル周りの状況について，もう少し概観的な内容をベースに文献などを交えて現時点での動向が参照できるような内容としてまとめたいと思います．

# CityGMLとは？
CityGMLは，都市や景観に関するデジタルな3Dモデルの記述・管理・交換のためのデータ形式標準で，地理空間情報の国際標準化団体であるOGC（Open Geospatial Consortium）によって，2020年12月時点でVer2.0が標準化されています．[【OGC CityGML】](https://www.ogc.org/standards/citygml)

CityGMLの大きな特徴の一つが，モデルの詳細さをLoD（Level of Detail）と呼ばれる考え方で定義することです．つまり，デジタル地図で表現する際に，広域で鳥瞰した場合の地形表現レベルから，都市の内部，さらには個別の建物の内部レベルまで5段階で定義されており，[GML（Geography Markup Language：ISO 19136-1:2020）](https://www.ogc.org/standards/gml)という，OGCによって開発された地理的なデータ構造をXMLベースで表現するマークアップ言語で表記されています．

3D都市・景観モデルや建物内部のデータモデルについては，例えば，ISO標準で，建築・建設系の国際規格である[IFC（Industry Foundation Classes: ISO16739-1:2018）](https://www.iso.org/standard/70303.html)や，建物内部のナビゲーションに使われることを想定したデータモデルの[IndoorGML](http://www.indoorgml.net/)などもあげられます．他方で，スマートシティやデジタルツインなど，都市全体から建物までをシームレスにデータを管理したり，様々な主体が多様な目的で活用する上では，用途に応じて同じフォーマットからデータを抽出したり可視化に必要な変換が出来るという点で，展開がしやすいのかもしれません．

ただし，**CityGMLをそのままの形式で直接Webマップ上に読み込むことは（現時点では）現実的ではなく**，プロプライエタリ／オープンソースによって操作性の違いはあるものの，**何らかの形でデータ変換が必要である**点は，特に視覚的にデータを扱う上では注意が必要です．

なお，3次元地図の整備・更新技術の開発という視点で，上記のフォーマット等についての整理は，[国土地理院地理地殻活動研究センターの資料（2017）](https://www.gsi.go.jp/common/000185572.pdf)や，長年CityGML等の国際標準化について活動されてきた[石丸さんの解説](https://www.jstage.jst.go.jp/article/jjca/52/3/52_3_29/_pdf)で，わかりやすく整理されています．

![スクリーンショット 2020-12-13 13.29.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/4c9e21f9-93d3-9293-f990-2da40d90ffd6.png)

# CityGMLの活用

ニューヨークやヘルシンキ，幾つかの諸都市ではオープンデータやデータ標準化の動きの中で，CityGMLでの大規模なデータ公開が進められきました．最もまとまっている例は，以下のTU Delftのもので約40の例が示されています．このうち，LoDの大部分を占めるのはLoD1もしくはLoD2と呼ばれるもので，建物の外見や屋根形状まで判別できるレベルで，LoD1の場合は白箱と呼ばれる四角い箱が立ち上がって階数がわかるレベルのもののようです．

* [TU DelftのCities/regions around the world with open datasets] (https://3d.bk.tudelft.nl/opendata/opencities/)

中でも，最も大規模なものでは，「Open City Model」全米51都市の1億2500万棟に及ぶCityGMLと（後述する）CityJSON形式でオープンデータされているものです．

* [opencitymodel](https://github.com/opencitymodel/opencitymodel)
![スクリーンショット 2020-12-13 15.38.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/7b1ed029-39c7-7793-596c-9c90007378ba.png)

また，ヘルシンキでは，建物の外観画像を含めてCesiumベースで公開サイトを構築しており，フォーマットも多様なようです．CityGML, 2D Shape, 3D Shape - PolygonZ, 3D Shape - Multipatch, KMZ, DXF, DWG, 3DS, ESRI FGDB など．

* [Helsinki](https://kartta.hel.fi/3d/#/)
![スクリーンショット 2020-12-13 15.40.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/07c1ea32-35c1-b59c-275c-99a8951f84fd.png)

また，TU Delftの事例には未掲載でしたが，最近ミラノ工科大学の研究者らによって発表された論文では，「URBAN GEO BIG DATA project」の一環として各種都市シミュレーションのデータとしてCityGMLを活用し，CesiumJSを使って視覚化した事例が紹介されており，より都市政策に近い活用の事例として参考になりそうです．

>  Kilsedar, C.E.; Brovelli, M.A. Multidimensional Visualization and Processing of Big Open Urban Geospatial Data on the Web. ISPRS Int. J. Geo-Inf. 2020, 9, 434. [https://doi.org/10.3390/ijgi9070434](https://doi.org/10.3390/ijgi9070434)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/25580fda-3471-31f0-956c-e60fae8fd604.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/b0276f16-0d00-c0c8-96c0-368ec565f2d2.png)

これらのデータは多くの場合，Web3次元マップとして資格されるだけでなく，データライセンスとしてCC-BY 4.0で公開されており，オープンデータとして重要な要素ともなっています．

# 日本でのCityGML関連の動向（i-UR）
ところで，日本でも内閣府地方創生推進事務局が中心となり，2018年頃から都市再生のための情報基盤化をキーワードに「i-都市再生」という取り組みが始まり，CityGML形式を採用した「i-都市再生」技術仕様案（i-UR 1.0）が策定されました．[参考ページ](https://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/kisyahappyou1_0/index.html)

具体的には，上記の参考ページに掲載されている[技術仕様](https://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/shiyouan1_1.pdf)が参考になりますが，CityGMLの拡張機能であるADE（Application Domain Extensions）として，

* Part 1︓都市オブジェクトデータ（建物、土地利用、交通機関・道路利用状況等）
* Part 2︓都市機能データ（用途地域、浸水区域等、都市再生に関連する制約・条件データ）
* Part 3︓統計グリッドデータ
* Part 4︓LODの拡張（LOD1-, LOD2-）

が追加されています．特に建物形状以外の要素は，都市のシミュレーションを通した都市政策のデータ活用などに向けて大きく貢献が期待されるでしょうし，下記の報道発表資料にもあるように，国土地理院の地理院地図や国勢調査，都市計画基礎調査など他のデータ連携によって充実化が図れるデータ要素が多くありそうです．

> 注：データ連携の頭にある，地理院GISは正しくは[「地理院地図」](https://maps.gsi.go.jp)，国土数理情報は正しくは[「国土数値情報」](https://nlftp.mlit.go.jp/ksj/)のことを指すのだと思います）

![スクリーンショット 2020-12-13 16.07.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/530c5b3f-dead-7ab0-dff7-72f79f6a64b5.png)
![スクリーンショット 2020-12-13 16.07.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/5076d176-c7b7-331f-900b-6333c8cfd150.png)

このi-URを全面採用して都市データが整備されている事例はこれからという段階だと思いますが，欧米と同様に建物のCityGMLについては，下記の9つの都市で先行的に整備され公開されています．出典は基盤地図情報（国土地理院）とのことです．

*  青森県むつ市／埼玉県秩父市／朝霞市／長野県茅野市／愛知県名古屋市／高知市／福岡市西区／宗像市／糸島市
* [都市構造可視化計画　建物CityGMLのダウンロード](https://minna.mieruka.city/citygml-download/)

同様に，宗像市については上記のデータ出典とは別に，市のサイト上でも平成29年度都市計画基礎調査を参考として作成された建物利用現況データとしてCityGML形式でデータが公開されています．

* [宗像市建物状況](https://www.city.munakata.lg.jp/w028/040/040/060/1000/1800/20181126134332.html)

このように日本でも，少しづつCityGMLでの公開が進みつつあるものの，**データライセンスについて判然としない部分が多く，大きな課題**と感じておりこのあたりも今後進んで検討できると良いと思います．

# （これから？）CityGML 3.0の動き
一方，スマートシティなどの取り組みが進む中で，より高精度な3D都市モデルが必要になってきたり，人や車など移動体，センサーから取得されるデータの活用など，動的データに対するニーズ・シーズも高まって来る中でCityGMLも次期メジャーバージョンとして3.0の開発を行ってきました．

> [【文献】CityGML 3.0: New Functions Open Up New Applications](https://medium.com/tosseto-info/%E6%96%87%E7%8C%AE-citygml-3-0-new-functions-open-up-new-applications-add145bc5204)
> 元記事は，Kutzner, T., Chaturvedi, K. & Kolbe, T.H. CityGML 3.0: New Functions Open Up New Applications. PFG 88, 43–61 (2020). https://doi.org/10.1007/s41064-020-00095-z

あたりを参照すると，LoDの定義の見直しや時間軸を持ったデータの表現，都市モデルのバージョニング（更新履歴），点群データ（Point Cloud）によるオブジェクト表現，交通インフラの表示改善など様々な展開があるようです．LoDの見直しについては，オブジェクトの内部表現を表すLoD4が削除され，代わりにLoD1-3統合して表すようになるようです．

> Löwner MO, Gröger G, Benner J, Biljecki F, Nagel C (2016) Proposal for a new LOD and multi-representation concept for CityGML. ISPRS Ann Photogramm Remote Sens Spat Inf Sci IV-2/W1:3–12

また大きな変化として着目されるのは，時間の経過とともに変化する要素で，VersioningとDynamizerと呼ばれる概念で，下記がそれぞれ記述できるようになるようです．例えば建物であれば建築中の過程であったり，交通・移動データであれば運行状況，センサでも観測時間と計測値などがCityGMLの中でも記述できると，都市シミュレーションとしてよりわかりやすい活用ができるようになりそうです．

* Versioning モジュール：(1)建物の建設や解体などの都市の歴史や経過、(2)複数のバージョンの都市モデルの管理など、時間的に遅い質的な変化を管理するもの
* Dynamizerモジュール：(1)物理量の変化（エネルギー需要、温度、日射量）などのテーマ属性の変化、(2)形状や位置に関する特徴の形状の変化（移動する物体）などの空間特性、(3)リアルタイムのセンサ観測など、高頻度な定量変化を管理するもの

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/2f913f4a-99de-ce06-dc53-301387a36de5.png)

    OGC (2019a) CityGML 3.0 conceptional model. https://github.com/opengeospatial/CityGML-3.0CM
    OGC (2019b) CityGML 3.0 encodings. https://github.com/opengeospatial/CityGML-3.0Encodings

> 【12/15 update】文中にも参考文献であげさせていただいた石丸伸裕さんより，直接早速フィードバックがありました．ありがとうございました．
1. CityGML 3.0ではLODが屋内外で分離されるそうです（外観はLOD1、屋内は詳細な地図など）
2. [Conceptual Model User Guideのドラフト版が公開されました！](http://docs.opengeospatial.org/DRAFTS/20-066.pdf)
3. [Public comment sought on CityGML 3.0 Conceptual Model for storage and exchange of 3D city models](https://www.ogc.org/pressroom/pressreleases/4370?fbclid=IwAR18kDAMMFlADOAWE8xhVRk6UqnepTOFNGNJIQcRwDHZ2lbhfvRaz13kow8)

さらに上記の論文では，「Further New Concepts」としてPoint Cloudにも触れています．日本では，2020年のグッドデザイン賞を受賞された[「VIRTUAL SHIZUOKA」データセットCC-BY 4.0](https://www.g-mark.org/award/describe/51263)のように，都市や県単位での大規模な3次元点群データも現れ始めており，データ連携が期待されます．具体的にはまだわかりませんが論文中の説明によれば，「例えばレーザースキャナの結果から直接モデル化ができるように，またLASやLAZのような一般的なタイプの外部ファイルを参照して表現も可能になる」ように考えられているようです．

> 静岡県の伊豆東部エリア（1,050km2）を航空レーザ計測や、航空レーザ測深、移動計測車両により、広範囲かつ高密度に取得した３次元点群データ（Pointcloud）のデータセット。地表面や樹木・建物等の地物、海岸線の水中部の緯度・経度・標高の座標情報データ（約7TB）を「G空間情報センター」から公開している。データセットは、オープンデータ（CC-BY 4.0）として誰でも自由に二次利用が可能。（[グッドデザイン賞受賞ページ：CC-BY ND](https://www.g-mark.org/award/describe/51263)）

# CityGMLとジオデータビジュアライゼーションとの中間解としての？CityJSON

上記のようにCityGMLは都市のモデル化やデータ活用の上で様々な期待がある一方，3D都市モデルを可視化したり，GISソフトウェアに汎用的に読み込ませる上ではまだ課題も多くあります．そこで，CityGML2.0モデルをベースにJSONエンコーディングで使いやすくするために，CityJSONと呼ばれるフォーマットが開発されています．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31301/6a854e8f-d2fb-58bc-54c0-016037250e31.png)
> Ledoux, H., Ohori, K. A., Kumar, K., Dukai, B., Labetski, A., & Vitalis, S. (2019). CityJSON: A compact and easy‐to‐use encoding of the CityGML data model. Open Geospatial Data, Software & Standards, 4, 4. 

CityJSONについては，最近[QGISで読み込めるプラグインが開発](https://github.com/cityjson/cityjson-qgis-plugin)され，GIS学術誌の重要な国際誌の一つであるTransactions in GISでTU Delftの研究者によって[論文化](https://doi.org/10.1111/tgis.12657)もされました．長くなるため詳細は省略しますが，基本的な都市モデルの表現と，QGIS3.xに実装されている3D Viewerを併用することで，3D表現も可能になっている点，幾つかのCityGMLで変換実験を行った結果，適切にデータが読み込めている点などが検証され，CityGMLデータが視覚的にどのように表現されるかを点検したり具体的に可視化する上で，JSON形式で扱えるため非常に有用なツールになっています．

他方，CityJSONとQGISの組み合わせでは，テクスチャの表示やメタデータの細かな検証にはまだ課題があり，都市を細かく表現するためのデータモデル，という複雑なデータ構造を完全にカバーできていない点はやむを得ない状況とも言えます．ともあれ，これまで都市の建物データの多くが，2次元平面かつ，SHPファイルやGeoJSONまでの扱いとして限界だったものを，遥かに拡げてくれる意味で，このあたりのユースケースにも今後要注目だと感じました．

> Vitalis, S, Arroyo Ohori, K, Stoter, J. CityJSON in QGIS: Development of an open‐source plugin. Transactions in GIS. 2020; 24: 1147– 1164. https://doi.org/10.1111/tgis.12657

# 参考文献
* 石丸伸裕（2014）「3次元地理空間データCityGML / IndoorGMLに関する国際標準化活動」「地図」52(3) https://www.jstage.jst.go.jp/article/jjca/52/3/52_3_29/_pdf
* Kilsedar, C.E.; Brovelli, M.A. Multidimensional Visualization and Processing of Big Open Urban Geospatial Data on the Web. ISPRS Int. J. Geo-Inf. 2020, 9, 434. https://doi.org/10.3390/ijgi9070434
* Kutzner, T., Chaturvedi, K. & Kolbe, T.H. CityGML 3.0: New Functions Open Up New Applications. PFG 88, 43–61 (2020)https://doi.org/10.1007/s41064-020-00095-z
* Vitalis, S, Arroyo Ohori, K, Stoter, J. CityJSON in QGIS: Development of an open‐source plugin. Transactions in GIS. 2020; 24: 1147– 1164. https://doi.org/10.1111/tgis.12657