スカイライン グラフ (3D Analyst)
サマリ
天空の可視領域を計算し、オプションでテーブルと極座標グラフを生成します。
テーブルとグラフは、観測点からスカイラインの各頂点に向かう水平角と対頂角を表します。
図
使用法
- 入力として、観測ポイントとスカイライン(3D ライン)が必要です。
- 観測ポイントから各頂点への方位角と対頂角が計算されます。
- ツールは常に天空の可視領域の割合(0 ~ 1)を返します。たとえば、0.8 は空の 80% が見えることを表します。
- オプションで角度のテーブルを出力できます。テーブルを出力する場合は、オプションで極座標グラフも出力できます。
- 天空の可視領域の割合は、最小および最大の対頂角と共に、常に [結果] ウィンドウに(ウィンドウが表示されていない場合は、結果情報に)表示されます。
- テーブルを出力する場合、テーブルの行には 2 つ以上の倍精度数値が含まれます。各行には少なくとも水平角と天頂角の値が含まれます。どちらも単位は度です。
- [追加フィールド] を選択すると、スカイラインの頂点に続くエッジのソース(FEATURE_ID)、観測ポイントから頂点までの距離、頂点の座標などの情報を含む、追加の列が生成されます。ソースは、スカイラインに含まれるフィーチャの FID、またはスカイラインがサーフェス上にあることを示すコードです。
テーブルに必ず出力されるフィールドは、次のとおりです。
- HORIZ_ANG - 水平角
- ZENITH_ANG - 天頂角
追加フィールドには、次のものがあります。
- VERTEX_X - 頂点の X 座標
- VERTEX_Y - 頂点の Y 座標
- VERTEX_Z - 頂点の Z 座標
- DIST_2D - 観測ポイントから頂点までの水平距離
- DIST_3D - 観測ポイントから頂点までの傾斜距離
追加フィールドは、グラフの生成に必ずしも必要ありません。
数学座標の水平角は、90 から方位角を引いた値に等しくなります。また、天頂角は 90 から対頂角を引いた値です。数学座標の水平角は、0 で東、90 で北を表します。天頂角は、90 で水平、0 で真上を表します。
- オプションのグラフは極座標グラフで、観測ポイントを中心とする球の表面上に投影されたスカイライン(3D ポリライン)を、球の中心の上空から見下ろしているような外観になります。
- 極座標グラフは、中心から外に向かって線形です。つまり、赤道を表す円の半径は、45 度の標高角度を表す円の半径の 2 倍であり、グラフの中心は 90 度の標高角度(天頂角が 0)を表していると想定しています。
- 天空の可視領域の割合は、常に結果に表示されます。この値は、スカイラインより上の面積をベース表示角度より上の面積で割った値に等しく、スカイラインの方位角範囲内のみで計算されます(ベース表示角度はパラメータの 1 つで、デフォルト値の 0 は観測ポイントと同じ標高を表します)。
グラフ オプションは、ArcGIS Desktop でグラフを表示するだけです。
構文
パラメータ | 説明 | データ タイプ |
in_observer_point_features |
The input features containing one or more observer points. | Feature Layer |
in_line_features |
スカイラインを表すライン フィーチャクラス。 | Feature Layer |
base_visibility_angle (オプション) |
天空の可視領域の割合を計算する際にベースラインとして使用する対頂角。0 は水平を表し、90 は真上を表します。また、-90 は真下を表します。デフォルトは 0 です。 | Double |
additional_fields (オプション) |
テーブルに、2 つの角度の値だけでなく追加フィールドを出力するかどうかを指定します。
| Boolean |
out_angles_table (オプション) |
角度を出力するために作成するテーブル。デフォルトは空です。この場合、テーブルは出力されません。 | Table |
out_graph (オプション) |
オプションのグラフの名前。グラフを作成するには、テーブルを生成する必要があります。グラフが表示され、表示されたグラフを保存または編集できます。デフォルトは空です。この場合、グラフは出力されません。 | Graph |
コードのサンプル
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.SkylineGraph_3d("observers.shp", "skyline_outline.shp", 0, "ADDITIONAL_FIELDS", "table.dbf")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** Name: Skyline Example Description: This script demonstrates how to use the Skyline tool. ****************************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env try: # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension('3D') # Set environment settings env.workspace = 'C:/data' # Set Local Variables inPts = "observers.shp" inLines = "skyline_outline.shp" baseVisibility = 25 # Ensure output table has unique name outTable = arcpy.CreateUniqueName("angles_table.dbf") #Execute SkylineGraph arcpy.SkylineGraph_3d(inPts, inLines, 0, "ADDITIONAL_FIELDS", outTable) 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)