Skip To Content

ポリゴンの集約 (Aggregate Polygons)

概要

特定の距離内のポリゴンを相互に結合して新しいポリゴンを生成します。

[ポリゴンの集約 (Aggregate Polygons)] の図

使用法

  • このツールは、マップ空間の制限または必要とされるデータの解像度が原因で入力フィーチャを個別に表すことができなくなったときに、適度に縮小させて集約を行うことを目的としています。集約は、2 つのポリゴン境界が指定された集約距離内にある場合にのみ行われます。自己集約は行われません。つまり、入力ポリゴン フィーチャ内において境界に沿った集約は行われず、またマルチパート ポリゴン フィーチャのどの部分の間においても集約は行われません。

  • 直交形状を維持するオプションを使用すると、直交形状の出力フィーチャが構築されます。このオプションは、多数のエッジが直交している入力フィーチャに最適です。このオプションを適用すると、集約されるポリゴンが少なくなる場合があります。たとえば、集約距離内で斜めの位置に離して配置された 2 つの四角形の建物は、直角形状の保存中に明確な接続を作成できないため集約されません。非直交形状を維持するオプションでは、より自由造形の形状が生成されます。

  • バリア フィーチャを使って、集約が境界を越えて発生するのを防ぎます。土地被覆が河川または建物を越えて集約されたり、道路を越えて集約されたりする例があります。バリアは、ラインまたはポリゴンのいずれかです。複数のバリア フィーチャクラスを同時に使用できます。

  • 出力フィーチャクラスには、入力フィーチャからの地理的な属性は一切含まれません。必要に応じて、1 対多のリレーションシップ テーブルを作成して、集約されたポリゴンをソース ポリゴンにリンクできます。入力フィーチャまたは出力フィーチャが変更されると、このリンクが切れることがあります。

  • 入力フィーチャに Z 値が含まれている場合、その Z 値は、環境設定で指定されていれば、維持することが可能です。出力頂点が変更されていなければ、入力 Z 値は出力頂点に引き継がれます。出力頂点が変更されている場合は、新しい頂点の Z 値が既存の Z 値から、または内挿によって生成されます。

  • 大きな入力データセットを処理すると、メモリの制限を超えることがあります。このような場合、[カートグラフィック パーティション] 環境設定で、関連するポリゴン フィーチャクラスを特定することによって、パーティション単位で入力データを処理することを検討します。パーティションの境界によって定義されたデータの一部が順次処理されます。作成された出力フィーチャクラスがパーティション エッジで一致するが、出力フィーチャがパーティションを越えている場合、パーティション ラインで分割されます。出力フィーチャクラスの IS_SPLIT というフィールドでは、このインスタンスに 1 の値が設定されます。

構文

AggregatePolygons(in_features, out_feature_class, aggregation_distance, {minimum_area}, {minimum_hole_size}, {orthogonality_option}, {barrier_features}, {out_table})
パラメーター説明データ タイプ
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
(オプション)

集約された境界を構築するときの出力フィーチャの特性を指定します。

  • NON_ORTHOGONAL自由形状の出力フィーチャが作成されます。植生や土壌ポリゴンなどの、自然界のフィーチャに適しています。これがデフォルト設定です。
  • ORTHOGONAL直交形状の出力フィーチャが作成されます。このオプションは、建物のフットプリントなど、人工的な入力フィーチャのジオメトリック特性の保存に適しています。
Boolean
barrier_features
[barrier_features,...]
(オプション)

入力フィーチャの集約バリアとなるライン フィーチャまたはポリゴン フィーチャが含まれるレイヤー。フィーチャは、バリア フィーチャを越えて集約されません。入力フィーチャとジオメトリック競合するバリア フィーチャは無視されます。

Feature Layer
out_table
(オプション)

集約されたポリゴンをソース ポリゴン フィーチャにリンクする 1 対多のリレーションシップ テーブル。このテーブルは、集約されたフィーチャの ID を格納する OUTPUT_FID とそのソース フィーチャの ID を格納する INPUT_FID の 2 つのフィールドで構成されます。このテーブルを使って、ソース フィーチャから出力フィーチャの必要な属性を取得します。このテーブルのデフォルト名は、出力フィーチャクラスの名前に _tbl を追加した名前になります。デフォルトのパスは、出力フィーチャクラスと同じです。このパラメーターを空白のままにすると、テーブルは作成されません。

Table

コードのサンプル

AggregatePolygons (ポリゴンの集約) ツールの例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで AggregatePolygons ツールを使用する方法を示しています。

import arcpy
arcpy.env.cartographicPartitions = "C:/data/county.gdb/zipcodepoly"
buildings = "C:/data/county.gdb/bldgspoly"
roads = "C:/data/county.gdb/roadnetwork"
output = "C:/data/county.gdb/BldgAggBarrierPartition"
output_table = "C:/data/county.gdb/BldgAggBarrierPartition_Tbl"
arcpy.AggregatePolygons_cartography(buildings, output, "20 Meters", "5 SquareMeters", "0 SquareMeters", "ORTHOGONAL", roads, output_table)
AggregatePolygons (ポリゴンの集約) ツールの例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、AggregatePolygons 関数を使用する方法を示します。

# Name: AggregatePolygons_Example2.py
# Description: Aggregate grass features and then transfer attributes
 
# Import system modules
import arcpy
import arcpy.cartography as CA
import arcpy.management as DM
import arcpy.analysis as AN
  
# Set environment settings
arcpy.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", "", aggregatedTable)
 
# 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")

ライセンス情報

  • Basic: いいえ
  • Standard: いいえ
  • Advanced: はい

関連トピック