tpc20-2

TOPIC 20|QGISプラグインを使って3D都市モデルを可視化する[2/2]|CityGML形式ファイルのインポート

このトピックでは、オープンソースのデスクトップGISである「QGIS」を使って、PLATEAUの3D都市モデルを可視化します。ここからは「PLATEAU QGIS Plugin」を用いて、必要な詳細度(LOD)だけをインポートしたり、地物を別々のレイヤに分けたりするなど、扱いやすい形式でQGISに取り込む方法を解説します。

Share

このトピックでは、オープンソースのデスクトップGISである「QGIS」を使って、PLATEAUの3D都市モデルを可視化します。ここからは「PLATEAU QGIS Plugin」を用いて、必要な詳細度(LOD)だけをインポートしたり、地物を別々のレイヤに分けたりするなど、扱いやすい形式でQGISに取り込む方法を解説します。

【目次】

20.4  CityGML形式ファイルのインポート

 20.4.1  CityGML形式ファイルの準備

 20.4.2  CityGMLのインポート

 20.4.3  生成されたレイヤを確認する

 20.4.4  地図を重ねて表示する

20.5  属性の確認とスタイリング

 20.5.1  属性を確認する

 20.5.2  属性に応じてスタイリングする

20.6  3Dで表示する

 20.6.1  Qgis2threejsプラグインのインストール

 20.6.2  3D表示する

20.7  GeoPackageとして保存する

20.4 _ CityGML形式ファイルのインポート

PLATEAU QGIS Pluginの準備ができたら、CityGML形式ファイルをインポートしていきます。

20.4.1 _ CityGML形式ファイルの準備

まずは、CityGML形式ファイルを準備します。ここでは、下記の愛知県津島市のデータセットを使います。この都市は、第1.0版の[CityGML]と、第2.0版の[CityGML(V2)]の両方が提供されています。第2.0版の[CityGML(V2)]をダウンロードしてください(図20-9)。

ダウンロードしたファイルは、ZIP形式です。適当なフォルダに展開してください(図20-10)。展開したフォルダの構成は変更しないでください。変更してしまうと、付随する属性情報を読み取れないことがあります。

【愛知県津島市のデータセット】

https://www.geospatial.jp/ckan/dataset/plateau-23208-tsushima-shi-2020

図20-9 愛知県津島市のCityGML形式ファイルをダウンロードする
図20-10 ダウンロードしたZIP形式ファイルを展開したところ

20.4.2 _ CityGMLのインポート

対象のCityGML形式ファイルを準備ができたら、次の手順でインポートします。

【手順】CityGMLのインポート

[1]PLATEAU QGIS Pluginを起動する

[プロセシング]メニューから[ツールボックス]を開きます。[Project PLATEAU]の配下の[PLATEAU 3D都市モデルを読み込む]をダブルクリックして、PLATEAU QGIS Pluginを起動します(図20-11)。

図20-11 PLATEAU QGIS Pluginを起動する
コラム:メッシュとして読み込む

このトピックでは扱いませんが、PLATEAU QGIS Pluginには、「PLATEAU地形モデルをメッシュとして読み込む」という機能もあります。

