航空機 LIDAR からの建物シェルの抽出

このドキュメントでは、分類済みの航空機 LIDAR から建物シェル (外部) を抽出するためのワークフローを示します。 このアプローチでは、屋根ポイントを複数の屋根の部分にクラスター化し、各部分の TIN (不規則三角形網) を作成して各パーツの境界を地面に押し出し、出力をマルチパッチ フィーチャクラスに書き込みます。 これにより、建物外部のマルチパッチベースのリプレゼンテーションは、視覚化と分析に使用できます。

建物シェル

都市エリアの建物シェルのサンプル セットが抽出されています。

このアプローチのメリットは、屋根の位置が LIDAR ポイントから直接作成されるため、正確なことです。 また、一般的な屋根の形状に限定されないため、珍しいユニークな屋根の形状をモデル化することもできます。 デメリットは、拡大するとノイズが多くなる、建物の内部の角が丸くなる、頂点数が多く出力される可能性がある、複数の詳細レベルが失われる、などが挙げられます。

建物シェル抽出には、他のアプローチもあります。 たとえば、屋根を複数の部分に分割し、それぞれの屋根のタイプと軒高を予測し、その部分のジオメトリを手順を追って生成して、出力をマルチパッチ フィーチャクラスに書き込む方法があります。 このアプローチのメリットは、きれいでシンプルなジオメトリだという点です。 デメリットは主に、位置精度の問題です。 モデル化された屋根が、実際の屋根とぴったり一致しない可能性がありますが、問題のある建物を特定して修正する方法はあります。 詳細については、「3D Buildings ソリューション」をご参照ください。

標準の屋根形状

標準の屋根形状と手順を負ったアプローチを使用した例を示します。

両方とも、屋根/軒辺のエッジから地面に向かって下側に押し出すアプローチのため、建物の側面はシンプルで垂直になります。 バルコニーや張出しはモデルにキャプチャされません。

要件:

  • ArcGIS Pro 3.3 以降
  • 航空機 LIDAR で分類された建物の屋根
  • 間隔が 4 ppm / 0.5 m 以上のポイント密度
  • 地表の高さを取得するためのデジタル標高モデル (DEM) ラスター

コンセプト

このアプローチでは、屋根のポイントを使用して建物シェルのジオメトリを作成します。 アンテナや管、開口部、ファン、その他の HAVC 関連設備などの屋根上部の煩雑さが不要になる可能性があります。 建物の側面は、バルコニーや高い建物の側面から突き出した部分などにより不適切な結果が生じる可能性があります。 そのため、建物と分類されたポイントには屋根を含め、望ましくない煩雑なものや建物側面のポイントを除外します。

屋根のポイントは、3D 距離に基づいてクラスター化されます。 これにより、高さが明確に異なる屋上部分が分離されます。 その間の垂直な壁は欠落します。

上から見た図
屋根ポイントの側面図

距離ベースのクラスタリングは、都市部の大規模な構造で非常に便利です。これは、明確に高さの異なる部分が多くあるためです。 一戸建て住宅でよくあるように、共通の接合部で互いに接する部分を持つ屋根は、異なるクラスターにはなりません。

屋根ポイント

異なる断面が互いに交わる屋根ポイントの断面図を示します。 結果、これらは結合されて 1 つの屋根クラスターになります。

各クラスターの 2D 境界は屋根の一部として使用され、地表に向かって押し出されて、建物シェルの壁を形成します。 クラスターの境界ポリゴンは凹包で、アルファ形状と呼ばれる概念を用いて定義されます。 境界がどの程度クラスター周囲にフィットしているかを定義する主なパラメーターが、アルファ半径です。

ポイントを上から見た図

左から右に、建物の一部に設定されたポイントの上から見た図。アルファ半径 0.5 m で作成された屋根ポリゴンの出力の該当する部分と、アルファ半径 1.0 m を使用した結果です。 アルファ半径を小さくすると特定の角がよりシャープになり、大きくすると建物の側面がよりきれいになります。

建物の複数のクラスター境界がきれいに接合しないため、各部分の間に隙間ができることが、このアプローチの弱点だと考えられます。 これは、近距離で表示しない限り大きな問題にはなりません。

屋根部分ポリゴンを上から見た図

建物の屋根部分のポリゴンを上から見た図が左側に、対応する建物シェルが透視図で右側に表示されます。

シェルをモデル化するこのアプローチには限界がありますが、多くの場合、作業するのに十分な結果が得られ、屋根のタイプに基づいてモデル化する手法よりもさらに正確な近似を示します。

建物シェル

ワークフロー

ワークフローは、[点群からオブジェクトを抽出 (Extract Objects From Point Cloud)] ジオプロセシング ツールを使用して開始されます。 このツールは、同様に分類されたポイントのクラスターの周囲の境界ジオメトリを抽出します。 このツールを使用して、それぞれの屋根部分の 2D フットプリントと、各部についてそれを形成するポイントの z 範囲を取得します。 次に、ツールはこれらの屋根ポリゴンを [LAS 建物マルチパッチ (LAS Building Multipatch)] ジオプロセシング ツールへの入力として使用します。 屋根部分に関連付けられた高さの範囲によってフィルターされた建物分類ポイントを使用して各部分の TIN を構築し、TIN 境界を地表まで押し出します。

