バッファ (解析)
図
使用法
-
広範囲をカバーするフィーチャが含まれる投影されたフィーチャクラスをバッファ処理する場合、または非常に大きなバッファ距離を使用している場合は、投影変換の歪みにより誤ったバッファが生成される可能性があります。地理座標系を持つフィーチャクラスを使用し、[バッファの距離] を距離単位(度などの角度単位ではなく、メートルやフィートなど)で指定することにより、ポイントをバッファ処理する際の歪みを完全に避けることができます。これらの入力を組み合わせて使用する場合、ツールは地表上の距離を正確に表す測地線バッファを生成します。測地線バッファは、平面マップ上では異常に見えますが、それらのバッファをグローブで表示した場合には、正しく表示されます(地理データを 3D グローブで表示するには、ArcGlobe または ArcGIS Explorer アプリケーションを使用します)。詳細については、「バッファの詳細」をご参照ください。
注意:入力フィーチャクラスの座標系は、[投影変換(Project)] ツールを使用して変更できます。または、[バッファ(Buffer)] ツールを実行する前に [出力データの座標系] ジオプロセシング環境を設定して、指定した座標系をバッファの作成に使用することができます。
-
正距円錐図法や正距方位図法 などの、距離の歪みを最小にし、地理的に入力に適した投影法を使用することで、投影された入力から作成されるバッファの精度を上げます。
-
ジオデータベース フィーチャクラスへの出力を使用して、投影座標系でフィーチャをバッファ処理する際、作成されたジオメトリには、多くの場合(特にポイントのバッファ処理の場合)円弧線分が含まれます。円弧を含むこれらのバッファが別の座標系に投影変換される場合、元のバッファのサイズと位置が変換されます(ただしバッファの形状は変わりません)ので、再投影変換後のバッファは、元のバッファがカバーする領域を正確に表していません。円弧を含むバッファを投影変換する場合、まず [頂点の挿入(Densify)] ツールを使用して円弧線分を直線に変換してから、再投影変換を行います。
-
出力フィーチャクラスの BUFF_DIST フィールドには、各フィーチャのバッファ処理に使用するバッファ距離が、入力フィーチャの座標系の距離単位で格納されます。入力に BUFF_DIST という名前のフィールドが存在する場合、そのフィールドの値は出力で上書きされます。[ALL] または [LIST] の [ディゾルブ タイプ] を使用する場合、出力にこのフィールドはありません。
-
出力フィーチャクラスの ORIG_FID フィールドには、バッファが作成された入力フィーチャの FID が格納されます。入力に ORIG_FID という名前のフィールドが存在する場合、そのフィールドの値は出力で上書きされます。[ALL] または [LIST] の [ディゾルブ タイプ] を使用する場合、出力にこのフィールドはありません。
-
ポリゴン フィーチャをバッファ処理する際には、負数のバッファ距離を使用してポリゴン フィーチャ内部にバッファを作成することができます。負数のバッファ距離を使用すると、ポリゴンの境界を指定距離分減らすことができます。
注意:負数のバッファ距離が大きすぎてポリゴンが消失する場合は、NULL ジオメトリが生成されます。警告メッセージが表示され、NULL ジオメトリのフィーチャは出力フィーチャクラスに書き出されません。
-
入力フィーチャのフィールドからバッファ距離を取得する場合、フィールド値として、数値(5 など)または有効な距離単位の付いた数値(5 Kilometers など)のいずれかを使用できます。フィールド値が数値だけの場合、距離には、入力フィーチャの空間参照の距離単位を使用するとみなされます。ただし、入力フィーチャが地理座標系の場合を除きます。地理座標系の場合、値はメートル単位とみなされます。フィールド値に指定された距離単位が無効であるか、認識できない場合、デフォルトで入力フィーチャの空間参照の距離単位が使用されます。
-
[ディゾルブ フィールド] パラメータの [フィールドの追加] ボタンは、ModelBuilder だけで使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[ディゾルブ フィールド] パラメータにフィールド名が表示されない場合があります。[フィールドの追加] ボタンを使用すると、[ディゾルブ フィールド] リストに必要なフィールドを追加して、[バッファ(Buffer)] ツールのダイアログ ボックスを終了させることができます。
-
ディゾルブ オプションを [NONE] に設定した場合、出力フィーチャクラスには ORIG_FID フィールドが含まれます。出力フィーチャの ORIG_FID 値は、関連する入力フィーチャの ObjectID 値です。
[サイド タイプ](line_side)オプションの LEFT、RIGHT、および OUTSIDE_ONLY、ならびに [エンド タイプ](line_end_type)オプションの FLAT は、Advanced ライセンスのみで使用可能です。
構文
パラメータ | 説明 | データ タイプ |
in_features |
バッファを作成する入力のポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャ。 | Feature Layer |
out_feature_class |
出力バッファを格納するフィーチャクラス。 | Feature Class |
buffer_distance_or_field |
バッファ処理される入力フィーチャの周囲の距離。距離は、直線距離を表す値か、各フィーチャをバッファ処理する距離を含む入力フィーチャのフィールドのいずれかとして指定できます。 距離の単位が指定されないか、不明と入力された場合、入力フィーチャの空間参照の距離単位が使用されます。 スクリプト内で距離を指定する際、使用する距離の単位が「Decimal Degrees」のように 2 つの単語 に分かれている場合は、「20 DecimalDegrees」のように 1 つに結合します。 | Linear unit ;Field |
line_side (オプション) |
バッファ処理される入力フィーチャのサイド。
ライセンス: このオプションのパラメータは、Basic または Standard のライセンスでは利用できません。 | String |
line_end_type (オプション) |
ライン入力フィーチャの端点のバッファの形状。ポリゴン入力フィーチャではこのパラメータを使用できません。
ライセンス: このオプションのパラメータは、Basic または Standard のライセンスでは利用できません。 | String |
dissolve_option (オプション) |
ディゾルブを実行して、バッファの重複を削除します。
| String |
dissolve_field [dissolve_field,...] (オプション) |
入力フィーチャの中で、出力バッファをディゾルブするフィールド。(入力フィーチャから引き継がれる)リスト フィールドの属性値を共有するバッファがディゾルブされます。 | Field |
コードのサンプル
次の Python ウィンドウ スクリプトは、Buffer(バッファ)ツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Buffer_analysis("roads", "C:/output/majorrdsBuffered", "100 Feet", "FULL", "ROUND", "LIST", "Distance")
幹線道路から大きな影響を受けている領域を除外した、植生の領域を検出します。
# Name: Buffer.py
# Description: Find areas of suitable vegetation which exclude areas heavily impacted by major roads
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/Habitat_Analysis.gdb"
# Select suitable vegetation patches from all vegetation
veg = "vegtype"
suitableVeg = "C:/output/Output.gdb/suitable_vegetation"
whereClause = "HABITAT = 1"
arcpy.Select_analysis(veg, suitableVeg, whereClause)
# Buffer areas of impact around major roads
roads = "majorrds"
roadsBuffer = "C:/output/Output.gdb/buffer_output"
distanceField = "Distance"
sideType = "FULL"
endType = "ROUND"
dissolveType = "LIST"
dissolveField = "Distance"
arcpy.Buffer_analysis(roads, roadsBuffer, distanceField, sideType, endType, dissolveType, dissolveField)
# Erase areas of impact around major roads from the suitable vegetation patches
eraseOutput = "C:/output/Output.gdb/suitable_vegetation_minus_roads"
xyTol = "1 Meters"
arcpy.Erase_analysis(suitableVeg, roadsBuffer, eraseOutput, xyTol)