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 は観測ポイントと同じ標高を表します)。
グラフは、ツールが ArcMap、ArcGlobe、または ArcScene で実行されている場合のみ表示されます。
構文
SkylineGraph_3d (in_observer_point_features, in_line_features, {base_visibility_angle}, {additional_fields}, {out_angles_table}, {out_graph})
パラメータ | 説明 | データ タイプ |
in_observer_point_features | 1 つ以上の観測点を含む入力フィーチャ。 | 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 |
コードのサンプル
SkylineGraph (スカイライン グラフ) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
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")
SkylineGraph (スカイライン グラフ) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
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)
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS for Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 3D Analyst