ペアワイズ バッファー (Pairwise Buffer) (解析)

サマリー

並列処理方法を使用して、入力フィーチャの周囲に指定した距離のバッファー ポリゴンを作成します。

バッファー操作には、代替ツールが利用できます。 詳細については、[バッファー (Buffer)] および [グラフィック バッファー (Graphic Buffer)] ツールのドキュメントをご参照ください。

ペアワイズ バッファー ツールの図

使用法

  • すべての入力に空間インデックスが必要です。 インデックスが誤っている可能性がある場合は、[空間インデックスの追加 (Add Spatial Index)] ツールを使用して、インデックス (特にシェープファイル) を作成するか、既存のインデックスを再構築します。

  • バッファーの詳細」で説明したように、[バッファー (Buffer)] ツールの重要な機能は、バッファーが構築される方法を指定する [方法] パラメーターです。 バッファーを構築するための 2 つの基本的な方法であるユークリッドと測地線は、次のとおりです。

    • ユークリッド バッファーは、二次元のデカルト平面内で距離を計測します。そこでは、距離が、平面上の 2 点間で計算されます。 ユークリッド バッファーは、投影座標系内の比較的狭い領域 (UTM ゾーンなど) でフィーチャ周辺の距離を解析する場合に適しています。
    • 測地線バッファーは、地球の形状 (楕円体、より正確にはジオイド) を形成します。 曲面 (ジオイド) 上の 2 点間の距離が計算されます。 測地線バッファーは、次のような場合に適切です。
      • 入力フィーチャが分散している場合 (複数の UTM ゾーン、広い領域、または地球全体をカバーしている場合)。
      • 入力フィーチャの空間参照 (地図投影法) によって、面積などの他の特性を保護するために距離が歪んでしまう場合。
      測地線バッファーは、平面マップ上では異常に見えます。 これらのバッファーをグローブに表示した場合、正常な外観になります。 詳細については、「バッファーの詳細」をご参照ください。

    [方法] パラメーターは、バッファーの作成方法を指定します。

    • デフォルトは、[平面]です。 このオプションを指定すると、入力の座標系に基づいて、使用する方法が自動的に決定されます。
      • 入力フィーチャで投影座標系が使用されている場合、ユークリッド バッファーが作成されます。
      • 入力フィーチャで地理座標系が使用されており、[バッファー距離] 値を距離単位 (度などの角度単位ではなく、メートル、フィートなど) で指定した場合、測地線バッファーが作成されます。
      • このオプションでは、ArcGIS 10.3 よりも前の [バッファー (Buffer)] ツールと同じ結果が生成されます。
    • [測地線] オプションを指定すると、どの入力座標系でも、形状が正確に維持された測地線バッファーが作成されます。 入力フィーチャの形状をより正確に表現するバッファーを作成するために、入力フィーチャに頂点が挿入されます。 このオプションを使用すると、[平面] オプションを使用して測地線バッファーを作成する場合よりも時間がかかることがあります。 しかし、入力フィーチャの形状に正確に一致したバッファーが作成されます。

    注意:

    フィーチャクラスの座標系は、[投影変換 (Project)] ツールを使用して変更できます。または、[バッファー (Buffer)] ツールを実行する前に出力データの座標系環境を設定して、バッファーの作成時にこの座標系を使用することができます。

    [平面] オプションを使用する際は、地理的に入力に適した正距円錐図法正距方位図法などの、距離の歪みを最小にする投影法を使用することで、投影された入力から作成されるバッファーの精度を上げることができます。

  • 入力が投影座標系で、出力がジオデータベース フィーチャクラスの場合、出力に円弧線分が含まれることがあります。 入力がポイント フィーチャクラスの場合、出力は常に円弧になります。 円弧が別の座標系に投影変換される場合、元のバッファーの位置とサイズが変換されます。 バッファーの形状は変わらないため、投影変換後のバッファーは、元のバッファーがカバーする面積を正確に表しません。 円弧を投影変換する場合は、[頂点の挿入(Densify)] ツールを使用して円弧を直線に変換してから、高密度のバッファーを投影変換します。

  • 出力フィーチャクラスの BUFF_DIST フィールドには、各フィーチャのバッファー処理に使用するバッファー距離が、入力の座標系の距離単位で格納されます。 バッファーの作成に [測地線] オプションを使用している場合、入力したバッファー距離はメートルに変換されます。

    入力に BUFF_DIST というフィールドが存在する場合、そのフィールドの値は出力で上書きされます。 [ディゾルブ タイプ] の値として [すべて] または [リスト] を使用する場合、出力にこのフィールドは含まれません。

  • 出力フィーチャクラスの ORIG_FID フィールドには、バッファーが作成された入力フィーチャのフィーチャ ID が格納されます。 入力に ORIG_FID というフィールドが存在する場合、そのフィールドの値は出力で上書きされます。 [ディゾルブ タイプ] の値として [すべて] または [リスト] を使用する場合、出力にこのフィールドは含まれません。

  • ポリゴン フィーチャをバッファー処理する際には、負数のバッファー距離を使用してポリゴン フィーチャ内部にバッファーを作成することができます。 負数のバッファー距離を使用すると、ポリゴンの境界を指定距離分減らすことができます。

    注意:

    負数のバッファー距離が大きすぎてポリゴンが消失する場合は、NULL ジオメトリが生成されます。 警告メッセージが表示され、NULL ジオメトリのフィーチャは出力フィーチャクラスに書き出されません。

  • 入力のフィールドを使用してバッファー距離を設定できます。 数値フィールドとテキスト フィールドを使用できます。 テキスト フィールドには、バッファー距離として 5 などの数字や、5 kilometers のような有効な距離単位を格納できます。

    距離単位のない数値を使用すると、バッファーの単位は、入力の空間参照の距離単位になります。 入力が地理座標系の場合、バッファーの単位はメートルになります。

    距離単位を認識できない場合、バッファーの単位は、入力の空間参照の距離単位になります。 有効な距離単位については「距離単位」をご参照ください。

    バッファー距離を示すバッファー フィールドの使用
  • バッファー操作は、入力から出力バッファー フィーチャへの Z 値の変換をサポートしていません。

  • バッファー操作は、入力から出力バッファー フィーチャへの M 値の変換をサポートしていません。

  • このツールは、並列処理ファクター環境を優先します。 この環境が設定されていない場合 (デフォルト) や 100 に設定されている場合、フル並列処理が有効になり、ツールはコンピューター上のすべての論理コアに作業を分配しようとします。 この環境を 0 に設定した場合、並列処理は有効になりません。 ファクターを 1 ~ 99 に指定すると、ツールは数式 (並列処理ファクター / 100 * 論理コア) の小数部を切り上げた整数を適用して、使用する論理コアの割合を特定します。 この数式の結果が 0 または 1 の場合、並列処理は有効化されません。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

