クロス集計 (Tabulate Area) (Spatial Analyst)

サマリー

2 つのデータセット間のクロス集計をして、テーブルを出力します。

クロス集計の図
TabulateArea(ZoneRas, "VALUE", ClassRas, "VALUE", Tabarea1.dbf, 1)

使用法

  • ゾーンは、入力データ内において、同じ値を持つすべてのエリアとして定義されます。 エリアは連続していなくてもかまいません。 ラスターとフィーチャのいずれも入力ゾーンとして使用できます。

  • 入力のいずれかがラスターである場合、それは整数タイプでなければなりません。

  • 入力データセットのいずれかがフィーチャクラスである場合、解析の実行前に、他の入力ラスターの [セル サイズ] とセルの配置を使用して、内部でラスターに変換されます。

  • 両方の入力がラスターで、セル同士が位置揃えされていない場合、解析中にそれらの入力はリサンプリングされます。 環境のスナップ対象ラスターが明示的に指定されていない場合、[入力ラスターまたはフィーチャクラス データ] (Python では in_class_data) を使用して、内部でセル同士が位置揃えされます。 両方のラスターが同じセル サイズで、セル同士が位置揃えされている場合、リサンプリングは行われません。

  • 両方の入力データセットがフィーチャクラスである場合、解析の実行前に、[処理するセル サイズ] (Python では processing_cell_size) を使用するか、(指定されている場合は) ラスター解析環境から、内部でラスターに変換されます。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) がフィーチャである場合、クラス ラスターのセルの中心に重なっていないゾーン フィーチャのゾーンは内部ゾーン ラスターに変換されません。 その結果、これらのゾーンは出力に表示されません。 これを管理するには、フィーチャ ゾーンの目的の詳細レベルを保持する [セル サイズ] 環境の適切な値を決定し、解析環境で指定します。

  • 入力に重なり合うフィーチャがある場合は、フィーチャごとにゾーン解析が実行されます。

  • ポイントまたはライン データを入力フィーチャクラスとして使用する場合、それらのフィーチャと交差するエリアが報告されます。

  • 入力ゾーンまたはクラス データを指定する場合、デフォルト フィールドは 1 つ目の有効な整数フィールドまたはテキスト フィールドになります。 他に有効なフィールドが存在しないとき、ObjectID フィールド (たとえば OIDFID) がデフォルトになります。

  • [処理するセル サイズ] パラメーターは、数値で定義することも、既存のラスター データセットから取得することもできます。 セル サイズがパラメーター値として明示的に指定されていない場合、[セル サイズ] 環境が指定されていれば、そこから取得されます。 パラメーターのセル サイズも環境のセル サイズも指定されていない場合、デフォルトの出力セル サイズは、次のように入力データセットのタイプに基づいて決定されます。

    • 入力データセットがラスターの場合は、そのデータセットのセル サイズが使用されます。
    • 入力データセットがフィーチャで、[スナップ対象ラスター] 環境が設定されている場合は、スナップ ラスターのセル サイズが使用されます。 スナップ対象ラスターが設定されていない場合、セル サイズは範囲の幅および高さのうち小さい方を 250 で割った値で計算されます。このとき、環境で指定された [出力座標系] に範囲が存在します。
  • 数値を使用してセル サイズを指定した場合、出力ラスターではそれが直接使用されます。

    ラスター データセットを使用してセル サイズを指定した場合、パラメーターにはセル サイズの値ではなく、ラスター データセットのパスが表示されます。 データセットの空間参照が出力空間参照と同じであれば、そのラスター データセットのセル サイズが解析で直接使用されます。 データセットの空間参照が出力空間参照と異なる場合、指定した [セル サイズ投影法] の値に基づいて投影されます。

  • [出力テーブルでクラスを行にする] パラメーター (Python では classes_as_rows) を使用して、出力テーブル スキーマのタイプを選択できます。 このパラメーターをオン (Python では CLASSES_AS_ROWS) にしてクラスを行として表し、オフ (Python では CLASSES_AS_FIELDS) にしてクラスをフィールドとして表します。

    クラスを行で表した場合、テーブル出力を関連付けて検索し、ゾーンまたはクラス ラスターによってエリア情報を抽出することができます。

  • このツールの出力はテーブルです。

    このテーブルで、[出力テーブルでクラスを行にする] パラメーターをオフ (Python では CLASSES_AS_FIELDS) にした場合、次の条件が当てはまります。

    • ゾーン データセットの各個別値のレコードがあります。
    • クラス データセットの各個別値のフィールドがあります。
    • 各レコードには、各ゾーン内の各クラスのエリアが保存されます。

    [出力テーブルでクラスを行にする] パラメーターをオン (Python では CLASSES_AS_ROWS) にした場合、次の条件が当てはまります。

    • クラス データセットの個別値を持つ、ゾーン データセットの各個別値のレコードがあります。
    • ゾーン フィールド、クラス フィールド、数、各ゾーン内の各クラスのエリアを特定する個別のフィールドがあります。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力ラスター、またはフィーチャ ゾーン データ

