見通し線の構築(Construct Sight Lines) (3D Analyst)
サマリ
1 つまたは複数の観測点から見通し線を表すライン フィーチャを、ターゲット フィーチャクラス内のフィーチャに作成します。
使用法
- 
ターゲット フィーチャがラインまたはポリゴンの場合、境界は均一にサンプリングされます。 
- 
入力フィーチャクラスとしてポイント フィーチャクラスを使用する必要があります。マルチポイントは無効です。 
- 
高さのソースが観測点フィーチャとターゲット フィーチャの両方に指定されている場合、3D 出力が生成されます。 
- 結合フィールドを使用して、特定の観測点の 1 つ以上の目標点を指定します。結合フィールドを使用しない場合、すべてのポイントがすべての目標点に接続されます。 
- 観測点フィーチャとターゲット フィーチャの高さのソースはデフォルトでは、このリストで最初に見つかったフィールド名になります。 - Shape.Z(Z が有効化されているフィーチャにのみ使用可能)
- Spot
- Z
- Z_Value
- Height
- Elev
- Elevation
- Contour
 - 適した高さフィールドが存在しない場合、デフォルトでキーワード「<なし>」が使用されて Z 値を持たないフィーチャが表示されます。 
- デフォルトのフィールド選択では、必要な高さフィールドの優先度が低い場合、必要なフィールドを明示的に指定する必要があります。同時に、高さフィールドは必要ないがフィーチャクラスにデフォルトの選択リストのフィールドの 1 つが含まれる場合は、キーワード「<なし>」を指定する必要があります。 
- [サンプリング距離] の単位は、出力フィーチャクラスの X、Y 単位で指定します。 
- 次のフィールドが、見通し線を含む出力フィーチャクラスに追加されます。 - OID_OBSERV - 観測点の OID
- OID_TARGET - 目標点の OID
- DIST_ALONG - ターゲット フィーチャがラインまたはポリゴンの場合、ターゲット フィーチャに沿った距離
 
構文
| パラメータ | 説明 | データ タイプ | 
| in_observer_points | 観測点を表す単一のポイント フィーチャマルチポイント フィーチャはサポートされていません。 | Feature Layer | 
| in_target_features | ターゲット フィーチャ(ポイント、マルチポイント、ライン、ポリゴン) | Feature Layer | 
| out_line_feature_class | 見通し線を含む出力フィーチャクラス | Feature Class | 
| observer_height_field (オプション) | 属性テーブルから取得された観測点の高さの値のソース [観測点の標高フィールド] のデフォルト値は、以下のリストのオプションの中から優先度順に設定されます。複数のフィールドが存在し、デフォルトのフィールド選択では必要な高さフィールドの優先度が低い場合、必要なフィールドを明示的に指定する必要があります。適した高さフィールドが存在しない場合、キーワード「<なし>」が使用されます。同時に、高さフィールドは必要ないがフィーチャクラスに以下のリストのフィールドの 1 つが含まれる場合、キーワード「<なし>」を指定する必要があります。 
 | String | 
| target_height_field (オプション) | 目標点の高さフィールドです。 [目標点の標高フィールド] のデフォルト値は、以下のリストのオプションの中から優先度順に設定されます。複数のフィールドが存在し、デフォルトのフィールド選択では必要な高さフィールドの優先度が低い場合、必要なフィールドを明示的に指定する必要があります。適した高さフィールドが存在しない場合、キーワード「<なし>」が使用されます。同時に、高さフィールドは必要ないがフィーチャクラスに以下のリストのフィールドの 1 つが含まれる場合、キーワード「<なし>」を指定する必要があります。適した高さフィールドが存在しない場合、デフォルトでキーワード「<なし>」が使用されます。 
 | String | 
| join_field (オプション) | 結合フィールドは、観測点を特定の目標点に関連付けるために使用されます。 | String | 
| sample_distance (オプション) | ターゲットがラインまたはポリゴン フィーチャクラスのときのサンプル間の距離です。[サンプリング距離] の単位は、出力フィーチャクラスの XY 単位で解釈されます。 | Double | 
コードのサンプル
The following sample demonstrates the use of this tool in the Python window:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ConstructSightLines_3d('observer_pt.shp', 'target.shp', 
                             'sightlines.shp', 'BASEHEIGHT', 
                             'TOP_HEIGHT', 'NAME')
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''*********************************************************************
Name: Sight Line Visibility
Description: This script demonstrates how to calculate visibility
             for sight lines against the obstructions presented by
             terrain elevation & building models in a multipatch.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
    arcpy.CheckOutExtension('3D')
    # Set Local Variables
    env.workspace = 'C:/data'
    obs_pts = "Observers.shp"
    target = "Observation_Targets.shp"
    sight_lines = "in_memory/sightlines"
    surface = "sample.gdb/elevation/terrain"
    buildings = "city_buildings.shp"
    outLOS = arcpy.CreateUniqueName("Line_of_Sight.shp")
    obstruction_pts = arcpy.CreateUniqueName("Obstruction_Points.shp")
    arcpy.AddMessage("Constructing sight lines...")
    arcpy.ddd.ConstructSightLines(obs_pts, target, sight_lines)
    arcpy.AddMessage("Calculating line of sight...")
    arcpy.ddd.LineOfSight(surface, sight_lines, outLOS, obstruction_pts, 
                          "CURVATURE", "REFRACTION", 0.35, 0, buildings)
    arcpy.GetMessages(0)
    arcpy.CheckInExtension("3D")
except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)