バッファ 3D(Buffer 3D) (3D Analyst)
サマリ
ポイント フィーチャまたはライン フィーチャの周囲に 3D バッファを作成します。
図
使用法
ポイント入力に球体を、ライン入力に円筒フィーチャを、それぞれ生成します。
3D セット演算子などで行われる体積計算に使用できる閉じたマルチパッチ フィーチャを出力します。セット演算子の種類と、その使用方法については、「3D セット演算子の使用」をご参照ください。
[バッファ品質] を上げると、よりなめらかな 3D フィーチャが作成されますが、その分処理に時間がかかります。
複雑なライン フィーチャ(多数の頂点を持つ曲線など)を処理する際のパフォーマンスを向上させるには、[単純化] 値を指定することを推奨します。
ライン フィーチャによっては、ラインのジオメトリと使用されるバッファ距離が原因で、マルチパッチを生成できない場合があります。同一フィーチャ内でバッファが重なってしまうようなバッファ距離は回避し、出力の生成に失敗したフィーチャについては、より短いバッファ距離を指定することを推奨します。
構文
パラメータ | 説明 | データ タイプ |
in_features |
バッファを作成するライン フィーチャまたはポイント フィーチャ。 | Feature Layer |
out_feature_class |
3D バッファを表す出力マルチパッチ フィーチャ。 | Feature Class |
buffer_distance_or_field |
入力フィーチャのバッファの距離。これは、直線距離として指定することも、入力フィーチャの属性テーブルにある数値フィールドから取得することもできます。 距離の単位が指定されないか、不明と入力された場合、入力フィーチャの空間参照の距離単位が使用されます。 | Linear Unit; Field |
buffer_joint_type (オプション) |
ライン セグメントの頂点間のバッファの形状このパラメータは、入力ライン フィーチャにのみ有効です。
| String |
buffer_quality (オプション) |
作成されるマルチパッチ フィーチャを表すのに使用されるセグメントの数。デフォルトは 20 ですが、6 から 60 までの数値を入力できます。 | Long |
simplification_tolerance (オプション) | 単純化によって入力ラインから頂点を削除します。単純化は、最大許容オフセット内で、元のラインの形状を定義する重要な頂点を維持して実行されます。デフォルトでは、許容値が指定されている場合を除いて、単純化は実行されません。単純化の許容値は、数値およびその計測距離単位(たとえば「1.5 メートル」など)、または関連付けられた計測単位のない数値(この場合、水平の空間参照の距離単位にデフォルトが適用されます)を含む文字列として定義できます。 | Linear Unit |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Buffer3D_3d('lineFC.shp', 'buffer3d.shp', '15 Meters',
'Round', 30, '1 Meters')
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Buffer 3D Example
Description: This script demonstrates an application of
the Buffer 3D and Inside 3D tools.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'lineFC.shp'
bufferOut = 'buffer3d.shp'
# Execute Buffer 3D
arcpy.Buffer3D_3d(inFC, bufferOut, '15 Meters', 'Round', '30', '1 Meters')
arcpy.Inside3D_3d(bufferOut, 'survey_pts.shp', 'inside_analysis.dbf')
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)