スカイライン (Skyline) (3D Analyst)

サマリー

スカイラインまたはシルエット解析の結果を含むラインまたはマルチパッチ フィーチャクラスを生成します。

スカイライン ツールの詳細

スカイライン ツールの図

使用法

  • このツールでは、すべての入力データが投影座標系である必要があります。 投影座標系ではない入力フィーチャクラスは、[投影変換 (Project)] ツールを使用して投影変換できます。また、入力ラスター サーフェスは [ラスターの投影変換 (Project Raster)] ツールを使用して投影変換できます。

  • [スカイラインをセグメント化] パラメーターを使用すると、特定のマルチパッチ フィーチャまたは周囲の標高サーフェスによって定義されるスカイラインの割合を決定できます。 これにより、所定の観測ポイントのスカイラインに対し、特定の場所が寄与するかどうかを理解できるようになります。

  • このツールでは、フィーチャのシルエットを作成できます。また、[スカイライン バリア (Skyline Barrier)] ツールを使用すると、これらのシルエットをシャドウ ボリュームに立ち上げることができます。 このプロセスで生成されるシャドウは、入力フィーチャのジオメトリからわずかにオフセットした位置に作成されます。 あるいは、[シャドウ ボリューム (Sun Shadow Volume)] ツールを使用して、フィーチャ ジオメトリからフィーチャの高さの下まで伸びるシャドウ ボリュームを生成できます。 [シャドウ頻度 (Sun Shadow Frequency)] ツールを使用して、日差しによってサーフェス上のどの場所に 3D フィーチャの影がさすかを調べることもできます。

  • 次のフィールドが、スカイラインを含む [出力フィーチャクラス] パラメーター値に追加されます。

    • 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- 元のフィーチャ (建物など) のエンベロープの中心を表す Z 成分
    • 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)
  • 大気差と地球の曲率の修正は、[入力サーフェス] パラメーターの値がラスター データセットの場合のみ適用されます。 サーフェスが TIN、テレイン、または LAS データセットによって定義されている場合、次のツールの 1 つを使用してラスターにデータをエクスポートします。

パラメーター

ラベル説明データ タイプ
入力観測ポイント フィーチャ

観測ポイントを表す 3D ポイント。 各フィーチャに出力が存在します。

Feature Layer
出力フィーチャクラス

スカイラインを表すラインまたはシルエットを表すマルチパッチのいずれかになる 3D フィーチャ。

Feature Class
入力サーフェス
(オプション)

水平線の定義に使用される地形サーフェス。 このサーフェスを指定しない場合、[仮想サーフェス半径] パラメーターと [仮想サーフェス標高] パラメーターの値によって定義された仮想サーフェスが使用されます。

LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer
仮想サーフェス半径
(オプション)

入力サーフェスを指定しない場合に水平線の定義に使用される仮想サーフェスの半径。 デフォルト値は 1,000 メートルです。

Linear Unit
仮想サーフェス標高
(オプション)

実際のサーフェスの代わりに水平線を定義するのに使用される仮想サーフェスの標高。 このパラメーターは、実際のサーフェスが指定されている場合は無視されます。 デフォルトは 0 です。

Linear Unit
入力フィーチャ
(オプション)

スカイラインの決定に使用されるフィーチャ。 このフィーチャを指定しない場合、スカイラインは、地形サーフェスまたは仮想サーフェスで定義された水平線のみで構成されます。

Feature Layer
フィーチャの詳細レベル
(オプション)

各フィーチャを検証する詳細レベルを指定します。

  • 詳細フィーチャ内のすべてのエッジがスカイライン解析で考慮されます (三角形と外部リングのエッジのみが考慮されます)。 時間のかかるこの処理は最も正確です。 これがデフォルトです。
  • 凸フットプリントスカイライン解析で、フィーチャ内の最も高い頂点まで立ち上げられた各フィーチャのフットプリントの凸包の上側境界が使用されます。
  • エンベロープスカイライン解析で、3 次元フィーチャのエンベロープの境界が使用されます。 この方法が最も高速です。
String
方位角の開始角度
(オプション)

スカイライン解析を開始する方向。

この値には -360°~ 360°の範囲のジオメトリ角度を指定します。 デフォルトは 0°で、真北です。 角度値は時計回りに増加するため、90°が真東、180°が真南、270°が真西になります。 同様に、-90°が真西、-180°が真南、-270°が真東になります。 [入力観測ポイント フィーチャ] パラメーター値からの数値フィールドを使用して、観測ポイントごとに開始方向を指定することもできます。 解析は [方位角の終了角度] パラメーター値に達するまで実行されます。

Double; Field
方位角の終了角度
(オプション)

スカイライン解析を終了する方位。

この値には -360°~ 360°の範囲のジオメトリ角度を指定します。 解析は観測ポイントから開始され、[方位角の開始角度] パラメーター値から [方位角の終了角度] パラメーター値に達するまで実行されます。 [方位角の開始角度] パラメーター値からの偏差が 360°を超えない値を指定する必要があります。 デフォルトは 360°で、真北です。

たとえば、方位角の開始角度が 0°、方位角の終了角度が 360°の場合、観測ポイントの全周のスカイラインが生成され、方位角の開始角度が 90°、方位角の終了角度が 270°の場合、観測ポイントの南側半周のスカイラインが生成されます。

[入力観測ポイント フィーチャ] パラメーター値からの数値フィールドを使用して、観測ポイントごとに終了方向を指定できます。

Double; Field
方位角の増分
(オプション)

スカイライン解析を [方位角の開始角度] パラメーター値から [方位角の終了角度] パラメーター値まで実行するときに、水平線を評価する角度の間隔 (度)。 [方位角の終了角度] の値から [方位角の開始角度] の値を引いた値以下にする必要があります。 デフォルトは 1 です。

Double; Field
最大水平半径
(オプション)

水平線を検索する観測位置からの最大距離。 0 を指定すると、距離による制限を受けません。 デフォルトは 0 です。

Linear Unit
スカイラインのセグメント化
(オプション)

観測ポイントごとに 1 つのフィーチャを含むスカイラインを生成するのかどうか、つまり、スカイラインに寄与する一意のエレメントで各観測ポイントのスカイラインをセグメント化するのかどうかを指定します。 このパラメーターは、1 つ以上のマルチパッチ フィーチャが [入力フィーチャ] パラメーターに指定されている場合のみ使用可能です。

シルエットを生成している場合、このパラメーターは発散光を使用するかどうかを示します。 太陽光の陰の場合は、このパラメーターをオフにします。

  • オフ - 各スカイライン フィーチャは 1 つの観測ポイントを表します。 これがデフォルトです。
  • オン - 各観測ポイントのスカイラインは、スカイランに寄与する一意のエレメントによってセグメントされます。
Boolean
スケール設定
(オプション)

スカイラインの各頂点の、元の対頂角 (水平線からの角度、または仰角) または標高に対する割合。 0 または 100 の値を使用する場合はスケールが設定されません。 デフォルトは 100 です。

Double
スケールの基準
(オプション)

スケールの実行方法を指定します。

  • 観測ポイントからの対頂角観測ポイントを基準とした各頂点への対頂角に基づいて、スケーリングを実行します。 これがデフォルトです。
  • 標高観測ポイントを基準とした各頂点の標高に基づいて、スケーリングを実行します。
String
スケール方法
(オプション)

スケール計算に使用される頂点を指定します。

  • 最大スカイライン対頂角 (または標高) が最も大きい頂点の対頂角 (または標高) を基準にして、各頂点をスケールします。 これがデフォルトです。
  • 各頂点各頂点の元の対頂角 (または標高) を基準にして、各頂点をスケールします。
String
曲率の使用
(オプション)

尾根線を生成するときに、地球の曲率を使用するかどうかを指定します。 このパラメーターは、[入力サーフェス] パラメーターでラスター サーフェスが指定されている場合にのみ利用可能です。

  • オフ - 地球の曲率は使用されません。 これがデフォルトです。
  • オン - 地球の曲率が使用されます。
Boolean
屈折率の使用
(オプション)

ファンクション サーフェスから尾根線を生成するときに、大気差を適用するかどうかを指定します。 このオプションは、[入力サーフェス] パラメーターでラスター サーフェスが指定されている場合にのみ利用可能です。

  • オフ - 大気の屈折を適用しません。 これがデフォルトです。
  • オン - 大気の屈折を適用します。
Boolean
屈折率
(オプション)

大気差を適用する場合に使用される屈折係数。 デフォルトは 0.13 です。

Double
ピラミッド レベル解像度
(オプション)

使用されるテレイン ピラミッド レベルの Z 許容値またはウィンドウ サイズの解像度。 デフォルト値は 0 (最大解像度) です。

Double
シルエットの作成
(オプション)

