クロス集計(Tabulate Area) (Spatial Analyst)
サマリ
2 つのデータセット間のクロス集計をして、テーブルを出力します。
図
使用法
-
ゾーンは、入力データ内において、同じ値を持つすべてのエリアとして定義されます。エリアは連続していなくてもかまいません。ラスタ データセットとフィーチャ データセットのどちらも入力ゾーンとして使用できます。
-
ゾーンとクラスの入力が同じ解像度を持つラスタである場合、直接使用されます。
解像度が異なる場合、ゾーン演算を実行する前に解像度が一致するように内部でリサンプリングが行われます。
-
ゾーン入力がラスタ データセットの場合、属性テーブルを持つ必要があります。属性テーブルは通常、整数ラスタに対して自動的に作成されますが、特定の状況下では作成されない場合があります。属性テーブルを作成するには、[ラスタ属性テーブルの構築(Build Raster Attribute Table)] を使用します。
-
ゾーン入力がフィーチャ データセットの場合、ベクタからラスタへの変換が内部で行われます。
変換結果がクラス ラスタ入力と適合するように、[範囲] および [スナップ対象ラスタ] が環境設定とラスタ設定で適切に設定されているか確認することをお勧めします。
入力ゾーンまたはクラス データを指定する場合、デフォルト フィールドは 1 つめの有効なフィールドになります。有効なフィールドが他にない場合は、ObjectID フィールド(たとえば、OID や FID)がデフォルトになります。
[ゾーン フィールド] に予約済みフィールド(たとえば、OBECTID、FID、または OID など)を選択すると、結果があいまいになることがあります。結果には、指定された [ゾーン フィールド] だけでなく、特定の出力形式のタイプに必要な特定の予約済みフィールド名が含まれます。指定されたフィールドに、特定の出力形式の予約済みフィールドと同じ名前がある場合、出力では、結果内のすべてのフィールド名が一意になるように、ゾーン フィールドの名前を変更します。
注意:予約済みの名前ではない一意の値を持つフィールドにするには、[フィールドの追加(Add Field)] および [フィールド演算(Calculate Field)] ジオプロセシング ツールを使用します。
-
クラス入力がフィーチャ データセットの場合、ベクタからラスタへの変換も内部で適用されます。フィーチャのゾーン入力の前のヒントでリストした条件は、フィーチャクラス入力にも適用されます。
-
通常、ゾーンおよびクラス入力としてラスタのみを使用することをお勧めします。入力がフィーチャである場合、最初に、ラスタへの変換ツールを使用して、それらをラスタに変換します。そうすることで、ベクタからラスタへの変換を細かく制御できるため、常に予測される結果を得ることができます。
-
ポイントまたはライン データセットをクラス データとして使用する場合、それらのフィーチャと交差するエリアが報告されます。
-
[クロス集計(Tabulate Area)] ツールの出力は、テーブルです。
このテーブルでは以下のようになっています。
- ゾーン データセットの各個別値のレコードがあります。
- クラス データセットの各個別値のフィールドがあります。
- 各レコードには、各ゾーン内の各クラスの面積が格納されます。
-
このツールを使用する際の問題点や、その回避方法の説明については、「クロス集計の操作」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
in_zone_data |
ゾーンを定義するデータセット。 ゾーンは、整数ラスタまたはフィーチャ レイヤによって定義できます。 | Raster Layer | Feature Layer |
zone_field | 各ゾーンを定義する値を保持するフィールド。 ゾーン データセットの整数フィールドまたは文字列フィールドを使用できます。 | Field |
in_class_data |
各ゾーン内でまとめられるエリアを持つクラスを定義するデータセット。 クラス入力には、整数ラスタ レイヤまたはフィーチャ レイヤが使用できます。 | Raster Layer | Feature Layer |
class_field |
クラス値を保持するフィールド。 整数または入力クラス データの文字列フィールドを使用できます。 | Field |
out_table |
各ゾーン内にある各クラスのエリアのサマリを含む出力テーブル。 | Table |
processing_cell_size (オプション) |
ゾーン演算で処理するセル サイズ。 環境設定で特定の値が指定されている場合、その値を使用します。設定されていない場合、セル サイズのデフォルト値は以下のようにゾーン データのタイプによって決められます。
| Analysis Cell Size |
コードのサンプル
次の例では、各ゾーンに含まれる各クラス値のエリアを持つテーブルを返しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
TabulateArea("zonedata.shp", "IDStr", "valueraster", "VALUE",
"C:/sapyexamples/output/areatable.dbf", 2)
次の例では、各ゾーンに含まれる各クラス値のエリアを持つテーブルを返しています。
# Name: TabulateArea_Ex_02.py
# Description: Calculates cross tabulated areas between two datasets.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
env.extent = "classgrid"
env.snapRaster = "classgrid"
# Set local variables
inZoneData = "zonedata.shp"
zoneField = "IDStr"
inClassData = "valueraster"
classField = "VALUE"
outTable = "C:/sapyexamples/output/areatable02.dbf"
processingCellSize = 2
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
processingCellSize)