見通し(Line Of Sight)(3D Analyst)の仕組み
[見通し(Line Of Sight)] ツールは、3D 空間で位置を指定した 2 つのポイントについて、サーフェスとの関係に基づいて相互可視性を計算します。また、それらのポイントをサーフェス上に描いたとき、2 つのポイントを結ぶライン上に何が見えるかも解析します。
このツールでは、2 つの入力(サーフェスとライン フィーチャクラス)が必要です。入力として使用するサーフェスは、ラスタ、TIN、テレイン データセットのいずれかになります。ライン フィーチャクラスには 1 つ以上のレコードが含まれ、各レコードはそれぞれの見通し計算を表します。各ポリラインの最初と最後の頂点が、観測点および目標点として使用されます。その他の頂点は無視されます。入力が 3D ポリライン フィーチャクラスの場合、3D 空間の観測位置と目標位置が直接使用されます。2D ラインの場合は、いずれも観測位置と目標位置の高さがサーフェスから内挿されます。その際、デフォルトのオフセット 1 が観測位置に適用され、サーフェス上に押し上げられます。このツールでは、OffsetA フィールドと OffsetB フィールドがフィーチャクラスに存在するかどうかが確認されます。存在する場合は、OffsetA フィールドのオフセット値が観測位置に適用され、OffsetB フィールドのオフセット値が目標位置に適用されます。
マルチパッチ フィーチャクラスも含まれている場合は、それらのフィーチャについて各見通し線がチェックされます。見通し線がサーフェスの一部に遮られ、フィーチャまで到達しない場合、そこがサーフェス上の障害ポイントとなります。見通し線がサーフェスに遮られることなくフィーチャに到達する場合、実際の交点が障害物ポイントとなり、そこから先の見通し線は不可視と見なされます。
3D ポリライン フィーチャクラスが生成されます。入力ごとに 1 本または 2 本のラインが作成されます。出力が 1 本の場合、そのライン全体が可視、またはそのライン全体が不可視になります。出力が 2 本の場合は、可視の部分と不可視の部分が存在することを示しています。出力には VisCode フィールドがあり、VisCode 値が 1 の場合は可視、VisCode 値が 2 の場合は不可視を意味しています。入力のオブジェクト ID とフィーチャ ID を含む SourceOID フィールドが追加されるので、どの出力レコードがどの入力レコードに対応しているかを確認できます。観測点から目標点が見えるかどうかを示す TarIsVis フィールドも出力に追加されます。値 0 は目標点が不可視であることを示し、値 1 は可視であることを示します。
マルチパッチ フィーチャクラスが含まれていない場合、3D ライン出力はサーフェス上にドレープされます。マルチパッチ フィーチャクラスが含まれている場合、出力ラインは空間と障害ポイントを通過する観測点から目標点までの直線になります。
出力フィーチャクラスには OBSTR_MPID という名前のフィールドも含まれます。このフィールドは、見通しを妨げるマルチパッチの OID を表します。見通しを妨げるマルチパッチがない場合、フィールドの値は -1 または -9999 の値になります。目標点がサーフェスによって妨げられる場合は -1 になり、目標点が可視である場合は -9999 になります。
必要であれば、出力時に障害ポイント フィーチャクラスも生成できます。見通し線の障害ポイントは、3D ライン上で、観測点と目標点がサーフェスと交差する最初の位置を表します。入力レコードに障害ポイントが生成されるかどうかは、観測点と目標点を結ぶラインが交差するかどうかによって異なります。入力のオブジェクト ID とフィーチャ ID を含む SourceOID フィールドが追加されるので、どの出力レコードがどの入力レコードに対応しているかを確認できます。
曲率と大気差の補正
見通し線を計算する際に地球の曲率を考慮するには、曲率オプションを使用します。ただし、曲率オプションを使用するには、入力サーフェスで空間参照が定義されていること、入力サーフェスが(地理座標系ではなく)投影座標系で表されていること、XY に加えて Z 座標単位が定義されていることが条件となります。
大気差オプションは、大気中での光の屈折を考慮します。大気によって光が屈折するため、実際の角度よりも高く見えます。デフォルトの 0.13 は一般的な平均値です。状況に応じて、より正確な値を指定するには、湿度などの要因が屈折率にどのように影響するかを理解する必要があります。
サーフェスの投影情報が得られる場合に補正が行われます。さらに、地表の UNITS(単位)とサーフェスの ZUNITS(Z 単位)は、フィート、メートル、単位/メートルのいずれかになります。補正で使用する数式は次のとおりです。
Dist2 Dist2 Zactual = Zsurface - --------- + Rrefr * --------- DiamEarth DiamEarth
以下に、式の各項目を示します。
- Dist: 観測フィーチャから目標位置までの平面距離。- Diam: 地球の直径。- Rrefr: 光の屈折係数。
地球の直径(Diamearth)のデフォルト値は 12,740,000 メートル、大気差係数(Rrefr)のデフォルト値は 0.13 です。大気の状態や可視性に応じて、使用する Rrefr 係数を変えることができます。