PLATEAUのCityGMLの3D表現を実施します。
CityGMLのダウンロード
下記のサイトでCityGMLのダウンロードを実行します.
3D都市モデル(Project PLATEAU)東京都23区(CityGML 2020年度)
今回は,渋谷駅周辺(3次メッシュコード「53393596・53393586」)の投影をしてみたいので,2次メッシュコード「533935」のCityGMLをダウンロードします.
533935の地図でメッシュコードを確認しています.
ダウンロードしたファイルは東京23区における3D都市モデルのための拡張製品仕様より,下記のような種類があり,各ファイルで圧縮されています.
bldg 建築物、建築物部分、建築物付属物、及びこれらの境界面
tran 道路、通路
luse 土地利用
urf 都市計画区域、区域区分、地域地区
dem 地形(起伏)
fld 洪水浸水想定区域
tnm 津波浸水想定
lsld 土砂災害警戒区域
brid 橋梁
frn 設置物
今回は建築物を投影したいので,「bldg.7z」を解凍します.
中に入っているファイルは,3次メッシュコード(53393596 ex)で整理されているGMLファイルです.
例:53393586_bldg_6697_op2.gml(3次メッシュコード_GMLの種類_日本測地系22011のCRSコード_op2.gml)
また、appearanceフォルダには建物のテクスチャ(表面画像)が入っています.
QGISの投影
GMLの投影バグ
53393586_bldg_6697_op2.gmlをQGISにドラッグすると,「座標」の表記がXY逆になっていることがわかります.
本来,X=緯度・Y=経度となるはずが,X=35.63664,Y=139.70695となって逆になっています.
GMLの投影の修正
その前に生のGMLだといろいろエラーが出ると怖いので、一旦 .gpkg(GeoPackage形式)にして座標のXY入れ替えをします.
SHPに変換もできなくもないのですが日本語の属性フィールド名ですとSHPがエラーを吐くので、*.gpkgとかのほうがおすすめです.
「座標のXY入れ替え」は,「プロセッシングメニュー/プロセッシングツールボックス/ベクタジオメトリ/座標のXY入れ替え」を使用します.
*.gpkgで保存したレイヤーを入力レイヤに選択したら,出力レイヤを入力します.ここではとりあえず,「一時レイヤを作成」でします.
3Dの投影
QGISの投影法(右下端)をEPSG:6677(JGD2011 平面直角ⅠX系)などのメートル単位の投影法に変更します.
そして,QGIS2Threejsプラグインなどを使って,建物高さを"measuredHeight"にして3Dにします.
!(image/3Dsibuya.png)
まとめ
ここまでで,CityGMLの3D表現を実施しました.
次は,Pythonで自動化もしていきます.
参考サイト
3D都市モデル(Project PLATEAU)東京都23区(CityGML 2020年度)
PLATEAUのCityGMLを鼻血出してQGISで表示する
QGISでProject PLATEAUのCityGMLの緯度経度が入れ替わる問題を修正した件
3D都市モデル(Project PLATEAU)ポータルサイト(全国版)
3D都市データ”PLATEAU”をPythonで動かしてみよう