ポリゴンの集約(Aggregate Polygons) (カートグラフィ)
サマリ
特定の距離内のポリゴンを相互に結合して新しいポリゴンを生成します。
図
使用法
-
このツールは、マップ空間の制限または必要とされるデータの解像度が原因で入力フィーチャを個別に表すことができなくなったときに、適度に縮小させて集約を行うことを目的としています。集約は、2 つのポリゴン境界が指定された集約距離内にある場合にのみ行われます。自己集約は行われません。つまり、入力ポリゴン フィーチャ内において境界に沿った集約は行われず、またマルチパート ポリゴン フィーチャのどの部分の間においても集約は行われません。
直交形状を維持するオプションを使用すると、直交形状の出力フィーチャが構築されます。このオプションは、多数のエッジが直交している入力フィーチャに最適です。このオプションを適用すると、集約されるポリゴンが少なくなる場合があります。たとえば、集約距離内で斜めの位置に離して配置された 2 つの四角形の建物は、直角形状の保存中に明確な接続を作成できないため集約されません。非直交形状を維持するオプションでは、より自由造形の形状が生成されます。
-
出力フィーチャクラスには、入力フィーチャからの地理的な属性は一切含まれません。集約されたポリゴンをそのソース ポリゴンにリンクする output_feature_class_Tbl という名前の 1 対多のリレーションシップ テーブルが作成されます。このテーブルは、集約されたフィーチャの ID を格納する OUTPUT_FID とそのソース フィーチャの ID を格納する INPUT_FID の 2 つのフィールドで構成されます。入力フィーチャまたは出力フィーチャが変更されると、リンクが切れることがあります。このリンクを通じて、適切なジオプロセシング ツールを使用して、出力フィーチャに必要な属性をそのソース フィーチャから取得できます。
-
入力フィーチャに Z 値が含まれている場合、その Z 値は、環境設定で指定されていれば、維持することが可能です。出力頂点が変更されていなければ、入力 Z 値は出力頂点に引き継がれます。出力頂点が変更されている場合は、新しい頂点の Z 値が既存の Z 値から、または内挿によって生成されます。
構文
パラメータ | 説明 | データ タイプ |
in_features |
集約するポリゴン フィーチャ。 | Feature Layer |
out_feature_class |
作成される出力フィーチャクラス。 | Feature Class |
aggregation_distance |
この距離は、ポリゴン境界を集約するための条件です。ゼロより大きい距離を指定する必要があります。優先的に適用される単位を選択することができます。デフォルトはフィーチャ単位です。 | Linear unit |
minimum_area (オプション) |
集約されたポリゴンのために保持される最小領域。デフォルト値は 0 であり、すべてのポリゴンが保持されます。使用する単位を指定できます(デフォルトはフィーチャ単位)。 | Areal unit |
minimum_hole_size (オプション) |
保持されるポリゴン ホールの最少サイズ。デフォルト値は 0 であり、すべてのポリゴン ホールが保持されます。使用する単位を指定できます(デフォルトはフィーチャ単位)。 | Areal Unit |
orthogonality_option (オプション) |
集約された境界を構築するときの出力フィーチャの特性を指定します。
| Boolean |
コードのサンプル
次の Python ウィンドウ スクリプトは、AggregatePolygons(ポリゴンの集約)ツールをイミディエイト モードで使用する方法を示しています。
import arcpy from arcpy import env import arcpy.cartography as CA env.workspace = "C:/data" CA.AggregatePolygons("buildings.shp", "C:/output/output.gdb/aggregated_buildings", 10)
次のスタンドアロン スクリプトは、AggregatePolygons(ポリゴンの集約)関数の使用方法を示しています。
# Name: AggregatePolygons_Example2.py # Description: Aggregate grass features and then transfer attributes # Import system modules import arcpy from arcpy import env import arcpy.cartography as CA import arcpy.management as DM import arcpy.analysis as AN # Set environment settings env.workspace = "C:/data/Portland.gdb/Vegetation" # Set local variables inGrassFeatures = "grass" aggregatedFeatures = "C:/data/PortlandOutput.gdb/grassland" aggregatedTable = "C:/data/PortlandOutput.gdb/grassland_Tbl" frequencyTable = "C:/data/PortlandOutput.gdb/frequency_Tbl" # Aggregate grass polygons. CA.AggregatePolygons(inGrassFeatures, aggregatedFeatures, 50, 300, 300, "NON_ORTHOGONAL") # Join the aggregatedTable with input and # transfer the COUNT field to aggregatedTable. DM.JoinField(aggregatedTable, "INPUT_FID", inGrassFeatures, "OBJECTID", "COUNT") # Use Frequency on aggregatedTable and # obtain sum for COUNT. AN.Frequency(aggregatedTable, frequencyTable, "OUTPUT_FID", "COUNT") # Join the aggregatedFeatures with frequencyTable # and transfer the COUNT field to aggregatedFeatures. DM.JoinField(aggregatedFeatures, "OBJECTID", frequencyTable, "OUTPUT_FID", "COUNT")