ジオメトリの最小範囲 → ポリゴン(Minimum Bounding Geometry) (データ管理)
サマリ
各入力フィーチャまたは各入力フィーチャ グループを囲む、所定の最小範囲のジオメトリを表すポリゴンを格納するフィーチャクラスを作成します。
図
使用法
-
出力ポリゴン フィーチャとその属性は、ジオメトリ タイプおよびグループ化の選択肢をどのように指定するかに応じて異なります。
-
ダイアログ ボックス上の [グループ オプション] パラメータ(スクリプト中では group_option パラメータ)を指定すると、出力ポリゴンと属性に次のような影響がおよびます。
- NONE を使用すると、入力フィーチャは一切グループ化されなくなります。入力フィーチャごとに出力ポリゴン フィーチャが作成されるので、結果として生成されたポリゴンが重なり合う場合もあります。入力フィーチャの属性は、出力フィーチャクラス内に保持されます。その出力フィーチャクラスに追加された新しいフィールド ORIG_FID は、入力フィーチャ ID に設定されます。
- ALL を使用すると、すべての入力フィーチャに対して 1 つの出力ポリゴン フィーチャが作成されます。入力フィーチャの属性は、出力フィーチャクラス内に保持されません。
- LIST を使用すると、指定したグループ フィールド(1 つまたは複数)内のフィールド値が同じ入力フィーチャ セット同士がそれぞれ、グループとして扱われるようになります。グループごとに出力ポリゴン フィーチャが作成されるので、結果として生成されたポリゴンが重なり合う場合もあります。グループ フィールド(1 つまたは複数)として使用されている入力フィーチャの属性は、出力フィーチャクラス内に保持されます。
-
各ジオメトリ タイプは、1 つまたは複数の一意の計測値として特徴付けられます。これらの計測値は、下に示すように、適宜出力に新しいフィールドとして追加できます。幅、長さ、および直径の値はフィーチャ単位で、方向角度(10 進度)は北から時計方向に計測されます。接頭辞 MBG_ は、最小範囲のジオメトリ フィールドを示します。
- RECTANGLE_BY_AREA、および RECTANGLE_BY_WIDTH の場合、新しいフィールドと計測値は次のとおりです。
- MBG_Width - 結果として生成された長方形の短辺の長さ。
- MBG_Length - 結果として生成された長方形の長辺の長さ。
- MBG_Orientation - 結果として生成された長方形の長辺の向き。
- ENVELOPE の場合、新しいフィールドと計測値は次のとおりです
- MBG_Width - 結果として生成された長方形の短辺の長さ。
- MBG_Length - 結果として生成された長方形の長辺の長さ。
- Convex Hull(凸包)の場合、新しいフィールドと計測値は次のとおりです
- MBG_Width - 凸包の 2 頂点間の最短距離。(複数ペアの頂点間に見つかった場合でも、最初に見つかった最短距離が使用されます。)
- MBG_Length - 対蹠ペアまたは対蹠ポイントと呼ばれる、凸包の 2 頂点間の最長距離。(複数ペアの頂点間に見つかった場合でも、最初に見つかった最短距離が使用されます。)
- MBG_APodX1 - 対蹠ペアの最初のポイントの X 座標。
- MBG_APodY1 - 対蹠ペアの最初のポイントの Y 座標。
- MBG_APodX2 - 対蹠ペアの 2 番目のポイントの X 座標。
- MBG_APodY2 - 対蹠ペアの 2 番目のポイントの Y 座標。
- MBG_Orientation - 対蹠ペアを接続している想像線の向き。
- CIRCLE(円)の場合、新しいフィールドと計測値は次のとおりです
- MBG_Diameter - 結果として生成された円の直径。
- RECTANGLE_BY_AREA、および RECTANGLE_BY_WIDTH の場合、新しいフィールドと計測値は次のとおりです。
-
入力フィーチャの特殊な例では、無効な(面積ゼロの)出力ポリゴンが生成されます。このような場合、入力フィーチャの XY 許容値から導き出された小さい値を幅、長さ、または直径として使用して出力ポリゴンが作成されます。これらのポリゴンは、フィーチャを追跡するための「プレースホルダ」として機能します。デフォルトのポリゴン アウトライン幅を使用していて、結果として生成されたポリゴンが ArcMap に「表示されない」場合に表示されるようにするには、アウトラインのライン シンボルを太く変更してください。このような変更が必要になるのは、次のような状況のときです。
- マルチポイント フィーチャに 1 つのポイントしか格納されていない場合やそのようなフィーチャのグループが一致している場合に、RECTANGLE_BY_AREA、RECTANGLE_BY_WIDTH、CONVEX_HULL、および ENVELOPE ジオメトリ タイプのポイントの周囲と、CIRCLE ジオメトリ タイプの極小の円の周囲に、極小の矩形ポリゴンが作成されたとき。MBG_Width、MBG_Length、MBG_Orientation、および MBG_Diameter の値は、このような状況を示す 0 に設定されます。
- 入力フィーチャまたは入力フィーチャ グループ(たとえば、水平ライン フィーチャ、垂直ライン フィーチャ、2 ポイントのマルチポイント フィーチャ)が完全に整合している場合、フィーチャの周囲に極小幅の長方形ポリゴンが作成されます。これが適用される対象のジオメトリ タイプは RECTANGLE_BY_AREA、RECTANGLE_BY_WIDTH、CONVEX_HULL、および ENVELOPE で、結果として生成された MBG_Width の値は、このような状況を示す 0 に設定されます。
[ジオメトリ タイプ](geometry_type)のオプション CONVEX_HULL、CIRCLE、および ENVELOPE は ArcGIS for Desktop Advanced ライセンスでのみ使用可能です。
構文
パラメータ | 説明 | データ タイプ |
in_features |
入力フィーチャ。入力フィーチャはポイント、マルチポイント、ライン、ポリゴン、またはマルチパッチです。 | Feature Layer |
out_feature_class |
出力ポリゴン フィーチャクラス | Feature Class |
geometry_type (オプション) |
出力ポリゴンによって表される、最小範囲のジオメトリのタイプを指定します。
ライセンス: CONVEX_HULL、CIRCLE、および ENVELOPE オプションは、ArcGIS for Desktop Advanced ライセンスでのみ使用可能です。 | String |
group_option (オプション) |
各グループを 1 つの出力ポリゴンで囲む入力フィーチャを、どのようにグループ化するかについて指定します。
| String |
group_field [group_field,...] (オプション) |
グループ オプションとして LIST を指定した場合に、フィーチャをグループ化する際に使用される入力フィーチャ内のフィールド(1 つまたは複数)。LIST オプションを使用するには、少なくとも 1 つのグループ フィールドを指定する必要があります。指定したフィールド(1 つまたは複数)内の値が同じフィーチャ同士はそれぞれ、グループとして扱われます。 | Field |
mbg_fields_option (オプション) |
出力フィーチャクラスのジオメトリ属性を追加するかそれとも省略するかを指定します。
| Boolean |
コードのサンプル
次の Python ウィンドウ スクリプトは、MinimumBoundingGeometry(ジオメトリの最小範囲 → ポリゴン)関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.MinimumBoundingGeometry_management("parks.shp",
"c:/output/output.gdb/parks_mbg",
"RECTANGLE_BY_AREA", "NONE")
次のスタンドアロン スクリプトは、スクリプト環境で MinimumBoundingGeometry(ジオメトリの最小範囲 → ポリゴン)関数を適用する方法を示した単純な例です。
# Name: MinimumBoundingGeometry.py
# Description: Use MinimumBoundingGeometry function to find an area
# for each multipoint input feature.
# Author: ESRI
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Create variables for the input and output feature classes
inFeatures = "treeclusters.shp"
outFeatureClass = "forests.shp"
# Use MinimumBoundingGeometry function to get a convex hull area
# for each cluster of trees which are multipoint features
arcpy.MinimumBoundingGeometry_management(inFeatures, outFeatureClass,
"CONVEX_HULL", "NONE")