出力フィーチャが、入力データと天空との境界を定義するスカイラインを表すか、観測可能な入力フィーチャの外観を表すシルエットを表すかを指定します。 このオプションは、1 つ以上のマルチパッチ フィーチャが [入力フィーチャ] パラメーターに指定されている場合のみ使用可能です。

  • オフ - 出力ポリライン フィーチャはスカイラインを表します。 これがデフォルトです。
  • オン - 出力マルチパッチ フィーチャはシルエットを表します。
Boolean
最大半径をフィーチャに適用
(オプション)

[最大水平半径] パラメーター値を入力フィーチャに適用するかどうかを指定します。

  • オフ - 入力フィーチャに半径は適用されません。 これがデフォルトです。
  • オン - 入力フィーチャに半径が適用されます。
Boolean

arcpy.ddd.Skyline(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}, {apply_max_radius_to_features})
名前説明データ タイプ
in_observer_point_features

観測ポイントを表す 3D ポイント。 各フィーチャに出力が存在します。

Feature Layer
out_feature_class

スカイラインを表すラインまたはシルエットを表すマルチパッチのいずれかになる 3D フィーチャ。

Feature Class
in_surface
(オプション)

水平線の定義に使用される地形サーフェス。 このサーフェスを指定しない場合、virtual_surface_radius パラメーターと virtual_surface_elevation パラメーターの値によって定義された仮想サーフェスが使用されます。

LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer
virtual_surface_radius
(オプション)

入力サーフェスを指定しない場合に水平線の定義に使用される仮想サーフェスの半径。 デフォルト値は 1,000 メートルです。

Linear Unit
virtual_surface_elevation
(オプション)

実際のサーフェスの代わりに水平線を定義するのに使用される仮想サーフェスの標高。 このパラメーターは、実際のサーフェスが指定されている場合は無視されます。 デフォルトは 0 です。

Linear Unit
in_features
[in_features,...]
(オプション)

スカイラインの決定に使用されるフィーチャ。 このフィーチャを指定しない場合、スカイラインは、地形サーフェスまたは仮想サーフェスで定義された水平線のみで構成されます。

Feature Layer
feature_lod
(オプション)

各フィーチャを検証する詳細レベルを指定します。

  • FULL_DETAILフィーチャ内のすべてのエッジがスカイライン解析で考慮されます (三角形と外部リングのエッジのみが考慮されます)。 時間のかかるこの処理は最も正確です。 これがデフォルトです。
  • CONVEX_FOOTPRINTスカイライン解析で、フィーチャ内の最も高い頂点まで立ち上げられた各フィーチャのフットプリントの凸包の上側境界が使用されます。
  • ENVELOPEスカイライン解析で、3 次元フィーチャのエンベロープの境界が使用されます。 この方法が最も高速です。
String
from_azimuth_value_or_field
(オプション)

スカイライン解析を開始する方向。

この値には -360°~ 360°の範囲のジオメトリ角度を指定します。 デフォルトは 0°で、真北です。 角度値は時計回りに増加するため、90°が真東、180°が真南、270°が真西になります。 同様に、-90°が真西、-180°が真南、-270°が真東になります。 in_observer_point_features パラメーター値からの数値フィールドを使用して、観測ポイントごとに開始方向を指定することもできます。 解析は to_azimuth_value_or_field パラメーター値に達するまで実行されます。

Double; Field
to_azimuth_value_or_field
(オプション)

スカイライン解析を終了する方位。

この値には -360°~ 360°の範囲のジオメトリ角度を指定します。 解析は観測ポイントから開始され、from_azimuth_value_or_field パラメーター値から to_azimuth_value_or_field パラメーター値に達するまで実行されます。 from_azimuth_value_or_field パラメーター値からの偏差が 360°を超えない値を指定する必要があります。 デフォルトは 360°で、真北です。

たとえば、方位角の開始角度が 0°、方位角の終了角度が 360°の場合、観測ポイントの全周のスカイラインが生成され、方位角の開始角度が 90°、方位角の終了角度が 270°の場合、観測ポイントの南側半周のスカイラインが生成されます。

in_observer_point_features パラメーター値からの数値フィールドを使用して、観測ポイントごとに終了方向を指定できます。

Double; Field
azimuth_increment_value_or_field
(オプション)

スカイライン解析を from_azimuth_value_or_field パラメーター値から to_azimuth_value_or_field パラメーター値まで実行するときに、水平線を評価する角度の間隔 (度)。 to_azimuth_value_or_field の値から from_azimuth_value_or_field の値を引いた値以下にする必要があります。 デフォルトは 1 です。

