概要
スカイライン バリアまたはシャドウ ボリュームを表すマルチパッチ フィーチャクラスを生成します。
図
使用法
バリアは、観測ポイントからスカイラインの最初の頂点にラインを描き、スカイラインのすべての頂点を通るラインを一掃することによって形成された三角形ファンに似ています。 このツールを使用すると、建物を表すマルチパッチなどのフィーチャがはみ出てバリアを妨害していないかどうか、または提案された建物がスカイラインを変えていないかどうかを判別することができます。
最初に [スカイライン] ツールを使用して、スカイラインまたはシルエットを生成します。 シルエットは、観測点からの光による影の体積表現を提供します。
[最小半径] パラメーターと [最大半径] パラメーターは、観測ポイントを起点とする三角形エッジの長さを定義します。 [最小半径] または [最大半径] にデフォルト値の 0 が指定されている場合、最小長または最大長は解析に使用されません。
クローズド マルチパッチを作成する場合、出力は、[ベース標高] パラメーターで定義された高さに立ち上げられ、閉じたジオメトリの底を形成する水平リングが作成されます。 指定したベース標高がスカイライン バリア内で最も高い頂点よりも高い場合、底面がシーリング (天井面) になります。
新しいマルチパッチ フィーチャクラスには、次のフィールドが含まれます。
- OBSV_PT_ID- このスカイライン バリアのマルチパッチを作成するために使用された、スカイラインの作成に使用された観測点の FID。
- ORIGFTR_ID- このシャドウ ボリュームを作成するために使用されたスカイライン セグメントまたはシルエットによって表される元のフィーチャ (建物など) の FID。
- SILHOUE_ID- シャドウ ボリュームの作成に使用されたマルチパッチ フィーチャ (シルエット) の FID (シルエットの場合のみ)。
構文
arcpy.ddd.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 | スカイラインを表す入力ライン フィーチャクラス、またはシルエットを表す入力マルチパッチ フィーチャクラス。 | Feature Layer |
out_feature_class | スカイライン バリアまたはシャドウ ボリュームが配置される出力フィーチャクラス。 | Feature Class |
min_radius_value_or_field (オプション) | 三角形エッジが観測ポイントから延長される最小半径。 たとえば、10 メートルの値は、すべての出力バリア フィーチャがその起点から 10 メートル以上長くなることを意味します。 デフォルトは 0 です。これは、最小距離が適用されないことを意味します。 | Linear Unit; Field |
max_radius_value_or_field (オプション) | 三角形エッジが観測ポイントから延長される最大半径。 デフォルトは 0 です。これは、最大距離が適用されないことを意味します。 | Linear Unit; Field |
closed (オプション) | 結果のマルチパッチが閉じた実線に見えるように、側面と底面をスカイライン バリアに追加するかどうかを指定します。
| Boolean |
base_elevation (オプション) | クローズド マルチパッチの底面の標高。 このパラメーターは、closed パラメーターを NO_CLOSED に設定した場合、無視されます。 デフォルトは 0 です。 | Linear Unit; Field |
project_to_plane (オプション) | バリアのフロント エンド (観測点に近い) とバック エンド (観測点から遠い) がそれぞれ垂直面に投影されるかどうかを指定します。 シャドウ ボリュームを作成する場合、これは通常 PROJECT_TO_PLANE に設定されます。
| Boolean |
コードのサンプル
スカイライン バリアの例 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")
スカイライン バリアの例 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