内部可視性(Intervisibility) (3D Analyst)
サマリ
潜在的な障害物を使用して見通し線の可視性を判断します。潜在的な障害物は、ラスタ、TIN、マルチパッチ、および立ち上げポリゴンまたはラインを組み合わせて指定できます。
使用法
-
観測点と目標点の定義には、入力ラインの端点のみが使用されます。見通し線は、見通しを決定する対象の観測点と目標点を表す 2 つの頂点のみで構成される単純な直線であることが理想的です。
-
観測点がポイント フィーチャで設定され、目標点が別のフィーチャクラスにある場合は、[見通し線の構築(Construct Sight Lines)] を使用して、このツールで使用する入力を生成します。
このツールでは、新しい出力を生成しないかわりに、入力見通し線フィーチャクラスに新しい属性が追加されます。入力データが変更されるのを避けるには、入力データをコピーして、そのコピーを入力として使用します。
入力見通し線のジオメトリ タイプを PolylineZ(Z 値を持つ 3D ライン)にする必要があります。それにより、有意な分析を実行できます。
入力障害物は、サーフェスおよびフィーチャを組み合わせて指定できます。サーフェスは、ラスタまたは TIN のいずれかである必要があります。各障害物フィーチャ レイヤのジオメトリ タイプは、マルチパッチ、ライン、またはポリゴンである必要があります。各ライン ポリゴン フィーチャ レイヤには、基準高度および立ち上げ情報が必要です。これらがない場合、そのコンテンツは無視されます。
各入力見通し線が 3 つ以上の頂点から構成されていても、最初と最後の頂点のみが使用されます。そのため、各見通し線は常に直線になります。
各見通し線の最初と最後の頂点の Z 値 のみが、Z 値のソースとして使用されます。
分析結果は、整数フィールドの入力見通し線のフィーチャ属性テーブルに保存されます。デフォルトでは、このフィールドの名前は、VISIBLE ですが、[表示可能なフィールド名] パラメータを使用して名前を変更できます。
結果は、1 または 0 のいずれかの値で指定できます。1 の値は、見通し線が、[障害物] パラメータで指定された潜在的な障害物のいずれによっても妨げられないことを示し、開始点と終点がお互いに可視であることを意味します。0 の値は、見通し線が 1 つ以上のサーフェスまたはフィーチャによって妨げられることを示します。
結果フィールド(たとえば、VISIBLE)が [見通し線] フィーチャクラスにすでに存在する場合、そのコンテンツは上書きされます。ツールをダイアログ ボックスから実行した場合、ツールによってフィールドがすでに存在することが検知されると、警告メッセージが表示されます。ツールの実行方法(たとえば、ダイアログまたは Python ウィンドウ)にかかわらず、結果は既存のフィールドに書き込まれ、データが上書きされたことを示す結果メッセージに警告メッセージが追加されます。
すべての入力が同じ空間参照を使用している場合、ツールの実行速度は速くなります。これは、障害物の有無を確認するためにデータを投影する(複数回の場合あり)必要がないからです。すべての障害物が同じ空間参照を使用している場合に特に効果があります。見通し線の空間参照は、簡単に投影できるため、それほど重要ではありません。
- [見通し(Ling of Sight)] ツールと異なり、このツールは、見通し線が最初に妨げられる場所ではなく、見通し線が妨げられるかどうかを判断します。特定の見通し線を妨害する障害物に関するレコードは記録されません。
各見通し線の方向(方位角および垂直角)が必要な場合、[見通し線の構築(Construct Sight Lines)] ツールを使用して見通し線を生成してからこのツールを実行すると、その情報を見通し線に書き込むことができる場合があります。
このツールを使用すると、入力データが変更されます。詳しい説明および不適切なデータの変更を防ぐための方法については、「出力を伴わないツール」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
sight_lines |
3D 見通し線。 | Feature Layer |
obstructions [obstructions,...] |
見通し線を妨げる可能性のある 1 つ以上のフィーチャクラスおよびサーフェス。 | Feature Layer, Raster Layer, TIN Layer |
visible_field (オプション) |
可視性の結果を格納するフィールドの名前です。生成結果が 0 の場合、見通し線の開始点および終点はお互いに不可視です。生成結果が 1 の場合、見通し線の開始点および終点はお互いに可視です。デフォルトのフィールド名は、VISIBLE です。 | String |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.CheckOutExtension("3D")
arcpy.env.workspace = "C:/data"
arcpy.Intervisibility_3d("sightlines.shp", "3dbuildings.shp;topo_tin", "Visibility")
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
次のスクリプトは、マルチパッチによって表されるサーフェスおよび建物の障害物に対する見通し線の内部可視性を計算する方法を示しています。
# Import system modules
import arcpy
try:
# Checking out 3D Analyst Extension
arcpy.CheckOutExtension("3D")
# Set environments
arcpy.env.workspace = 'C:/data'
# Setting up input and output variables
sightlines = "My_Sightlines.shp"
surface = "DTM_Tin"
buildings = "My_3D_Buildings.shp"
viz_field_name = "Visibility"
print("Calculating Intervisibility...")
arcpy.Intervisibility_ddd(
sightlines, surface + ';' + buildings, viz_field_name)
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
finally:
arcpy.CheckInExtension("3D")