Double; Field
max_horizon_radius
(オプション)

水平線を検索する観測位置からの最大距離。 0 を指定すると、距離による制限を受けません。 デフォルトは 0 です。

Linear Unit
segment_skyline
(オプション)

観測ポイントごとに 1 つのフィーチャを含むスカイラインを生成するのかどうか、つまり、スカイラインに寄与する一意のエレメントで各観測ポイントのスカイラインをセグメント化するのかどうかを指定します。 このパラメーターは、マルチパッチ フィーチャが in_features パラメーターに指定されている場合のみ使用可能です。

シルエットを生成している場合、このパラメーターは発散光を使用するかどうかを示します。 シャドウの場合は NO_SEGMENT_SKYLINE オプションを使用します。

  • NO_SEGMENT_SKYLINE各スカイライン フィーチャは 1 つの観測ポイントを表します。 これがデフォルトです。
  • SEGMENT_SKYLINE各観測ポイントのスカイラインは、スカイランに寄与する一意のエレメントによってセグメントされます。
Boolean
scale_to_percent
(オプション)

スカイラインの各頂点の、元の対頂角 (水平線からの角度、または仰角) または標高に対する割合。 0 または 100 の値を使用する場合はスケールが設定されません。 デフォルトは 100 です。

Double
scale_according_to
(オプション)

スケールの実行方法を指定します。

  • VERTICAL_ANGLE観測ポイントを基準とした各頂点への対頂角に基づいて、スケーリングを実行します。 これがデフォルトです。
  • ELEVATION観測ポイントを基準とした各頂点の標高に基づいて、スケーリングを実行します。
String
scale_method
(オプション)

スケール計算に使用される頂点を指定します。

  • SKYLINE_MAXIMUM対頂角 (または標高) が最も大きい頂点の対頂角 (または標高) を基準にして、各頂点をスケールします。 これがデフォルトです。
  • EACH_VERTEX各頂点の元の対頂角 (または標高) を基準にして、各頂点をスケールします。
String
use_curvature
(オプション)

ファンクション サーフェスから尾根線を生成するときに、地球の曲率を使用するかどうかを指定します。 このパラメーターは、in_surface パラメーターでラスター サーフェスが指定されている場合にのみ利用可能です。

  • CURVATURE地球の曲率が使用されます。
  • NO_CURVATURE地球の曲率は使用されません。 これがデフォルトです。
Boolean
use_refraction
(オプション)

ファンクション サーフェスから尾根線を生成するときに、大気差を適用するかどうかを指定します。 このオプションは、in_surface パラメーターでラスター サーフェスが指定されている場合にのみ利用可能です。

  • NO_REFRACTION大気の屈折を適用しません。 これがデフォルトです。
  • REFRACTION大気の屈折を適用します。
Boolean
refraction_factor
(オプション)

大気差を適用する場合に使用される屈折係数。 デフォルトは 0.13 です。

Double
pyramid_level_resolution
(オプション)

使用されるテレイン ピラミッド レベルの Z 許容値またはウィンドウ サイズの解像度。 デフォルト値は 0 (最大解像度) です。

Double
create_silhouettes
(オプション)

出力フィーチャが、入力データと天空との境界を定義するスカイラインを表すか、観測可能な入力フィーチャの外観を表すシルエットを表すかを指定します。 このオプションは、1 つ以上のマルチパッチ フィーチャが in_features パラメーターに指定されている場合のみ使用可能です。

  • NO_CREATE_SILHOUETTES出力ポリライン フィーチャはスカイラインを表します。 これがデフォルトです。
  • CREATE_SILHOUETTES出力マルチパッチ フィーチャはシルエットを表します。
Boolean
apply_max_radius_to_features
(オプション)

max_horizon_radius パラメーター値を入力フィーチャに適用するかどうかを指定します。

  • NO_APPLY_MAX_RADIUS_TO_FEATURES入力フィーチャに半径は適用されません。 これがデフォルトです。
  • APPLY_MAX_RADIUS_TO_FEATURES入力フィーチャに半径が適用されます。
Boolean

コードのサンプル

Skyline の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

arcpy.env.workspace = "C:/data"
arcpy.ddd.Skyline("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

# Set environment settings
arcpy.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.ddd.Skyline(inPts, outFC, inSurface, surfRad, surfElev, 
                  obstructionFCs, LOD, fromAzim, toAzim, incAzim, 
                  maxHorizRad, segSky, scale, scaleAcc, scaleMethod)

関連トピック