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 フィールドを持つポイントによって決まります (たとえば OID や FID)。
[入力ラスター、またはフィーチャ ゾーン データ] (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」をご参照ください。
構文
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 (オプション) | 入力値ラスターの値を出力テーブルでどのように表示するかを指定します。
| Boolean |
コードのサンプル
次の例では、ゾーン ヒストグラムの *.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")
次の例では、*.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)
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst