概要
ポリゴン レイヤーを別のレイヤーに重ねて、各ポリゴン内のポイント数、ラインの長さ、またはポリゴンの面積を集計し、各ポリゴン内のフィーチャに関して属性フィールドの統計情報を計算します。
[エリア内での集計 (Summarize Within)] を使用する例として、以下のシナリオがあります。
- 集水域境界線のレイヤーと、土地利用タイプ別土地利用境界線のレイヤーを基に、各集水域の土地利用タイプの総面積を計算する。
- 郡の土地区画のレイヤーと都市の境界線のレイヤーを基に、各都市の境界内にある空 (から) の土地区画の平均値を集計する。
- 郡のレイヤーと道路のレイヤーを基に、各郡内の道路タイプ別に道路の距離をサマリー処理する。
図
使用法
[エリア内での集計 (Summarize Within)] の処理は、2 つのレイヤー、入力ポリゴン、および入力集計フィーチャを受け取って、それらを積み重ねることと考えられます。各レイヤーを積み重ねてから、そのスタックを見下ろして、入力ポリゴン内にある入力集計フィーチャの数をカウントします。フィーチャの数をカウントできるだけでなく、入力集計フィーチャの属性に関する合計、平均、最小、最大などの単純な統計情報を計算できます。
[エリア内での集計 (Summarize Within)] ツールと [近接範囲内での集計 (Summarize Nearby)] ツールは、概念的に同じです。[エリア内での集計 (Summarize Within)] ツールでは、既存のポリゴン内のフィーチャを集計できますが、[近接範囲内での集計 (Summarize Nearby)] ツールでは、ポイント、ライン、またはポリゴンの周囲にエリアを生成し、それらのエリア内のフィーチャを集計することができます。
グループ フィールドを指定することで、入力ポイントからグループを作成できます。たとえば、近隣境界内の犯罪を集計する場合に、5 つの異なる犯罪タイプを持つ属性 Crime_type があるとします。一意の犯罪タイプごとに 1 つのグループが形成され、選択した統計情報が、Crime_type の一意の値に対して計算されます。
構文
arcpy.analysis.SummarizeWithin(in_polygons, in_sum_features, out_feature_class, {keep_all_polygons}, {sum_fields}, {sum_shape}, {shape_unit}, {group_field}, {add_min_maj}, {add_group_percent}, {out_group_table})
パラメーター | 説明 | データ タイプ |
in_polygons | 入力集計レイヤー内のフィーチャまたはフィーチャの一部の集計に使用するポリゴン。 | Feature Layer |
in_sum_features | 入力ポリゴンごとに集計する、ポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャ。 | Feature Layer |
out_feature_class | 入力ポリゴンと同じジオメトリおよび属性に加えて、各入力ポリゴン内のポイントの数、ラインの長さ、ポリゴンの面積、および、それらのフィーチャについての統計情報に関する新しい属性を含む出力ポリゴン フィーチャクラス。 | Feature Class |
keep_all_polygons (オプション) | 出力フィーチャクラスにすべての入力ポリゴンをコピーするのか、それとも 1 つ以上の入力ポイントを含んでいる入力ポリゴンのみをコピーするのかを指定します。
| Boolean |
sum_fields [[summary_field, statistic_type],...] (オプション) | 入力集計フィーチャの属性フィールド名、および、それらの属性フィールドについて計算する統計の種類のリスト。統計値は、各ポリゴンに含まれるすべてのポイントについて計算されます。 集計フィールドの値は数値でなければなりません。テキストなどの他の属性フィールド タイプはサポートされていません。 統計の種類は以下のとおりです。
| Value Table |
sum_shape (オプション) | 各入力ポリゴン内で集計されたポイントの数、ラインの長さ、およびポリゴンの面積に関する属性を出力フィーチャクラスに含めるかどうかを指定します。
| Boolean |
shape_unit (オプション) | シェープ属性の集計で使用する単位。入力集計フィーチャがポイントである場合は、各入力ポリゴン内のポイント数が加算されるだけなので、集計エリアの単位は不要です。 入力集計フィーチャがラインである場合は、距離単位を指定します。入力集計フィーチャがポリゴンである場合は、面積単位を指定します。
| String |
group_field (オプション) | グループ化に使用する入力集計フィーチャの属性フィールド。同じグループ フィールド値を持つフィーチャがまとまって結合されて、集計されます。 グループ フィールドを選択した場合、グループ化された追加出力テーブルが作成されるため、そのテーブルの場所を out_grouped_table パラメーターで指定する必要があります。 | Field |
add_min_maj (オプション) | このオプションは、グループ フィールドを選択した場合にのみ有効になります。このオプションを指定すると、各入力ポリゴン内で最少頻値 (最も少ない値) および最頻値 (最も多い値) であるグループ フィールド値を決定できます。
| Boolean |
add_group_percent (オプション) | このオプションは、グループ フィールドを選択した場合にのみ有効になります。このオプションを指定すると、各グループ内の各属性値の割合を決定できます。
| Boolean |
out_group_table (オプション) | グループ フィールドを指定した場合、グループ化された出力テーブルが必要になります。 出力テーブルには、入力ポリゴンごとに、集計フィーチャのグループ別の集計フィールドが含まれます。このテーブルには、以下の属性フィールドが含まれます。
| Table |
コードのサンプル
次の Python ウィンドウ スクリプトは、SummarizeWithin 関数の使用方法を示しています。
import arcpy
arcpy.env.workspace = 'C:/data/city.gdb'
arcpy.SummarizeWithin_analysis('neighborhoods', 'crimes', 'neighborhood_crimes')
次のスタンドアロン スクリプトは、SummarizeWithin 関数をスクリプティング環境で使用する方法の例を示しています。
# Description: Use SummarizeWithin to summarize the crimes in each city neighborhood
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/data/city.gdb'
# Set local variables
polys = 'neighborhoods'
points = 'crimes'
outFeatureClass = 'crimes_aggregated'
keepAll = 'KEEP_ALL'
sumFields = [['Damages', 'SUM'], ['VICTIM_AGE', 'MEAN']]
addShapeSum = 'ADD_SHAPE_SUM'
groupField = 'Crime_type'
addMinMaj = 'ADD_MIN_MAJ'
addPercents = 'ADD_PERCENT'
outTable = 'crimes_aggregated_groups'
arcpy.SummarizeWithin_analysis(polys, points, outFeatureClass, keepAll,
sumFields, addShapeSum, '', groupField,
addMinMaj, addPercents, outTable)
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい