見通し線の構築(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)