サマリー
スカイラインまたはシルエット解析の結果を含むラインまたはマルチパッチ フィーチャクラスを生成します。
図
使用法
[スカイライン (Skyline)] ツールは多くの場合、[スカイライン バリア (Skyline Barrier)] ツールと一緒に使用されます。また、[スカイライン グラフ (Skyline Graph)] ツールと一緒に使用する場合もあります。このツールのその他の応用については、「3D フライト パスおよびコリドーに対する脅威分析」をご参照ください。
[スカイライン (Skyline)] ツールでは、フィーチャのシルエットを作成できます。また、[スカイライン バリア (Skyline Barrier)] ツールを使用すると、これらのシルエットをシャドウ ボリュームに立ち上げることができます。詳細については、「[スカイライン (Skyline)] の詳細」をご参照ください。
次のフィールドが、スカイラインを含む出力フィーチャクラスに追加されます。
- OBSV_PT_ID - スカイラインの作成に使用した観測ポイントの FID。
- ORIGFTR_ID - 建物などのフィーチャの FID。
次のフィールドが、シルエットを含む出力フィーチャクラスに追加されます。
- OBSV_PT_ID - シルエットの作成に使用した観測ポイントの FID。
- ORIGFTR_ID - このシルエットで表される、建物などの元のフィーチャの FID。
- DIR_VECT_X - 観測ポイントから見た光線の方向を表す単位ベクトルの X 成分。
- DIR_VECT_Y - 観測ポイントから見た光線の方向を表す単位ベクトルの Y 成分。
- DIR_VECT_Z - 観測ポイントから見た光線の方向を表す単位ベクトルの Z 成分。
- FEAT_CTR_X - 元のフィーチャ (建物など) のエンベロープの中心を表す X 成分。
- FEAT_CTR_Y - フィーチャのエンベロープの中心を表す Y 成分。
- FEAT_CTR_Z - フィーチャのエンベロープの中心を表す Z 成分。
- BHND_CTR_X - フィーチャの背後に移動された、フィーチャのエンベロープの中心を表す X 成分。
- BHND_CTR_Y - フィーチャの背後に移動された、フィーチャのエンベロープの中心を表す Y 成分。
- BHND_CTR_Z - フィーチャの背後に移動された、フィーチャのエンベロープの中心を表す Z 成分。
- USED_PARLL - シルエットの作成に平行な光線を使用したかどうかを表します (平行な光線を使用した場合は 1、そうでない場合は 0)。
- MADE_VERT - 光線に平行ではなく、光線に垂直にシルエットが作成されたかどうかを表します (作成された場合は 1、そうでない場合は 0)。
- MOVED_BHND - シルエットがフィーチャの背後に移動されているか、そのままフィーチャの中心にあるかを示します (移動された場合は 1、そうでない場合は 0)。
構文
Skyline_3d (in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
パラメーター | 説明 | データ タイプ |
in_observer_point_features | 観測点を表す 3D ポイント。各フィーチャに出力が存在します。 | Feature Layer |
out_feature_class | スカイラインを表すラインまたはシルエットを表すマルチパッチのいずれかになる 3D フィーチャ。 | Feature Class |
in_surface (オプション) | 水平線の定義に使用される地形サーフェス。このサーフェスを指定しない場合、virtual_surface_radius パラメーターと virtual_surface_elevation パラメーターを使用する仮想サーフェスが採用されます。 | LAS Dataset Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (オプション) | 地形サーフェスを指定しない場合に水平線の定義に使用される仮想サーフェスの半径。デフォルト値は 1,000 メートルです。 以下の単位がサポートされています。
| Linear Unit |
virtual_surface_elevation (オプション) | 実際のサーフェスの代わりに水平線を定義する仮想サーフェスの標高。実際のサーフェスが指定されている場合は無視されます。デフォルトは 0 です。 以下の単位がサポートされています。
| Linear Unit |
in_features (オプション) | スカイラインの決定に使用されるフィーチャ。このフィーチャを指定しない場合、スカイラインは、地形サーフェスまたは仮想サーフェスで定義された水平線のみで構成されます。 | Feature Layer |
feature_lod (オプション) | 地平線解析で各フィーチャを検証する詳細レベル。
| String |
from_azimuth_value_or_field (オプション) | Double; Field | |
to_azimuth_value_or_field (オプション) | 地平線解析を終了する方位 (度)。解析は観測ポイントから開始され、[方位角の開始角度] から [方位角の終了角度] に達するまで、右方向に実行されます。[方位角の開始角度] より大きく、360 を超えない値を指定する必要があります。デフォルトは 360 です。 | Double; Field |
azimuth_increment_value_or_field (オプション) | 地平線解析を [方位角の開始角度] から [方位角の終了角度] まで実行するときに、水平線を評価する角度の間隔 (度)。[方位角の終了角度] から [方位角の開始角度] を引いた値以下にする必要があります。デフォルトは 1 です。 | Double; Field |
max_horizon_radius (オプション) | 水平線を検索する観測位置からの最大距離。0 を指定すると、距離による制限を受けません。デフォルトは 0 です。 以下の単位がサポートされています。
| Double |
segment_skyline (オプション) | 観測ポイントごとに 1 つのフィーチャを含むスカイラインを生成するのかどうか、つまり、スカイラインに寄与する一意のエレメントで各観測点のスカイラインをセグメントするのかどうかを指定します。 シルエットを生成している場合、このパラメーターは発散光を使用するかどうかを示します。太陽光の陰の場合は、一般的にこのパラメーターを NO_SEGMENT_SKYLINE にします。
| Boolean |
scale_to_percent (オプション) | スカイラインの各頂点の、元の対頂角 (水平線からの角度、または仰角) または標高に対する割合を指定します。0 または 100 を入力した場合は縮尺が設定されません。デフォルトは 100 です。 | Double |
scale_according_to (オプション) | スケーリングに使用する対象を、次の値で指定します。
| String |
scale_method (オプション) | 頂点の計算方法。
| String |
use_curvature (オプション) | ファンクション サーフェスから尾根線を生成するときに、地球の曲率を考慮するかどうかを指定します。
| Boolean |
use_refraction (オプション) | ファンクション サーフェスから尾根線を生成するときに、大気差を適用するかどうかを指定します。
| Boolean |
refraction_factor (オプション) | 大気差を考慮する場合に使用される屈折係数。デフォルトは 0.13 です。 | Double |
pyramid_level_resolution (オプション) | このツールが使用するテレイン ピラミッド レベルの Z 許容値またはウィンドウサイズの解像度。デフォルト値は 0 (最大解像度) です。 | Double |
create_silhouettes (オプション) | 出力フィーチャがスカイラインを表すのか、シルエットを表すのかを指定します。
| Boolean |
コードのサンプル
Skyline (スカイライン) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
Skyline (スカイライン) の例 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"
# Make sure output has a unique name
outFC = arcpy.CreateUniqueName("skyline_output.shp")
inSurface = "sample.gdb/featuredataset/terrain"
obstructionFCs = "buildings.shp; billboards.shp"
surfRad = "1000 meters"
surfElev = "100 meters"
LOD = "FULL_DETAIL"
fromAzim = 0
toAzim = 360
incAzim = 1
maxHorizRad = 0
segSky = "SEGMENT_SKYLINE"
scale = 100
scaleAcc = "ELEVATION"
scaleMethod = "SKYLINE_MAXIMUM"
# Execute Skyline
arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev,
obstructionFCs, LOD, fromAzim, toAzim, incAzim,
maxHorizRad, segSky, scale, scaleAcc, scaleMethod)
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 Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst