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

Spatial Analyst のライセンスで利用可能。

サマリー

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

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

使用法

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

  • いずれかの入力がラスターの場合、整数データ型の必要があります。

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

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

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

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

  • 入力に重なり合うフィーチャが含まれている場合、個別のフィーチャに対してゾーン解析は実行されません。

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

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

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

    • 入力データセットがラスターの場合は、そのデータセットのセル サイズが使用されます。
    • 入力データセットがフィーチャで、[スナップ対象ラスター] 環境が設定されている場合は、スナップ ラスターのセル サイズが使用されます。 スナップ対象ラスターが設定されていない場合、セル サイズは範囲の幅および高さのうち小さい方を 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)
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

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