バッファ(Buffer) (解析)
サマリ
指定した距離に基づき、入力フィーチャの周囲にバッファ ポリゴンを作成します。必要であれば、ディゾルブを実行して、重なり合う複数のバッファを結合できます。
図
使用法
-
-
広範囲をカバーするフィーチャが含まれる投影変換されたフィーチャクラスをバッファ処理する場合、または非常に大きなバッファ距離を使用している場合は、投影変換の歪みにより誤ったバッファが生成される可能性があります。
- ポイントまたはマルチポイント入力 - 地理座標系を持つフィーチャクラスを使用し、[バッファの距離] を距離単位(度などの角度単位ではなく、メートルやフィートなど)で指定することにより、ポイントをバッファ処理する際の歪みを完全に避けることができます。入力にこの組み合わせ(距離単位でバッファ処理された地理座標系のポイントまたはマルチポイント フィーチャ)を使用する場合、出力は正確な測地線バッファになります。測地線バッファは、平面マップでは楕円で表示され、グローブで表示した場合にだけ完全な円として表示されます(地理データを 3D グローブで表示するには、ArcGlobe または ArcGIS Explorer アプリケーションを使用します)。
- ラインまたはポリゴン入力 - 正距円錐図法や正距方位図法などの、距離の歪みを最小にする投影変換を使用することでのみ、歪みを最小化できます。
入力フィーチャクラスの座標系は、[投影変換(Project)] ツールを使用して変更できます。または、[バッファ(Buffer)] ツールを実行する前に [出力データの座標系] ジオプロセシング環境を設定して、指定した座標系をバッファの作成に使用することができます。
詳細については、「バッファの仕組み」をご参照ください。
-
ポリゴン フィーチャをバッファ処理する際には、負数のバッファ距離を使用してポリゴン フィーチャ内部にバッファを作成することができます。負数のバッファ距離を使用すると、ポリゴンの境界を指定距離分減らすことができます。
注意:負数のバッファ距離が大きすぎてポリゴンが消失する場合は、NULL ジオメトリが生成されます。警告メッセージが表示され、NULL ジオメトリのフィーチャは出力フィーチャクラスに書き出されません。
-
[バッファ(Buffer)] ツールの出力が、ユニオンまたはインターセクトなどのオーバーレイ操作で入力として使用される場合、ツールによって生成される重複フィーチャの数を減らすために、[ディゾルブ タイプ] オプションの [LIST] または [ALL] を使用することをお勧めします。[ディゾルブ タイプ] オプションの [LIST] を使用し、[ディゾルブ フィールド] で、実行する分析に必要な入力フィーチャの属性だけを選択します。これによって、オーバーレイ操作に関係するデータセット間の空間的な関連性の数が減少して、処理に必要なメモリの量や時間が削減されます。
-
[ディゾルブ タイプ] オプションの [NONE] を使用すると、出力フィーチャクラスに [BUFF_DIST] フィールドが追加されます。このフィールドには、各フィーチャのバッファ処理に使用するバッファ距離が、入力フィーチャの座標系の距離単位で格納されます。
-
入力フィーチャのフィールドをバッファ距離の取得に使用する場合、フィールド値として、数値(5 など)または有効な距離単位の付いた数値(5 キロメートルなど)のいずれかを使用できます。フィールド値が数値だけの場合、これらの距離には入力フィーチャの空間参照の距離単位が使用されることになります。任意の有効な距離単位とともにフィールド値を入力すると、フィーチャには指定された距離のバッファが作成されます。フィールド値に指定された距離単位が無効であるか、認識できない場合、デフォルトで入力フィーチャの空間参照の距離単位が使用されます。
-
[ディゾルブ タイプ] オプションを [ALL] または [LIST] に設定すると、[バッファ(Buffer)] ツールによって非常に大きなマルチパート ポリゴン フィーチャを作成する場合があります。一意の値がほとんどないディゾルブ フィールドを使用する場合や、すべてのポリゴンを 1 つのポリゴンにディゾルブする場合などがこれに該当します。非常に大きなポリゴン フィーチャは、マップ上に描画されたり、編集された場合に、表示の問題やパフォーマンスの低下の原因となる場合があります。このような問題を回避するには、[バッファ(Buffer)] ツールの出力時に [マルチパート → シングルパート(Multipart to Singlepart)] を使用して、大きなマルチパート フィーチャを多数の小さいフィーチャに分割します。
-
ディゾルブ タイプ [ALL] および [LIST] の仕組みの詳細については、[ディゾルブ(Dissolve)] ツールに関するドキュメントをご参照ください。
-
バッファ距離がゼロ(0)の場合、フィーチャはバッファ プロセスから除外されます。
-
左側または右側のバッファによって作成されるバッファ エッジは、バッファの作成に使用されるアルゴリズムの違いのため、完全なバッファによって作成されるバッファ エッジとはやや異なるものになります。両者の違いは、入力フィーチャの精度の違いによるものです。
-
[ディゾルブ フィールド] パラメータの [フィールドの追加] ボタンは、ModelBuilder だけで使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[ディゾルブ フィールド] パラメータにフィールド名が表示されない場合があります。[フィールドの追加] ボタンを使用すると、[ディゾルブ フィールド] リストに必要なフィールドを追加して、[バッファ(Buffer)] ツールのダイアログ ボックスを終了させることができます。
サイド タイプ(line_side)オプションの LEFT、RIGHT、および OUTSIDE_ONLY と、エンド タイプ(line_end_type)オプションの FLAT は、ArcInfo ライセンスがある場合のみ使用可能です。
構文
パラメータ | 説明 | データ タイプ |
in_features |
バッファを作成する入力のポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャ。 | Feature Layer |
out_feature_class |
出力フィーチャ バッファを格納するフィーチャクラス。 | Feature Class |
buffer_distance_or_field |
バッファ ゾーンが作成される入力フィーチャ周囲の距離。距離は、直線距離を表す値か、各フィーチャをバッファ処理するための直線距離を含む入力フィーチャの数値フィールドのいずれかとして指定できます。 距離の単位が指定されないか、不明と入力された場合、入力フィーチャの空間参照の距離単位が使用されます。 | Linear unit ; Field |
line_side (オプション) |
バッファ処理される入力フィーチャのサイド。
ライセンス: このオプションのパラメータは、ArcView または ArcEditor ライセンスでは利用できません。 | String |
line_end_type (オプション) |
ライン入力フィーチャの端点のバッファの形状。ポリゴン入力フィーチャではこのパラメータを使用できません。
ライセンス: このオプションのパラメータは、ArcView または ArcEditor ライセンスでは利用できません。 | String |
dissolve_option (オプション) |
ディゾルブを実行して、出力バッファの重複を削除します。
| String |
dissolve_field [dissolve_field,...] (オプション) |
入力フィーチャの中で、出力バッファをディゾルブするフィールド。(入力フィーチャから引き継がれる)リスト フィールドの属性値を共有するバッファがディゾルブされます。 | Field |
コードのサンプル
次の Python ウィンドウ スクリプトはバッファ ツールを使用する方法を示しています。
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 # Author: ESRI # 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)