この機能は、地形モデル(DEM)をメッシュレイヤとして読み込むための機能です。[PLATEAU 3D都市モデルを読み込む]でも地形モデルを読み込むことはできますが、データが重く、描画などに時間がかかるため、[PLATEAU地形モデルをメッシュとして読み込む]を選んでインポートすることを推奨します。詳しい使い方は、利用マニュアルを参照してください(https://github.com/Project-PLATEAU/plateau-qgis-plugin/blob/main/docs/manual.md)。

[2]対象ファイルとオプションを選ぶ

インポートのウィンドウが表示されたら、次の項目を設定します。

(1)PLATEAU CityGMLファイル

対象のCityGMLファイルを選択します。どのファイルでもよいのですが、今回は建築物のファイルを例に説明します。展開したフォルダに含まれるudx/bldg/52366519_bldg_6697_op.gmlを選択してください。

(2)読み込むLOD

(1)で選択したファイルに含まれるLODのうち、どれを読み込むかを選択します。LODとは詳細度のことです。値が大きいほど、より詳細なデータが含まれる一方、データサイズは大きくなるので、データ利用の目的に応じて、適切なものを選びます。

次の選択肢があります。ここでは例として、[全てのLODを読み込む]を選択します。

【メモ】

[全てのLODを読み込む]を指定すると、処理に時間がかかります。軽量に扱いたい場合は、[最も単純なLODのみを読み込む]を選択するとよいでしょう。建築物モデルにおいて、この選択肢を選んだ場合、建築物の形状を立方体として表現し、屋根や窓などを再現しないLOD1が読み込まれます。LODについての詳細は、「TOPIC3 3D都市モデルデータの基本[3/4]|LODレベルによる表現の違い」で説明しています。データ利用の目的に応じて必要なLODを確認してください。

・最も単純なLODのみを読み込む(デフォルト)

LODの値が最も小さいもの(例えばLOD1)を読み込みます。

・最も詳細なLODのみを読み込む

LODの値が最も大きいもの(例えばLOD2やLOD3)を読み込みます。

全てのLODを読み込む

すべてのLODを読み込みます。それぞれのLODは、別のレイヤとして読み込まれます。

(3)追加のオプション

その配下のオプションとして、表20-2に示す項目があります。今回は、すべてデフォルトのままとします。

項目意味
地物を構成する部分ごとのレイヤを分けるLOD2以上のモデルにおいて、壁や屋根、車道や歩道など、意味別に分けて、地物を読み込みます。有効にすると、生成される地物の数が大幅に増える可能性があります
3次元データを強制的に2次元化する高さを持つモデルでも、高さを捨てて平面データとして読み込みます(都市計画決定情報など、もともと高さを持たないモデルは、このオプション設定に関わらず、平面として読み込まれます)
既存の同名レイヤに追加する同名のレイヤがある場合、追加します。デフォルトではチェックが付いています
表20-2 オプション項目

(4)変換先CRS

読み込むファイルの変換先のCRSを指定します。デフォルトは「EPSG:6668(JDG2011)」です。今回は、このデフォルトのままにします。

【メモ】

CRSについては「TOPIC3 3D都市モデルデータの基本[4/4]|CityGMLの座標・高さとデータ変換」を参照してください。

上記の(1)~(4)の項目を設定したら、[実行]ボタンをクリックして、インポートを実行します。実行が終わったら、[閉じる]をクリックしてインポートのウィンドウを閉じてください。

図20-12 CityGMLファイルをインポートする
コラム:バッチプロセスによる複数ファイルの一括読み込み

複数のファイルをまとめて取り込みたいときは、ウィンドウ下部の[バッチプロセスで実行]をクリックします。すると、ファイルを複数選択して、まとめて取り込めます。この操作の詳細は、「TOPIC21  QGISを用いた災害リスク情報の可視化と分析」で解説します。

20.4.3 _ 生成されたレイヤを確認する

インポートが完了すると、「Building(LoD1)」「Building(LoD2)」……のように、レイヤが生成されます。

図20-13 生成されたレイヤ

この例の場合、[レイヤ]の部分を見るとわかるように、5つのレイヤが生成されています。生成されるレイヤは、「地物レイヤ」と「災害リスクの属性レイヤ」の2種類に分かれます。

地物レイヤ

[Building(LoD1)]や[Building(LoD2)]のレイヤです。ひとつしかレイヤを読み込んでいない場合([最も単純なLODのみを読み込む]もしくは[最も詳細なLODのみを読み込む]を選んだ場合)は、[Building]というひとつのレイヤしか生成されません。

ここには、インポートした地物が配置されています。

災害リスクの属性レイヤ

[Building / TsunamiRisk]や[Building / RiverFloodingRisk]は、災害リスク情報が設定されているレイヤです。地物に対して、災害リスクの属性が設定されているときに限って生成されます。名称は、CityGMLの属性として含まれる「説明文(description)」と「規模(scale)」に基づくものであるため、読み込んだCityGML形式ファイルによって異なります。災害リスク情報を持たない場合、これらのレイヤは生成されません。

災害リスクの属性レイヤには、浸水の高さや土砂災害の範囲などが含まれています。これらの属性の扱い方については、「TOPIC21  QGISを用いた災害リスク情報の可視化と分析」で解説します。

【メモ】

もし災害リスクの属性レイヤが出力されないときは、第2.0版のファイル(CityGML V2)を用いたかを再確認してください。第1.0版のファイルを読み込んだ場合は、出力されません。

20.4.4 _ 地図を重ねて表示する

さて、地物だけを表示しても、地図上の位置がわかりにくいので、地図を重ねて表示します。

いくつかの方法がありますが、ここでは簡易な方法として、[ブラウザ]ウィンドウの[XYZ Tiles]から[OpenStreetMap]をダブルクリックします。すると、地図のレイヤとして追加されます。ドラッグ&ドロップして、一番下に移動すれば、地図と地物を重ねて表示できます。

【メモ】

OpenStreetMapは、誰もが自由に編集できる世界地図を作る共同作業プロジェクトです(https://openstreetmap.jp/)。

【メモ】

QGISでは、OpenStreetMap以外の地図――例えば、地理院地図など――を表示することもできます。より詳しくは、「TOPIC5 GISで活用する」を参照してください。

図20-14 OpenStreetMapを追加する

20.5 _ 属性の確認とスタイリング

PLATEAUの3D都市モデルには、建築物の用途や高さなどの属性が含まれています。こうした属性を確認してみましょう。

20.5.1 _ 属性を確認する

レイヤ上の地物に関する属性は、「属性テーブル」で確認できます。

属性テーブルは、レイヤを右クリックし、[属性テーブルを開く]メニューから開くことができます。ここでは、[Building(LoD1)]レイヤの属性テーブルを開いてみます。

すると図20-16のように、さまざまな地物の属性が表示されます。主な属性の意味を表 20-3に示します。

【メモ】

属性は、PLATEAUの「3D都市モデル標準製品仕様書」にて定められています。すべての属性の意味については、こちらの仕様を参照してください。

【メモ】

属性テーブル上で行をクリックして選択すると、レイヤ上の該当の地物が選択状態になって色が変わるため、対象物を地図上で確認できます。また図20-16の左下で[すべての地物を表示]ではなく[選択した地物を表示]に切り替えると、地図上で選択した地物の属性だけが表示されるようになり、地図上で対象物を選択して、その属性を調べやすくなります。

図20-15 Building(LoD1)の属性テーブルを開く
図20-16 属性テーブルで属性を確認する
項目意味
id建築物ごとに付与されているユニークなID
usage建築物の主な用途
measuredHeight計測により取得した、建築物の地上の最低点から最高点までの高さ
buildingFootprintArea建築物の壁や柱の中心線で囲まれた部分の水平投影面積。単位はuom属性で指定されており、PLATEAUの3D都市モデルでは、uom=m2(平方メートル)に固定
表20-3 主な属性の意味

20.5.2 _ 属性に応じてスタイリングする

QGISでは、こうした属性に応じて、地物の色を変えるなどのスタイリングの設定ができます。

ここでは例として、建築物の主な用途を示す「usage」の属性値に基づき、色を変えてみます。

【メモ】

「主な用途」とは、都市計画基礎調査実施要領(国土交通省都市局)による区分です。「住宅」「商業施設」などの区分があります。取り得る値は、https://www.geospatial.jp/iur/codelists/3.0/Building_usage.xmlのスキーマで定義されています。

【手順】属性に応じてスタイリングする

[1]レイヤのプロパティを開く

[Building(LoD1)]を右クリックして[プロパティ]を選択し、レイヤのプロパティを開きます。

図20-17 レイヤのプロパティを開く

[2]シンポロジを変更する

[シンポロジ]タブをクリックして選択します。

一番上のドロップダウンリストを[カテゴリ値による定義(categorized)]に変更します。そして[値(Value)]に[usage]を選択して[分類]ボタンをクリックします。

すると、usage属性に設定されている値が読み込まれ、取り得る値それぞれについて、別の色が自動で割り当てられます。[OK]ボタンをクリックして、この変更を適用します。

【メモ】

必要であれば、それぞれの項目で色が表示されている部分をクリックすると、色を変更できます。

図20-18 シンポロジを変更する

すると、建築物の用途ごとに色分けして表示されます。

【メモ】

ここでは用途ごとに色分けしましたが、値の大小で色づけすることもできます。例えば[連続値による定義]を選べば、建築物の高さが高いものほど色を表示することもできます。

図20-19 色分けして表示された

20.6 _ 3Dで表示する

QGISでは、読み込んだ3D都市モデルを3D表示することもできます。3D表示するには、Qgis2threejsプラグインを使います。

20.6.1 _ Qgis2threejsプラグインのインストール

次の手順で、Qgis2threejsプラグインをインストールします。

【手順】Qgis2threejsプラグインをインストールする

[1]プラグインの管理とインストールを開く

[プラグイン]メニューから[プラグインの管理とインストール]を選択します。

図20-20 プラグインの管理とインストールを開く

[2]Qgis2threejsプラグインをインストールする

[未インストール]タブをクリックします。画面上の検索ボックスに「qgis2threejs」と入力して検索します。[Qgis2threejs]が見つかったら、それをクリックし、[インストール]ボタンをクリックしてインストールします。

インストールが終わったら、[閉じる]をクリックして、ウィンドウを閉じてください。

図20-21 Qgis2threejsをインストールする

インストールが完了すると、ツールバーに、[Qgis2threejs Explorer]のアイコンが追加されます。

図20-22 [Qgis2threejs Explorer]のアイコンが表示された

20.6.2 _ 3D表示する

Qgis2threejsを使って3D表示するには、次のようにします。

【手順】3D表示する

[1]座標参照系を投影座標系に変換する

Qgis2threejsで表示できるのは、投影座標系のレイヤのみです。そこで、あらかじめプロジェクトの設定で、投影座標系に変更します。ここでは、「EPSG:3857」(Webメルカトル)に変更します。

【メモ】

「EPSG:3857」はGoogleマップなどで使われている座標系です。

座標参照系を変更するには、QGISのメニューから[プロジェクト]―[プロパティ]を選択して、プロジェクトのプロパティを開きます。

図20-23 プロジェクトのプロパティを開く

[座標参照系(CRS)]タブをクリックして開き、「EPSG:3857」を検索します。見つかったら、「WGS84 / Pseudo-Mercator」をクリックして選択し、[OK]をクリックします。

図20-24 座標参照系をEPSG:3857に変更する

[2]Qgis2Threejsを起動する

ツールバーの[Qgis2threejs Explorer]のアイコンをクリックして起動します(前掲の図20-22を参照)。

[3]表示オプションを設定する

Qgis2threejs Explorerのウィンドウが開いたら、次のように設定します。すると地物が3Dで表示されます。

・[DFM]―[Flat Plane]にチェック

・[Polygon]―[LOD1]にチェック

図20-25 3D表示したところ
コラム:LOD1とLOD2の形状の違い

図20-25において、[Polygon]の部分で[LOD2]にチェックを付ければ、LOD2のデータが表示されます。参考までに、LOD1とLOD2の場合の違いを、図20-26に示します。LOD1は平面を積み上げただけですが、LOD2では、屋根形状などが細かく表現されています。

図20-26 LOD1とLOD2との違い

20.7 _ GeoPackageとして保存する

PLATEAU QGIS Pluginで読み込んだデータは、一時スクラッチレイヤとして作成されています。一時スクラッチレイヤは、メモリレイヤです。ディスク上には保存されていないため、QGISを終了すると破棄されます。データを保存したいときは、GeoPackageファイルなどに変換して保存する必要があります。

GeoPackageは、オープンでプラットフォームに依存しないGISシステム用の標準的なデータフォーマットです。QGISのバージョン3以降では、このフォーマットが標準となりました。一般的なGISデータとしてはShapefile(シェープファイル)が有名ですが、「ファイルサイズが2GBに制限されている」「属性名は10バイトまで(日本語は5文字まで)」「単一ファイルではなく複数のファイルで構成されている」など、扱いやすいデータフォーマットではありません。GeoPackageにすれば、こうした制約が解消されます。ひとつのGeoPackageファイルに複数のレイヤを格納することもできますし、Esri社のArcGISでもGeoPackageのインポートがサポートされるなど、汎用性も高いフォーマットです。

GeoPackageとしてエクスポートするには、レイヤを右クリックして、[エクスポート]―[新規ファイルに地物を保存]を選択します。

形式として[GeoPackage]を選択してファイル名を入力すれば、エクスポートできます。エクスポートしたデータは、QGISにドラッグ&ドロップすれば開くことができます。

図20-27 レイヤをエクスポートする
図20-28 エクスポートする

【文】

久納敏矢(株式会社MIERUNE)、大澤文孝