バッファーを作成する入力のポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャ。

Feature Layer
出力フィーチャクラス

出力バッファーを格納するフィーチャクラス。

Feature Class
バッファーの距離 [値またはフィールド]

バッファー処理する入力フィーチャの周囲の距離。 距離は、直線距離を表す値か、各フィーチャをバッファー処理する距離を含む入力フィーチャのフィールドのいずれかとして指定できます。

距離の単位が指定されないか、不明と入力された場合、入力フィーチャの空間参照の距離単位が使用されます。

Linear Unit; Field
ディゾルブ タイプ
(オプション)

バッファーのオーバーラップを削除するために実行されるディゾルブ操作のタイプを指定します。

  • なし重複の有無にかかわらず、各フィーチャの個々のバッファーが維持されます。 これがデフォルトです。
  • すべてディゾルブすべてのバッファーが 1 つのフィーチャにディゾルブされ、すべての重複が削除されます。
  • リスト フィールドの属性値が共通のバッファーをディゾルブ(入力フィーチャから引き継がれる) リスト フィールドの属性値を共有するバッファーがディゾルブされます。
String
ディゾルブ フィールド
(オプション)

出力バッファーをディゾルブするために使用する入力フィーチャからのフィールドのリスト。 (入力フィーチャから引き継がれる) リスト フィールドの属性値を共有するバッファーがディゾルブされます。

Field
方法
(オプション)

バッファーを作成するために使用される方法 (平面または測地線) を指定します。

  • 平面入力フィーチャで投影座標系が使用されている場合、ユークリッド バッファーが作成されます。 入力フィーチャで地理座標系が使用されている際に、バッファーの距離が距離単位 (度などの角度単位ではなく、メートルやフィートなど) の場合は、測地線バッファーが作成されます。 これがデフォルトです。[出力データの座標系] 環境設定で、使用する座標系を指定できます。 たとえば、入力フィーチャで投影座標系が使用されている場合、環境を地理座標系に設定することで、測地系バッファーを作成できます。
  • 測地線 (形状を維持)すべてのバッファーは、入力データの座標系にかかわらず、形状を維持した測地系バッファー方法を使用して作成されます。
String
最大オフセット偏差
(オプション)

結果の出力バッファー ポリゴン境界が、トゥルー バッファー境界から乖離する最大距離。

トゥルー バッファー境界は曲線です。 一方、結果のポリゴン境界は密集化したポリラインです。 このパラメーターを使用すると、出力ポリゴン境界がトゥルー バッファー境界に近似する程度を制御できます。

