エリア内での集計 (Summarize Within) (解析)

概要

ポリゴン レイヤーを別のレイヤーに重ねて、各ポリゴン内のポイント数、ラインの長さ、またはポリゴンの面積を集計し、各ポリゴン内のフィーチャに関して属性フィールドの統計情報を計算します。

[エリア内での集計 (Summarize Within)] を使用する例として、以下のシナリオがあります。

  • 集水域境界線のレイヤーと、土地利用タイプ別土地利用境界線のレイヤーを基に、各集水域の土地利用タイプの総面積を計算する。
  • 郡の土地区画のレイヤーと都市の境界線のレイヤーを基に、各都市の境界内にある空 (から) の土地区画の平均値を集計する。
  • 郡のレイヤーと道路のレイヤーを基に、各郡内の道路タイプ別に道路の距離をサマリー処理する。

エリア内での集計 (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 つ以上の入力ポイントを含んでいる入力ポリゴンのみをコピーするのかを指定します。

  • KEEP_ALLすべての入力ポリゴンを出力フィーチャクラスにコピーします。これがデフォルトです。
  • ONLY_INTERSECTING1 つ以上の入力集計フィーチャが交差しているか含まれている入力ポリゴンのみを出力フィーチャクラスにコピーします。
Boolean
sum_fields
[[summary_field, statistic_type],...]
(オプション)

入力集計フィーチャの属性フィールド名、および、それらの属性フィールドについて計算する統計の種類のリスト。統計値は、各ポリゴンに含まれるすべてのポイントについて計算されます。

集計フィールドの値は数値でなければなりません。テキストなどの他の属性フィールド タイプはサポートされていません。

統計の種類は以下のとおりです。

  • 合計 - 各ポリゴン内のすべてのポイントの値を合計します。
  • 平均 - 各ポリゴン内のすべてのポイントの平均値を計算します。
  • 最小 - 各ポリゴン内のすべてのポイントの最小値を検索します。
  • 最大 - 各ポリゴン内のすべてのポイントの最大値を検索します。
  • 標準偏差 - 各ポリゴン内のすべてのポイントの標準偏差を求めます。

Value Table
sum_shape
(オプション)

各入力ポリゴン内で集計されたポイントの数、ラインの長さ、およびポリゴンの面積に関する属性を出力フィーチャクラスに含めるかどうかを指定します。

  • ADD_SHAPE_SUMシェープの集計属性を出力フィーチャクラスに追加します。これがデフォルトです。
  • NO_SHAPE_SUMシェープの集計属性を出力フィーチャクラスに追加しません。
Boolean
shape_unit
(オプション)

シェープ属性の集計で使用する単位。入力集計フィーチャがポイントである場合は、各入力ポリゴン内のポイント数が加算されるだけなので、集計エリアの単位は不要です。

入力集計フィーチャがラインである場合は、距離単位を指定します。入力集計フィーチャがポリゴンである場合は、面積単位を指定します。

  • METERSメートル
  • KILOMETERSキロメートル
  • FEETフィート
  • YARDSヤード
  • MILESマイル
  • ACRESエーカー
  • HECTARESヘクタール
  • SQUAREMETERS平方メートル
  • SQUAREKILOMETERS平方キロメートル
  • SQUAREFEET平方フィート
  • SQUAREYARDS平方ヤード
  • SQUAREMILES平方マイル
String
group_field
(オプション)

グループ化に使用する入力集計フィーチャの属性フィールド。同じグループ フィールド値を持つフィーチャがまとまって結合されて、集計されます。

グループ フィールドを選択した場合、グループ化された追加出力テーブルが作成されるため、そのテーブルの場所を out_grouped_table パラメーターで指定する必要があります。

Field
add_min_maj
(オプション)

このオプションは、グループ フィールドを選択した場合にのみ有効になります。このオプションを指定すると、各入力ポリゴン内で最少頻値 (最も少ない値) および最頻値 (最も多い値) であるグループ フィールド値を決定できます。

  • NO_MIN_MAJ最少頻値フィールドと最頻値フィールドを出力に追加しません。これがデフォルトです。
  • ADD_MIN_MAJ最少頻値フィールドと最頻値フィールドを出力に追加します。
Boolean
add_group_percent
(オプション)

このオプションは、グループ フィールドを選択した場合にのみ有効になります。このオプションを指定すると、各グループ内の各属性値の割合を決定できます。

  • NO_PERCENT割合属性フィールドを出力に追加しません。これがデフォルトです。
  • ADD_PERCENT割合属性フィールドを出力に追加します。
Boolean
out_group_table
(オプション)

グループ フィールドを指定した場合、グループ化された出力テーブルが必要になります。

出力テーブルには、入力ポリゴンごとに、集計フィーチャのグループ別の集計フィールドが含まれます。このテーブルには、以下の属性フィールドが含まれます。

  • Join_ID - 出力フィーチャクラスに追加される ID フィールドに対応する ID。
  • グループ フィールド。
  • シェープ集計フィールド。
  • 各集計フィールドに対して 1 つのフィールド。
  • 割合フィールド。

Table

コードのサンプル

SummarizeWithin (エリア内での集計) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SummarizeWithin 関数の使用方法を示しています。

import arcpy
arcpy.env.workspace = 'C:/data/city.gdb'
arcpy.SummarizeWithin_analysis('neighborhoods', 'crimes', 'neighborhood_crimes')
SummarizeWithin (エリア内での集計) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、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: はい

関連トピック