注意:

時間を節約するため、代表的なサブセットで実験して、より大きなコレクションに適用する前に、どのようなパラメーター値のセットがデータに適しているかを把握します。

点群からオブジェクトを抽出ジオプロセシング ツールのパラメーター

  1. [入力点群] - 入力する LAS データセットです。
  2. [抽出するクラス コード] - 屋根ポイントを表すクラス コードを示します。 通常、クラス 6 です。 出力する [グループ ID] のデフォルトを同じにすることができます。
  3. [出力オブジェクト フィーチャ] - 出力フィーチャクラスです。
  4. [出力ジオメトリ タイプ] - 2D 凹包です。
  5. [クラスタリング距離] - クラスター間を分離する Z 方向の距離です。 合理的な値は 0.5~3.0 メートルの範囲です。 始めは 1.5 メートルにしてみてください。 これは、屋根部分に属するポイントは互いにその距離内に収まるようにしてグループとしてクラスター化し、別の屋根部分はより大きな距離にして別のクラスターにすることを意図しています。
  6. [鉛直クラスタリングの縮尺係数] - 開始時の値は 1.0 です。 大きい値を使用すると、ポイント間の高さの差の影響が強調され、小さい値を使用すると影響が弱まります。 値を 0.0 にすると、高さは適用されず、クラスタリングは 2D で処理されます。 屋根部分の出力ではなく、建物のフットプリントを取得するには、0.0 を使用します。
  7. [各オブジェクトに対して一意の半径を計算] - デフォルトではこのパラメーターはオフになっていますが、有用なパラメーターです。 オンにすると、各オブジェクトのより詳細な境界を取得できます。 この手法は有用性を備えていますが、建物の側壁によりノイズが発生する可能性もあります。
  8. [アルファ半径] - このパラメーターは、出力ポリゴンの境界をポイント クラスターの周囲にどれだけ適合させるかを制御します。前のパラメーターがオフの場合に有効になります。 値を小さくすると壁沿いや建物の内部の角周辺がより詳細になり、値を大きくすると、より単純化されて壁が滑らかになります。 始めは 2 メートルにしてみてください。
  9. [最小ポイント数] - より大きなクラスターが必要な場合 (値を増やす)、またはより小さなクラスターを許可する場合 (値を減らす) を除き、このパラメーターはデフォルトの 10 のままにしておきます。

結果を確認します。 2D マップでポリゴンを表示できますが、他のポリゴンでカバーされるポリゴンが表示されない可能性があります。 シンボルの塗りつぶしを透明に設定すると、アウトラインのみを残して、それ以外の隠れているポリゴンが表示されます。 別の、より良いと思われる表示を得るため、ローカル 3D シーンを使用してポリゴンを 3D で表示できます (出力フィーチャクラスに追加された MIN_Z または MAX_Z 属性を使用します)。

小さな 2D エリアのポリゴンは主にノイズであり、レンダリングと分析に不要な計算コストが追加されるため、削除を検討してください。 [属性検索 (Select Layer By Attribute)] ツールとフィーチャの削除を順番に組み合わせて使用することで、これを行えます。 始めに、カットオフ サイズとして 6.0 平方メートルで試してみてください (これは、[LAS の建物分類 (Classify LAS Building)] ツールで使用するデフォルトの最小面積です)。

また、ポリゴンの穴を削除することも検討してください。 高い屋根部分が低い屋根部分の真ん中にあるために、多数の穴が開いています。 下側の部分の穴を閉じることで、上側の部分が下側の部分を通過して押し出されるときに外観がよりきれいになります。 ただし、残すべき穴が削除される危険があります (通過して押し出される他の部分がない穴など) ので注意してください。 [ポリゴン パートの削除 (Eliminate Polygon Part)][含まれる部分のみを削除] オプションと一緒に使用できます。 始めは 25 平方メートルの面積にすると合理的です。

LAS 建物マルチパッチ ジオプロセシング ツールのパラメーター

  1. [入力フィーチャ] - ワークフローは、[点群からオブジェクトを抽出 (Extract Objects From Point Cloud)] ジオプロセシング ツールを使用して出力された屋根部分のポリゴンを使用します。
  2. [LAS 屋根ポイントの選択] - 屋根に使用するポイントを指定します。 [建物に分類されたポイント] を選択すると、ツールではクラス 6 のポイントが使用されます。 異なるクラス コードを屋根ポイントに対して使用しているデータの場合は、適切なコードを使用しているレイヤー フィルターを割り当てて、[レイヤーでフィルターされたポイント] オプションを選択します。
  3. [サンプリング解像度] - 屋根ポイントをビン化し、各ビンの最も高いポイントを使用します。 これらのポイントから TIN を作成します。この TIN の三角形分割法は 2D です。 真に垂直なフェイスや張出しはサポートしません。 屋根の分類ポイントに、重なり合っている別の屋根部分が含まれる可能性があります。
  4. [地表の高さ] - 屋根部分の境界が地表に向かって下に押し出されます。 このパラメーターでは、DEM または属性をポリゴンから選択して地表の高度を取得できます。 ポリゴンでその属性を取得する方法の 1 つが、[サーフェス情報の追加] ツールを使用することです。 DEM ではなく高さ属性を使用するメリットは、計算コストが多少かかるほかは、コストをかけずに情報を繰り返し再利用できることです。 DEM を入力として使用すると、ツールを再実行するたびに DEM から地表の高さを把握するための計算が繰り返されます。
  5. [出力マルチパッチ フィーチャクラス] - 建物シェルの出力です。
  6. [単純化許容値] - 屋根の TIN をマルチパッチに変換する前に、単純化してノード数を減らすことができます これは、下流のパフォーマンスのために行うことを推奨します。 許容値は、単純化された TIN とオリジナルの間で許容される高さの差です。 LIDAR の垂直精度に等しい値 (10 cm など) を使用することを検討してください。
  7. [最小高さフィールド] - 入力ポリゴン フィーチャクラスの属性を参照し、フィルターとして使用されます。 これ以上の高さ (およびポリゴン内) のポイントのみを使用します。 これにより、ポリゴンを生成したクラスターの上または下にある可能性のあるクラスターからのデータが除外されます。 [抽出] ツールから出力された MIN_Z フィールドを指定します。
  8. [最大高さフィールド] - 入力ポリゴン フィーチャクラスの属性を参照し、フィルターとして使用されます。 これ以下の高さ (およびポリゴン内) のポイントのみを使用します。 これにより、ポリゴンを生成したクラスターの上または下にある可能性のあるクラスターからのデータが除外されます。 [抽出] ツールから出力された MIN_Z フィールドを指定します。

データに、屋根の煩雑さや建物の側面のポイントを含む方法で分類された建物があり、これが問題を引き起こしている場合は、テスト エリアのコピーを作成し、試しに、[LAS クラス コードの変更 (Change LAS Class Codes)] ジオプロセシング ツールを使用して建物の分類をやり直し、建物のクラスを 1 にリセットしてから、[LAS の建物分類 (Classify LAS Building)] ジオプロセシング ツールを使用します。

マルチパッチで [屋上より上のポイントの分類] を試します。 [LAS の建物分類 (Classify LAS Building)] ジオプロセシング ツールには、屋根上のポイントをクラス 6 または別のクラスに配置するオプションがあります。 最も柔軟な方法は、これらをカスタム クラスに配置し、必要に応じて [点群からオブジェクトを抽出] (Extract Objects From Point Cloud) ジオプロセシング ツールでそれらを含めることです。

このツールで、複数のクラスを入力して同じ出力グループ ID を割り当てることによって、これらを 1 つのものとして処理できます。 同じグループ ID を持つポイントは、クラスタリングで同じクラスとして処理されます。 [点群からオブジェクトを抽出 (Extract Objects From Point Cloud)] ジオプロセシング ツールで上記の屋根ポイントを含める場合は、[LAS 建物マルチパッチ (LAS Building Multipatch)] ジオプロセシング ツールでそれらを含めるのが合理的です。 これを行うには、LAS データセット レイヤーで建物と屋根の上のポイントのみをオンにし、ツールを使用してレイヤーでフィルターされたポイントを使用することを選択します。 また、上の屋根を独自クラスとして処理し、抽出することもできます。 これらを屋根の他の部分と分離しておくことで、垂直面ができるため、視覚的にさらにはっきりと区別されます。 また、他の建物部分とは独立してこれらのオンとオフを切り替えることができます。

3D レイヤー プロパティと押し出しを使用して、抽出した屋根部分のポリゴンを表示してみてください。 LIDAR ポイントがない場合、これらの上部は平らになりますが、頂点の数が比較的少ないため、すべてを組み合わせて表示すると、遠くから見ても適切に見え、レンダリング効率も高くなります。 [サーフェス情報の追加 (Add Surface Information)] を使用して、抽出された屋根部分のポリゴンと DEM の間に地面の高さをポリゴンの属性として追加することの副次的なメリットは、地面に対する建物の高さを計算し (屋根部分のポリゴンには、ポイント クラスターから取得した MAX_Z がすでにあります)、それを使用して建物の部分をシンボル化できることです。

LIDAR データ ソースの使用許諾:

  • グラフィックス 1、3: French National Institute of Geographic and Forestry Information
  • グラフィックス 4、7: The Netherlands Rijkswaterstaat, Ministry of Infrastructure and Water Management
  • グラフィック 5: USGS Lidar Central Eastern Massachusetts

関連トピック


このトピックの内容
  1. コンセプト
  2. ワークフロー