ゾーンを定義するデータセット。

ゾーンは、整数ラスターまたはフィーチャ レイヤーによって定義できます。

Raster Layer; Feature Layer
ゾーン フィールド

各ゾーンを定義する値を格納するフィールド。

ゾーン データセットの整数フィールドまたは文字列フィールドを使用できます。

Field
入力ラスター、またはフィーチャクラス

各ゾーン内でまとめられるエリアを持つクラスを定義するデータセット。

クラス入力は、整数ラスター レイヤーまたはフィーチャ レイヤーにできます。

Raster Layer; Feature Layer
クラス フィールド

クラス値を保持するフィールド。

整数または入力クラス データの文字列フィールドを使用できます。

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

各ゾーン内にある各クラスのエリアのサマリーを含む出力テーブル。

テーブルの形式は、出力先とパスによって決定されます。 デフォルトでは、出力は、ジオデータベース ワークスペースではジオデータベース テーブル、ファイル ワークスペースでは dBASE テーブルになります。

Table
処理するセル サイズ
(オプション)

作成される出力ラスターのセル サイズ。

このパラメーターは、数値で定義するか、既存のラスター データセットから取得することができます。 セル サイズがパラメーター値として明示的に指定されていない場合、環境セル サイズの値が指定されていれば、それが使用されます。そうでない場合、その他のルールを使用してその他の入力から計算されます。 詳細については、使用法セクションをご参照ください。

Analysis Cell Size
出力テーブルでクラスを行にする
(オプション)

入力クラス ラスターの値を出力テーブルでどのように表示するかを指定します。

  • オフ - クラスはフィールドとして表されます。 これがデフォルトです。
  • オン - クラスは行として表されます。
Boolean

TabulateArea(in_zone_data, zone_field, in_class_data, class_field, {out_table}, {processing_cell_size}, {classes_as_rows})
名前説明データ タイプ
in_zone_data

ゾーンを定義するデータセット。

ゾーンは、整数ラスターまたはフィーチャ レイヤーによって定義できます。

Raster Layer; Feature Layer
zone_field

各ゾーンを定義する値を格納するフィールド。

ゾーン データセットの整数フィールドまたは文字列フィールドを使用できます。

Field
in_class_data

各ゾーン内でまとめられるエリアを持つクラスを定義するデータセット。

クラス入力は、整数ラスター レイヤーまたはフィーチャ レイヤーにできます。

Raster Layer; Feature Layer
class_field

クラス値を保持するフィールド。

整数または入力クラス データの文字列フィールドを使用できます。

Field
out_table
(オプション)

各ゾーン内にある各クラスのエリアのサマリーを含む出力テーブル。

テーブルの形式は、出力先とパスによって決定されます。 デフォルトでは、出力は、ジオデータベース ワークスペースではジオデータベース テーブル、ファイル ワークスペースでは dBASE テーブルになります。

Table
processing_cell_size
(オプション)

作成される出力ラスターのセル サイズ。

このパラメーターは、数値で定義するか、既存のラスター データセットから取得することができます。 セル サイズがパラメーター値として明示的に指定されていない場合、環境セル サイズの値が指定されていれば、それが使用されます。そうでない場合、その他のルールを使用してその他の入力から計算されます。 詳細については、使用法セクションをご参照ください。

Analysis Cell Size
classes_as_rows
(オプション)

入力クラス ラスターの値を出力テーブルでどのように表示するかを指定します。

  • CLASSES_AS_FIELDSクラスはフィールドとして表されます。 これがデフォルトです。
  • CLASSES_AS_ROWSクラスは行として表されます。
Boolean

コードのサンプル

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)
TabulateArea (クロス集計) の例 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

# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
             processingCellSize)