スカイライン バリア (Skyline Barrier) の仕組み

3D Analyst のライセンスで利用可能。

[スカイライン バリア (Skyline Barrier)] では、スカイラインから高さコントロール サーフェスを生成します。これらは、観測点とそれらのポイントに関連付けられたスカイラインの間で定義されます。バリアは都市計画のシナリオで役立ちます。提案された建物がスカイラインに影響するかどうか特定するのに使用できるからです。バリアを使用して、水平線に対するフィーチャの近傍をテストすることもできます。

このツールではシャドウ ボリュームも生成できます。そのシャドウ ボリュームを使用して、スカイラインを形成しているフィーチャがどのフィーチャを隠すか、どのフィーチャに影を落とすか、などを判別できます。

シャドウ ボリュームのもう 1 つの生成方法は、[スカイライン (Skyline)] ツールによって生成されたシルエットを立ち上げることです。このアプローチについては、下記の説明をご参照ください。

バリア コントロール サーフェスは、マルチパッチ フィーチャとしてキャプチャされます。これらは従来のラスターまたは TIN ベースのサーフェスとは違います。それぞれ、1 個の観測点と、その観測点に基づくスカイラインの各頂点とを直線で結んだ、扇子のような形状をしています。

バリアを生成するワークフローでは、最初に [スカイライン (Skyline)] ツールを実行し、そのツールから出力を取得し、それを [スカイライン バリア (Skyline Barrier)] ツールに対する入力ライン フィーチャ ソースとして使用します。ポイントは、[スカイライン (Skyline)] ツールによってスカイライン フィーチャクラスに書き込まれた FID を表す属性値を使用することで、適切なラインと一致させます。

最小半径および最大半径オプションを使用して、出力バリアのサイズを制御します。デフォルトでは、各バリアは対応するスカイラインまで延びて止まりますが、オプションで最小半径と最大半径を設定できます。最小半径を設定した場合、バリアはスカイラインを越えてでも、最小半径に達するまで延びます。最大半径を設定した場合、バリアは最大半径に達したところで止まります。

スカイライン バリアを別のツール (たとえば、[データ管理] にある [レイヤーとテーブル ビュー][空間検索 (Select Layer By Location)] ツール) と組み合わせて使用することで、フィーチャ (建物を表すマルチパッチなど) がはみ出てバリアを妨害していないかどうか判別することができます。バリアを使用して、フィーチャを表示可能にするかどうかを決定することもできます (スカイラインを超えてその下にある場合、観測ポイントから非表示になります)。

スカイライン バリアは常にマルチパッチとして作成されます。クローズド マルチパッチにする場合、側面と底面が追加されます。側面は、スカイライン バリアの周囲からユーザーの設定したベース標高に向けて下向き (または上向き) の三角形で構成されます。底面は水平のリングです。ベース標高が、スカイライン バリアの最も低い頂点と観測点のどちらよりも下にあるか、スカイライン バリアの最も高い頂点と観測点のどちらよりも上にある場合、結果として得られるクローズド マルチパッチは [クローズド 3D (Is Closed 3D)] ツールによって閉じられたものとして扱われます。このクローズド マルチパッチは、[インターセクト 3D (Intersect 3D)][ユニオン 3D (Union 3D)] などの一部の 3D ソリッド操作に追加することができます。

マルチパッチを閉じる場合、ベース標高は、観測点よりも下でスカイライン上の最も低い頂点よりも下に設定するか、観測点よりも上でスカイライン上の最も高い頂点よりも上に設定する必要があります(最小半径が設定され、スカイライン バリアがスカイライン ポリラインの垂直方向の範囲外に広がる場合は、最も高い頂点より上の方に設定します)。このベース標高がスカイライン バリアの上に設定された場合、これは本質的に底面ではなくシーリング (天井面) になります。

スカイライン バリアの大部分の三角形に共通の頂点(つまり観測点)以外については、三角形の頂点は入力ラインの頂点から派生します。マルチパッチを閉じる場合、スカイラインの頂点はある意味で重複することになり、Z 値はユーザーの設定したベース標高に設定されます。

シャドウ ボリュームの解析

[スカイライン バリア (Skyline Barrier)] ツールを使用して、シャドウ ボリュームを生成し、その他の関連タスクを実行することができます。

[平面に投影 (Project to Plane)] をオンにした場合、2 つの値の [最小半径][最大半径] の意味は異なります。[最小半径] は、観測点からバリアの始点となるスカイラインまでの距離 (ゼロ以上) として使用され、[最大半径] は、観測点からバリアの終点となるスカイラインまでの距離として使用されます。[最大半径][最小半径] より大きくなければなりません。シャドウ ボリュームについては、通常、[最小半径] は、バリアの端 (フロント エンド) に近い部分がスカイライン付近にくるように設定され、[最大半径] は通常、観測点が (太陽などのように) スカイラインより上にある場合に、バリアの端がサーフェスの下にくるように、十分に距離を空けて設定されます。

[最小半径][最大半径] の両方の値と、[ベース標高] が 0 (ゼロ)、つまりデフォルト値で、[平面に投影] チェックボックスがオンになっている場合、これら 3 つのパラメーターの値は自動的に計算されます。

