概要
スカイライン バリアまたはシャドウ ボリュームを表すマルチパッチ フィーチャクラスを生成します。
図
使用法
バリアは、観測ポイントからスカイラインの 1 つ目の頂点にラインを引き、そこからスカイラインのすべての頂点にラインをスイープすることで作成される、三角扇のような外観をしています。建物を表すマルチパッチなどのフィーチャがバリアからはみ出して「違反」しているかどうか、または計画されている建物によってスカイラインが変更されるかどうかを判断するために使用できます。
最初に [スカイライン (Skyline)] ツールを使用して、スカイラインまたはシルエットを生成します。シルエットにより、観測ポイントからの光によってできる影の体積表現 (シャドウ ボリューム) が生成されます。
[最小半径] および [最大半径] パラメーターは、観測ポイントを起点とする三角形のエッジの長さを定義します。[最小半径] または [最大半径] にデフォルト値の 0 を指定すると、最小半径または最大半径の長さは解析で使用されません。
クローズド マルチパッチを作成する場合、出力は [ベース標高] パラメーターで定義されている高さに立ち上げられ、閉じたジオメトリの底を構成する水平なリングが作成されます。指定したベース標高がスカイライン バリアの最も高い頂点よりも大きい場合、「底面」は実際には上面になります。
新しいマルチパッチ フィーチャクラスには、次のフィールドがあります。
- OBSV_PT_ID - このスカイライン バリアのマルチパッチを作成するために使用された、スカイラインの作成に使用された観測点の FID。
- ORIGFTR_ID - このシャドウ ボリュームを作成するために使用されたスカイライン セグメントまたはシルエットによって表される元のフィーチャ (建物など) の FID。
- SILHOUE_ID - シャドウ ボリュームの作成に使用されたマルチパッチ フィーチャ (シルエット) の FID (シルエットの場合のみ)。
構文
SkylineBarrier(in_observer_point_features, in_features, out_feature_class, {min_radius_value_or_field}, {max_radius_value_or_field}, {closed}, {base_elevation}, {project_to_plane})
パラメーター | 説明 | データ タイプ |
in_observer_point_features | 観測点を含むポイント フィーチャクラス。 | Feature Layer |
in_features | 1 つ以上のスカイラインを表す入力ライン フィーチャクラス、または 1 つ以上のシルエットを表す入力マルチパッチ フィーチャクラス。 | Feature Layer |
out_feature_class | スカイライン バリアまたはシャドウ ボリュームを格納する出力フィーチャクラス。 | Feature Class |
min_radius_value_or_field (オプション) | 三角形のエッジを観測ポイントから延ばすときの最小半径。デフォルトは 0 です。この場合、最小値は使用されません。 | Linear Unit; Field |
max_radius_value_or_field (オプション) | 三角形のエッジを観測ポイントから延ばすときの最大半径。デフォルトは 0 です。この場合、最大値は使用されません。 | Linear Unit; Field |
closed (オプション) | 側面と底面を追加してスカイライン バリアを閉じ、結果のマルチパッチをソリッドにするかどうかを指定します。
| Boolean |
base_elevation (オプション) | クローズド マルチパッチの底面の標高。バリアを閉じない場合は無視されます。デフォルトは 0 です。 | Linear Unit; Field |
project_to_plane (オプション) | バリアの前 (観測ポイントに近い側) と後ろ (観測ポイントから遠い側) の端を、それぞれ垂直面に投影するかどうかを指定します。通常、シャドウ ボリュームを作成する場合はオンにします。
| Boolean |
コードのサンプル
SkylineBarrier (スカイライン バリア) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SkylineBarrier_3d("observers.shp", "skyline_outline.shp", "barrier_output.shp")
SkylineBarrier (スカイライン バリア) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Skyline Barrier Example
Description: This script demonstrates how to use the
Skyline Barrier 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'
inLine = 'skyline.shp'
outFC = 'output_barriers.shp'
minRadius = '0 METERS'
maxRadius = '200 METERS'
#Execute SkylineBarrier
arcpy.SkylineBarrier_3d(inPts, inLine, outFC, minRadius,
maxRadius, 'CLOSED')
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)
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst