Spatial Analyst のライセンスで利用可能。
概要
2 つのデータセット間のクロス集計をして、テーブルを出力します。
図
使用法
ゾーンは、入力データ内において、同じ値を持つすべてのエリアとして定義されます。エリアは連続していなくてもかまいません。ラスターとフィーチャのいずれも入力ゾーンとして使用できます。
いずれかの入力がラスターの場合、整数ラスターでなければなりません。
両方の入力がラスターで、それらのセル同士が位置揃えされていない場合は、入力は解析中にリサンプリングされます。スナップ ラスター環境が明示的に指定されていない場合、[入力ラスター、またはフィーチャクラス データ] (Python では in_class_data) を使用してセル同士を内部的に位置揃えします。両方のラスターのセル サイズが同じで、セル同士が位置揃えされている場合、リサンプリングは行われません。
いずれかの入力データセットがフィーチャクラスである場合、解析が実行される前に内部的にラスターに変換されます。
[入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) がフィーチャである場合、クラス ラスターのセルの中心に重なっていないゾーン フィーチャのゾーンは内部ゾーン ラスターに変換されません。その結果、これらのゾーンは出力に表示されません。これを管理するには、フィーチャ ゾーンの目的の詳細レベルを保持する [セル サイズ] 環境の適切な値を決定し、解析環境で指定します。
ポイントまたはライン データを [入力ラスター、またはフィーチャクラス データ](Python では in_class_data) として使用する場合、それらのフィーチャと交差するエリアが報告されます。
入力にオーバーラップするポリゴンがある場合、オーバーラップ エリアの各ポリゴンに対して解析は実行されません。フィーチャ入力はラスターに変換されるため、各位置は 1 つの値しか持てません。
別の方法として考えられるのは、それぞれのポリゴン ゾーンについてゾーン操作を反復処理して、その結果を適用することです。
入力ゾーンまたはクラス データを指定する場合、デフォルト フィールドは 1 つ目の有効な整数またはテキスト フィールドになります。他に有効なフィールドが存在しないとき、ObjectID フィールド (たとえば、OID または FID) がデフォルトになります。
このツールの出力はテーブルです。
このテーブルでは以下のようになっています。
- ゾーン データセットの各個別値のレコードがあります。
- クラス データセットの各個別値のフィールドがあります。
- 各レコードには、各ゾーン内の各クラスの面積が格納されます。
[処理するセル サイズ] は、数値で定義することも、既存のラスター データセットから取得することもできます。セル サイズがパラメーター値として明示的に指定されていない場合、[セル サイズ] 環境が指定されていれば、そこから取得されます。パラメーター セル サイズまたは環境セル サイズが指定されていない場合、デフォルトの出力セル サイズは、入力データセットの種類に基づいて次のように決定されます。
- 入力データセットがラスターの場合は、そのデータセットのセル サイズが使用されます。
- 入力データセットがフィーチャで [スナップ ラスター] 環境が設定されている場合、スナップ ラスターのセル サイズが使用されます。スナップ ラスターが設定されていない場合、セル サイズは範囲の幅および高さのうち小さい方を 250 で割った値で計算されます (範囲が環境で指定された [出力座標系] に存在する場合)。
セル サイズが数値によって指定されている場合、このツールは出力ラスターに対してこの値を直接使用します。
セル サイズがラスター データセットを使用して指定されている場合、パラメーターはセル サイズの値ではなくラスター データセットのパスを示します。データセットの空間参照が出力空間参照と同じである場合、解析ではラスター データセットのセル サイズが直接使用されます。データセットの空間参照が出力空間参照と異なる場合は、選択された [セル サイズ投影法] に基づいて投影されます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
TabulateArea(in_zone_data, zone_field, in_class_data, class_field, out_table, {processing_cell_size})
パラメーター | 説明 | データ タイプ |
in_zone_data | ゾーンを定義するデータセット。 ゾーンは、整数ラスターまたはフィーチャ レイヤーによって定義できます。 | Raster Layer; Feature Layer |
zone_field | 各ゾーンを定義する値を保持するフィールド。 ゾーン データセットの整数フィールドまたは文字列フィールドを使用できます。 | Field |
in_class_data | 各ゾーン内でまとめられるエリアを持つクラスを定義するデータセット。 クラス入力には、整数ラスター レイヤーまたはフィーチャ レイヤーが使用できます。 | Raster Layer; Feature Layer |
class_field | クラス値を保持するフィールド。 整数または入力クラス データの文字列フィールドを使用できます。 | Field |
out_table | 各ゾーン内にある各クラスのエリアのサマリーを含む出力テーブル。 テーブルの形式は、出力先とパスによって決定されます。デフォルトでは、出力はジオデータベース テーブルです。パスがジオデータベースでない場合、形式は拡張子によって決まります。拡張子が .dbf である場合、形式は dBASE 形式になります。拡張子を指定しない場合、出力は INFO テーブルになります。 | Table |
processing_cell_size (オプション) | 作成される出力ラスターのセル サイズ。 このパラメーターは、数値で定義するか、既存のラスター データセットから取得できます。セル サイズがパラメーター値として明示的に指定されていない場合、指定されていれば、環境のセル サイズ値が使用されます。そうでない場合は、追加のルールを使用して別の入力から計算されます。詳細については、使用方法をご参照ください。 | Analysis Cell Size |
コードのサンプル
TabulateArea (クロス集計) の例 1 (Python ウィンドウ)
次の例では、各ゾーンに含まれる各クラス値のエリアを持つテーブルを返しています。
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)
TabluateArea (クロス集計) の例 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)
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst