ゾーン ヒストグラム (Zonal Histogram) (Spatial Analyst)

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

サマリー

個別のゾーンにおける値入力のセル値の頻度分布を示すテーブルとヒストグラム グラフを作成します。

使用法

  • ゾーン ヒストグラムを使用すると、あるデータセットの値について、別のデータセットのクラス内における値の頻度分布を調査できます。例としては、土地利用クラス内の傾斜分布、標高クラスの降雨分布、警察の巡回区域の犯罪分布などが挙げられます。

  • ゾーン ヒストグラムのクラス数は、[入力値ラスター] (Python では in_value_raster) の指定方法によって異なります。

    ラスター データセットとして指定した場合に適用される条件は、次のとおりです。

    • 個別値が 25 未満の整数ラスターの場合、クラス数は値ラスターの個別値の数に一致します。
    • 個別値が 25 を超える整数ラスターの場合、値が 256 のクラス (1 ~ 256) に分割されます。個別値の数が 256 未満の場合、一部のクラスの頻度が 0 になります。
    • 浮動小数点ラスターの場合、値が 256 のクラス (1 ~ 256) に分割されます。

    ラスター レイヤーとして指定した場合に適用される条件は、次のとおりです。

    • [ストレッチ] シンボルの場合、ストレッチ タイプが使用されて、値が 256 のクラス (1 ~ 256) に分割されます。
    • [分類] または [個別値] シンボルの場合、クラス数はクラスまたはシンボルの個別値に一致します。
    • ゾーン解析は、[ストレッチ][分類]、または [個別値] シンボルで指定された値の範囲で実行されます。計算では、シンボルに表示されない値ラスター内の値がすべて無視されます。
    • [不連続] または [ベクトル場] シンボルの場合、ゾーン解析でシンボルが無視されます。解析は、入力値ラスターをラスター データセットとして指定するときと同様に、値ラスターのデータ タイプと個別値の数のみを考慮して実行されます。
    • ゾーン ヒストグラムは、値ラスター レイヤーのシンボルのラベルのクラス値を表示します。
  • ゾーンは、入力データ内において、同じ値を持つすべてのエリアとして定義されます。エリアは連続していなくてもかまいません。ラスターとフィーチャのいずれも入力ゾーンとして使用できます。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) がラスターの場合、整数ラスターになるはずです。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) がフィーチャである場合、そのフィーチャは、[入力値ラスター] (Python では in_value_raster) のセル サイズとセル配置を使用して、内部でラスターに変換されます。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) と [入力値ラスター] (Python では in_value_raster) のセル サイズが異なる場合、出力セル サイズは [入力データの最大セル サイズ] となり、[入力値ラスター] は内部でスナップ対象ラスターとして使用されます。セル サイズは同じだが、セルが位置揃えされていない場合、[入力値ラスター] は内部でスナップ対象ラスターとして使用されます。これらのいずれの場合も、ゾーン演算が実行される前に内部リサンプリングが開始されます。

    ゾーンと値の両方の入力が同じセル サイズのラスターで、セル同士が位置揃えされている場合、それらの入力はツールで直接使用され、ツールの実行時に内部でリサンプリングされません。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) がポイント フィーチャである場合、値入力ラスターの特定のセルが複数のポイントを含むことが可能です。そのようなセルの場合、ゾーンの値は最小の ObjectID フィールドを持つポイントによって決まります (たとえば OIDFID)。

  • [入力ラスター、またはフィーチャ ゾーン データ] (Python では in_zone_data) が重なり合うポリゴンを持つ場合、個別のポリゴンに対してゾーン解析は実行されません。フィーチャ入力はラスターに変換されるため、各位置は 1 つの値しか持てません。

    別の方法として考えられるのは、それぞれのポリゴン ゾーンについてゾーン操作を反復処理して、その結果を適用することです。

  • [ゾーン フィールド] パラメーター (Python では zone_field) の値は、整数またはテキスト タイプである必要があります。

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

  • ゾーン ヒストグラム グラフは、デフォルトでは作成されません。グラフを作成するには、[出力テーブルでゾーンを行として表示] パラメーターをオンに (Python では zones_as_rows パラメーターを ZONES_AS_ROWS に設定) して [出力グラフ名] (Python では out_graph パラメーター) を指定します。ゾーン ヒストグラム グラフは、ArcGIS Pro アプリケーション内でのみ作成できます。スタンドアロン スクリプトではサポートされていません。

  • [出力テーブルでゾーンを行として表示] パラメーターをオフにして出力テーブルを作成する場合、入力値ラスターの指定方法に応じて、ラベル フィールドには値ラスター データセットまたはレイヤーのシンボルのラベルの値が含まれます。

    [出力テーブルでゾーンを行として表示] パラメーターをオンにして出力テーブルを作成する場合、ラベル フィールドにはゾーン ラスターの値が含まれます。

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

パラメーター

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

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

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

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

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

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

Field
入力値ラスター

ヒストグラムの作成に使用する値を含むラスター。

Raster Layer
出力テーブル

出力テーブル ファイル。

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

オプションのグラフ出力は、テーブル内の情報から作成されます。

Table
出力グラフ名
(オプション)

表示用の出力グラフの名前。

グラフは [コンテンツ] ウィンドウの [スタンドアロン テーブル] の下にリストされます。

Graph
出力テーブルでゾーンを行として表示
(オプション)

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

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

ZonalHistogram(in_zone_data, zone_field, in_value_raster, out_table, {out_graph}, {zones_as_rows})
名前説明データ タイプ
in_zone_data

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

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

Raster Layer; Feature Layer
zone_field

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

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

Field
in_value_raster

ヒストグラムの作成に使用する値を含むラスター。

Raster Layer
out_table

出力テーブル ファイル。

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

オプションのグラフ出力は、テーブル内の情報から作成されます。

Table
out_graph
(オプション)

表示用の出力グラフの名前。

Graph
zones_as_rows
(オプション)

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

  • ZONES_AS_FIELDSゾーンはフィールドとして表されます。これがデフォルトです。
  • ZONES_AS_ROWSゾーンは行として表されます。
Boolean

コードのサンプル

ZonalHistogram (ゾーン ヒストグラム) の例 1 (Python ウィンドウ)

次の例では、ゾーン ヒストグラムの *.dbf テーブルとグラフ ファイルを作成しています。

from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalHist = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf",
                              "znhist_graphl", "ZONES_AS_ROWS")
ZonalHistogram (ゾーン ヒストグラム) の例 2 (スタンドアロン スクリプト)

次の例では、*.dbf テーブルのゾーン ヒストグラムを作成しています。

# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table
#              showing the amount of value cells 
#              for each unique input zone.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras" 
outTable = "C:/sapyexamples/output/zonehist_tb2.dbf" 

# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable)

関連トピック