はじめに
PLATEAUアカデミー ~3D都市モデル作成コース~ <道路・建築物編>東京会場に参加した。
本記事は講座で使用したQGISのプロセシングツールについての大まかなまとめである。
本講座のPLATEAUモデルの作成手順は大まかに
DMデータの抽出→QGISでのポリゴン、属性の加工→FMEでの品質確認、CityGML化
という流れであり、多くのQGISのプロセシングツールを使用した。
しかし、プロセシングツールをあまり使用したことがなかったため、ひとつひとつがどのような機能なのか把握できていない。
そのため、使用したプロセシングツールとその簡単な説明を加えることで今回の復習とした。
使用したQGISプロセシングツール
抽出
任意の範囲や値に該当する地物を抽出することができる
-
QGIS式による抽出
(機能) 特定の属性を持つ地物のみを抽出する
(講座での使用例) 道路DMデータから、道路縁コード(2101)を持つ地物のみを抽出

↑道路縁のデータ(赤色)のみを抽出できた -
場所による抽出
(機能) レイヤとレイヤの空間的関係が合致する地物を抽出する
(講座での使用例) 「交差する」で、重なり合った地物を選択した。具体的には、特定の範囲内の道路縁ポリゴンや建築物ポリゴンを抽出した。

↑水色のポリゴン(メッシュ範囲)と交差する建築物が抽出された
和集合
webで調べても理解ができなかったので、運営の方に質問させていただいた。
お答えしていただいた結果、今回の講座では、①分割したいレイヤとオーバーレイするレイヤを参照 と ②分割したいレイヤのみを参照 するの2パターンの使い方があり、それぞれで意味や使用方法が異なっていたことが分かった。
まず、どちらでも共通して言えることは、このアルゴリズムは地物の重なった部分と重なっていない部分を別の地物に分解するものである、ということである。
-
①分割したいレイヤとオーバーレイするレイヤを参照 の場合

(画像引用:https://docs.qgis.org/3.40/ja/docs/user_manual/processing_algs/qgis/vectoroverlay.html)
(機能) 対象レイヤ、オーバーレイレイヤを合体した上で、それぞれが重なった部分の地物を分割する
(講座での使用例) (P33)ポリゴンは線で囲まれた範囲内でないと生成できないため、囲まれていない道路縁データを外周線で囲み、道路縁データに外周線でオーバーレイした和集合をかけることで、線で囲まれたデータを生成した。 -
②分割したいレイヤのみを参照 の場合

(画像引用:https://docs.qgis.org/3.40/ja/docs/user_manual/processing_algs/qgis/vectoroverlay.html)
(機能) 地物が重なっている部分とそうでない部分を分割し、重なっている部分は重なった地物の数だけ同じ地物が作成される
(講座での使用例) (P176)建築物ポリゴンの重なりをくり抜き、建築物の中抜き部を表現したいので、処理を行い、中抜きのされた地物と重なり部を別々に分割した。
属性の編集
属性の追加、編集 標高の代入のような抽出も可能
-
ドレープ(ラスタ値をZ値に代入)
(機能) ラスタ(DEM)の持つ値をZ値として代入
(講座での使用例) DEMのZ値を、建築物モデルの底面として使用するために抽出した。 -
属性の空間結合 属性の空間結合(集計付き)
(機能) レイヤとレイヤの空間的関係に基づいて、属性を追加する。
(講座での使用例) 道路ポリゴンに、範囲のポリゴンが持つ3次メッシュ番号を追加した。
各ポイント(建物の頂点)におけるZ値のうち最小値を抽出し、建物ポリゴンにZ値として代入した。

↑各建築物ポリゴンの最小値(dtm_min)として入力された
-
属性をリファクタリング
(機能) フィールド名の付与、変更 固定値の入力
(講座での使用例) 略 -
ジオメトリ属性を追加
(機能) 地物の持つジオメトリ属性(座標、面積、長さなど)を新たな属性として追加する
(講座での使用例) 線分の長さを確認するため、長さを属性として追加した。
チェック
-
線をセグメントに分解
(機能) 連続線を頂点単位で分解し、始点と終点のみの線にする
(講座での使用例) エラーのもととなる短い線分がないかどうか確認するため使用した。 -
簡素化
(機能) 線やポリゴンの頂点数を減らす
(講座での使用例) エラーのもととなる0.01m未満の線の削除 -
有効性チェック
(機能) ジオメトリに矛盾が無いか確認する
(講座での使用例) 略
その他
- ベクタに出力
(機能) 点群データをベクタとして出力する
(講座での使用例) lasデータを読み込み、建築物の高さとして使用した。
「ベクタに出力」を使用する際、点群データのディレクトリに日本語が入っているとエラーが起きました
-
内部保証点
(機能) ポリゴンの表面に存在することが確実な位置の点を返す
(講座での使用例) (次項目参照) -
ポリゴンの内の点の数
(機能) ポリゴンと交差する位置にあるポイントの数を数える
(講座での使用例) 2個以上の内部保証点と交差するポリゴン(=中抜きで消去されるべきポリゴン)を抽出し、消去した。
おわりに
QGISの使用したことのない機能を使用し、このように大まかではあるが利用方法を把握できたことは、今後の業務にも役立つはずである。
ただ初歩的な理解しかできていないので、今後の使用でより理解を深めたい。