[平面に投影] チェックボックスをオンにすると、クローズド マルチパッチの正面と背面が垂直面になり、ここでスカイラインが垂直面に投影されます。

クローズド スカイライン バリアはシャドウ ボリュームとして提供できます。その他のフィーチャ (建物の窓を表すポイントなど) は、それらがクローズド マルチパッチの内側なのか外側なのかをテストできます。これは、影の内側なのか外側なのかと同じ意味になります。

スカイライン バリアは通常は、多くの細長い三角形で構成されています。観測点が非常に遠くにある場合、これらの三角形は極端に細いスリバーになります(特に観測点に近い方)。これでバリアを閉じると、結果のマルチパッチが完全に閉じていない状態になる可能性があります。これを克服するためには、[平面に投影] オプション (最後のパラメーター) を使用して、クローズド マルチパッチが非常に長くなるように距離を設定します。

さらに、[平面に投影] をオンにせずに、[最小半径][最大半径] の値を両方とも 0 (ゼロ) に設定した場合、バリアは正確にスカイラインまで延びます。通常これは、観測点から、または観測点に向かって延びる多数のセクションを含む複雑のパスになります。このため、三角形の複雑なコレクションとなり、閉じようとしても、マルチパッチが正しく閉じる可能性は低くなります。[平面に投影] をオンにすると、バリアの上部に沿った三角形はトライアングル ストリップを形成します ([最小半径] をゼロに設定すると、トライアングル ファンが形成されます)。バリアを閉じると、垂直の正面と垂直の背面はそれぞれリングになります。

建物ごとに別々のバリア (またはシャドウ ボリューム) を作成するには、通常は、スカイラインを作成する前に、[スカイライン (Skyline)] ツールの [スカイラインをセグメント化] チェックボックスをオンにすることをお勧めします。スカイライン内の各ポリラインには、FEATURE_ID パラメーターがあります。0 (ゼロ) 以上の値は、ポリラインがその FID のフィーチャに沿って延びていることを示しています。値が -1 の場合は、ポリラインがサーフェス (テレインなど) に沿って延びていることを示しています。値 -2 は、そのセグメントが、観測者の視線方向にぴったりと沿っている、つまり観測者にとっては 1 個の点にしか見えないことを意味します。通常、フィーチャに基づいてバリア (特にシャドウ ボリューム) を作成する場合には、0 より小さい属性のポリラインは無視します。

観測点はポイントと見なされます。つまり、そこから発せられる光線は分岐します。観測点が非常に遠くにある場合、これらの光線は平行に近くなります。

シルエットとシャドウ ボリュームの解析

[スカイライン (Skyline)] ツールを使用して、フィーチャのシルエットを生成できます。さらに [スカイライン バリア (Skyline Barrier)] ツールでこれらのシルエットを使用して、シャドウ ボリュームを生成することができます。シルエットはシャドウ ボリュームを作成するためのもう 1 つのアプローチで、上記のように、スカイラインも使用できます。

[入力フィーチャ](in_features) パラメーターに対してマルチパッチ フィーチャクラスを指定した場合は、[スカイライン バリア (Skyline Barrier)] ツールが意味を持ってきます。マルチパッチを指定した場合、このツールはラインを指定した場合とは異なる振舞いになります。次の説明は、マルチパッチを指定したことを前提としています。

[最小半径](min_radius_value_or_field) パラメーターは、入力マルチパッチの中心点からシャドウ ボリュームに必要な始点までの水平距離です。正の方向は観測点から離れています。十分に大きな負の値を入力すると、シャドウ ボリュームの始点が、元のフィーチャ (建物) の内部または前になります。

[最大半径](max_radius_value_or_field) パラメーターは、入力マルチパッチの中心点からシャドウ ボリュームに必要な終点までの水平距離です。正の方向は観測点から離れています。[最大半径][最小半径] より大きくなければなりません。

[クローズド](closed) パラメーター値は無視されます。

[ベース標高](base_elevation) パラメーター値は無視されます。

[平面に投影](project_to_plane) パラメーター値は無視されます。

3 つの数値パラメーター ([最小半径][最大半径][ベース標高]) すべてをデフォルト値の 0 (ゼロ) のままにすると、シャドウ ボリュームの始点と終点が自動的に決定されます。この場合、影はシルエットによって表されるフィーチャのすぐ後から始まり、通常は、終点が地面の下になるように、かなり離れた位置で終了します(観測点がシルエットの上にあるという前提です)。

シャドウ ボリュームはクローズド マルチパッチになります。

出力マルチパッチ フィーチャクラスには、次のフィールドが含まれます。

  • OID - マルチパッチの FID。
  • Shape - マルチパッチの形状。
  • OBSV_PT_ID - このスカイライン バリアのマルチパッチを作成するために使用された、スカイラインの作成に使用された観測点の FID。
  • ORIGFTR_ID - このシャドウ ボリュームを作成するために使用されたスカイライン セグメントまたはシルエットによって表される元のフィーチャ (建物など) の FID。
  • SILHOUE_ID - シャドウ ボリュームの作成に使用されたマルチパッチ フィーチャ (シルエット) の FID (シルエットの場合のみ)。

関連トピック