ポリゴンの集約 (Aggregate Polygons) (カートグラフィ)

サマリー

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

ポリゴンの集約ツールの図
直交フィーチャまたは非直交フィーチャを集約できます。

使用法

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

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

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

  • [集約フィールド] パラメーターを定義すると、属性フィールドとその値が出力フィーチャクラスにコピーされます。 集約フィールドは、テキスト、日付、または整数のデータ タイプである必要があります。 集約フィールドにドメインとサブタイプがある場合は、「ジオデータベース フィールド プロパティの転送 (環境設定)」がオンの場合に、出力フィーチャクラスにコピーされます。

  • 重なっているポリゴン フィーチャが集約されます。 [集約フィールド] パラメーターが定義され、重なっているフィーチャの集約フィールド値が異なっている場合、予期しない結果が生じることがあります。

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

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

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

パラメーター

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

集約するポリゴン フィーチャ。 これがリプレゼンテーションを参照するレイヤーで、シェープ オーバーライドが入力フィーチャに存在する場合、フィーチャ シェープではなくオーバーライドされたシェープが集積処理の対象になります。

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

作成される出力フィーチャクラス。

Feature Class
集約距離

この距離は、ポリゴン境界を集約するための条件です。 ゼロより大きい距離を指定する必要があります。 優先的に適用される単位を選択することができます。デフォルトはフィーチャ単位です。

Linear Unit
最小エリア
(オプション)

集約されたポリゴンのために保持される最小領域。 デフォルト値は 0 であり、すべてのポリゴンが保持されます。 単位は自由に指定できます。デフォルトはフィーチャの単位です。

Areal Unit
ホールの最小サイズ
(オプション)

保持されるポリゴン ホールの最小サイズ。 デフォルト値は 0 であり、すべてのポリゴン ホールが保持されます。 単位は自由に指定できます。デフォルトはフィーチャの単位です。

Areal Unit
直交形状を保持
(オプション)

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

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

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

Feature Layer
出力テーブル
(オプション)

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

Table
集約フィールド
(オプション)

集約する属性を含むフィールド。 フィーチャを集約の対象として考慮するには、同じ属性値を持つ必要があります。 たとえば、建物分類フィールドを集約フィールドとして使用し、商業ビルと住居用ビルが集約されないように防ぎます。

Field

arcpy.cartography.AggregatePolygons(in_features, out_feature_class, aggregation_distance, {minimum_area}, {minimum_hole_size}, {orthogonality_option}, {barrier_features}, {out_table}, {aggregate_field})
名前説明データ タイプ
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 を追加した名前になります。 デフォルトのパスは、出力フィーチャクラスと同じです。 フィーチャ データセットで出力フィーチャの場所が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにこのテーブルが作成されます。 このパラメーターを空白のままにすると、テーブルは作成されません。

Table
aggregate_field
(オプション)

集約する属性を含むフィールド。 フィーチャを集約の対象として考慮するには、同じ属性値を持つ必要があります。 たとえば、建物分類フィールドを集約フィールドとして使用し、商業ビルと住居用ビルが集約されないように防ぎます。

Field

コードのサンプル

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

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

この例では、同じ分類値を持つフィーチャを集約するために、分類フィールドを使用します。 集約フィールドのドメインやサブタイプなどのジオデータベース フィールドのプロパティを出力フィーチャクラスに転送するには、環境設定を使用します。

import arcpy
arcpy.env.cartographicPartitions = "C:/data/county.gdb/zipcodepoly"
arcpy.env.transferGDBAttributeProperties = True

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"
aggregate_field = "Classification"

arcpy.cartography.AggregatePolygons(buildings, output, "20 Meters", 
                                    "50 SquareMeters", "0 SquareMeters", 
                                    "ORTHOGONAL", roads, output_table, 
                                    aggregate_field)
AggregatePolygons の例 2 (スタンドアロン スクリプト)

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

# Name: AggregatePolygons_Example2.py
# Description: Aggregate grass features and then transfer attributes
 
# Import system modules
import arcpy
  
# 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.
arcpy.cartography.AggregatePolygons(inGrassFeatures, aggregatedFeatures, 50, 
                                    300, 300, "NON_ORTHOGONAL", "", 
                                    aggregatedTable)

# Join the aggregatedTable with input and transfer the COUNT field to 
# aggregatedTable.
arcpy.management.JoinField(aggregatedTable, "INPUT_FID", inGrassFeatures, 
                           "OBJECTID", "COUNT")
 
# Use Frequency on aggregatedTable and obtain sum for COUNT.
arcpy.analysis.Frequency(aggregatedTable, frequencyTable, "OUTPUT_FID", "COUNT")

# Join the aggregatedFeatures with frequencyTable and transfer the COUNT 
# field to aggregatedFeatures.
arcpy.management.JoinField(aggregatedFeatures, "OBJECTID", frequencyTable, 
                           "OUTPUT_FID", "COUNT")

ライセンス情報

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

関連トピック