このパラメーターが設定されていない場合や 0 に設定されている場合、ツールによって最大偏差が特定されます。 デフォルトの値を使用することをお勧めします。 最大オフセット偏差が小さすぎる場合、(ツールやそれ以降の解析において) パフォーマンスが低下する可能性があります。

詳細については、[頂点の挿入 (Densify)] ツールのドキュメントに含まれる [最大オフセット偏差] パラメーターの情報をご参照ください。

Linear Unit

arcpy.analysis.PairwiseBuffer(in_features, out_feature_class, buffer_distance_or_field, {dissolve_option}, {dissolve_field}, {method}, {max_deviation})
名前説明データ タイプ
in_features

バッファーを作成する入力のポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャ。

Feature Layer
out_feature_class

出力バッファーを格納するフィーチャクラス。

Feature Class
buffer_distance_or_field

バッファー処理する入力フィーチャの周囲の距離。 距離は、直線距離を表す値か、各フィーチャをバッファー処理する距離を含む入力フィーチャのフィールドのいずれかとして指定できます。

距離の単位が指定されないか、不明と入力された場合、入力フィーチャの空間参照の距離単位が使用されます。

スクリプト内で距離を指定する際、距離の単位が「Decimal Degrees」のように 2 つの単語に分かれている場合は、「20 DecimalDegrees」のように 1 つに結合します。

Linear Unit; Field
dissolve_option
(オプション)

バッファーのオーバーラップを削除するために実行されるディゾルブ操作のタイプを指定します。

  • NONE重複の有無にかかわらず、各フィーチャの個々のバッファーが維持されます。 これがデフォルトです。
  • ALLすべてのバッファーが 1 つのフィーチャにディゾルブされ、すべての重複が削除されます。
  • LIST(入力フィーチャから引き継がれる) リスト フィールドの属性値を共有するバッファーがディゾルブされます。
String
dissolve_field
[dissolve_field,...]
(オプション)

出力バッファーをディゾルブするために使用する入力フィーチャからのフィールドのリスト。 (入力フィーチャから引き継がれる) リスト フィールドの属性値を共有するバッファーがディゾルブされます。

Field
method
(オプション)

バッファーを作成するために使用される方法 (平面または測地線) を指定します。

  • PLANAR入力フィーチャで投影座標系が使用されている場合、ユークリッド バッファーが作成されます。 入力フィーチャで地理座標系が使用されている際に、バッファーの距離が距離単位 (度などの角度単位ではなく、メートルやフィートなど) の場合は、測地線バッファーが作成されます。 これがデフォルトです。[出力データの座標系] 環境設定で、使用する座標系を指定できます。 たとえば、入力フィーチャで投影座標系が使用されている場合、環境を地理座標系に設定することで、測地系バッファーを作成できます。
  • GEODESICすべてのバッファーは、入力データの座標系にかかわらず、形状を維持した測地系バッファー方法を使用して作成されます。
String
max_deviation
(オプション)

結果の出力バッファー ポリゴン境界が、トゥルー バッファー境界から乖離する最大距離。

トゥルー バッファー境界は曲線です。 一方、結果のポリゴン境界は密集化したポリラインです。 このパラメーターを使用すると、出力ポリゴン境界がトゥルー バッファー境界に近似する程度を制御できます。

このパラメーターが設定されていない場合や 0 に設定されている場合、ツールによって最大偏差が特定されます。 デフォルトの値を使用することをお勧めします。 最大オフセット偏差が小さすぎる場合、(ツールやそれ以降の解析において) パフォーマンスが低下する可能性があります。

詳細については、[頂点の挿入 (Densify)] ツールのドキュメントに含まれる max_deviation パラメーターの情報をご参照ください。

Linear Unit

コードのサンプル

PairwiseBuffer の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、PairwiseBuffer 関数の使用方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.analysis.PairwiseBuffer("roads", "C:/output/majorrdsBuffered", "100 Feet", 
                              "LIST", "Distance")
PairwiseBuffer の例 2 (スタンドアロン スクリプト)

幹線道路から大きな影響を受けている領域を除外した、植生の領域を検出します。

# Name: PairwiseBuffer.py
# Description: Find areas of suitable vegetation that exclude areas heavily 
#              impacted by major roads.

# Import system modules 
import arcpy

# Set environment settings
arcpy.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.analysis.Select(veg, suitableVeg, whereClause)

# Buffer areas of impact around major roads
roads = "majorrds"
roadsBuffer = "C:/output/Output.gdb/buffer_output"
distanceField = "Distance"
dissolveType = "LIST"
dissolveField = "Distance"
arcpy.analysis.PairwiseBuffer(roads, roadsBuffer, distanceField, 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.analysis.Erase(suitableVeg, roadsBuffer, eraseOutput, xyTol)

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック