ゾーン統計 (Zonal Statistics) (Spatial Analyst)

サマリー

他のデータセットのゾーンごとにラスター値を集約します。

ゾーン統計ツールの動作の詳細

ゾーン統計ツールの図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "MINIMUM", "DATA", "CURRENT_SLICE")

使用法

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

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

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

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

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

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

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

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

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

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

  • [入力値ラスター] の値のデータ型、および [円周統計の計算] パラメーターで指定した統計計算タイプによって、サポートされる統計タイプが異なります。

    データ タイプが整数の場合、算術統計計算では、[平均][最頻値][最頻値の数][最頻値の割合][最大][中央値][最小][最少頻値][最少頻値の数][最少頻値の割合][パーセンタイル][範囲][標準偏差][合計][種類] の各オプションがサポートされます。 円周統計の計算では、[平均][最頻値][最少頻値][標準偏差][種類] の各オプションがサポートされます。

    データ タイプが浮動小数点の場合、算術統計計算では、[平均][最大][中央値][最小][パーセンタイル][範囲][標準偏差][合計] の各オプションがサポートされます。 円周統計の計算では、[平均][標準偏差] オプションがサポートされます。

  • 最頻値と最少頻値の計算では、同一頻度の値が複数ある場合、同一頻度の値の中で最も小さい値が出力されます。

  • 円周統計を計算するには、[円周統計の計算] パラメーター (Python では circular_calculation = "CIRCULAR") をオンにし、[円形折り返し値] (Python では circular_wrap_value) パラメーターの値を指定します。

  • サポートされている多次元ラスター データセット タイプには、多次元ラスター レイヤー、モザイク、イメージ サービスおよび Esri CRF が含まれます。

  • 出力のデータ タイプ (整数または浮動小数) は、実行するゾーン計算と入力値ラスターのタイプによって変わります。 統計情報の特定の振舞いについては、「ゾーン統計ツールの仕組み」をご参照ください。

  • デフォルトでは、このツールはマルチコア プロセッサを使用します (使用可能な場合)。 使用できるコアの最大数は 4 です。

    もっと少ないコアを使用するには、並列処理ファクター環境設定を使用します。

  • 出力ラスターの形式が .crf の場合、このツールはピラミッド ラスター格納環境をサポートします。 デフォルトでは、ピラミッドは出力で作成されます。 その他の出力形式ではこの環境はサポートされず、ピラミッドは作成されません。

パラメーター

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

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

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

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

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

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

Field
入力値ラスター

統計の計算対象の値を含むラスター。

Raster Layer
統計タイプ
(オプション)

計算する統計の種類を指定します。

  • 平均出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの平均値が計算されます。これがデフォルトです。
  • 最頻値出力セルと同じゾーンに属する値ラスター内にある、すべてのセルにおいて最も多く存在する値が計算されます。
  • 最頻値の数出力セルと同じゾーンに属する値ラスター内にある、最頻値を含むすべてのセルの頻度が計算されます。
  • 最頻値の割合出力セルと同じゾーンに属する値ラスター内にある、最頻値を含むすべてのセルの割合が計算されます。
  • 最大出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最大値が計算されます。
  • 中央値出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの中央値が計算されます。
  • 最小出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最小値が計算されます。
  • 最少頻値出力セルと同じゾーンに属する値ラスター内にある、すべてのセルにおいて最も少なく存在する値が計算されます。
  • 最少頻値の数出力セルと同じゾーンに属する値ラスター内にある、最少頻値を含むすべてのセルの頻度が計算されます。
  • 最少頻値の割合出力セルと同じゾーンに属する値ラスター内にある、最少頻値を含むすべてのセルの割合が計算されます。
  • パーセンタイル出力セルと同じゾーンに属する値ラスター内にある、すべてのセルのパーセンタイルが計算されます。 デフォルトでは 90 番目のパーセンタイルが計算されます。 [パーセンタイル値] パラメーターを使用して、その他の値 (0 ~ 100) を指定できます。
  • 範囲出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最大値と最小値の差が計算されます。
  • 標準偏差出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの標準偏差が計算されます。
  • 合計出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの合計値が計算されます。
  • 種類出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの個別値の数が計算されます。
String
計算時に NoData を除外
(オプション)

入力値内の NoData 値が、属するゾーンの結果で無視されるかどうかを指定します。

  • オン - どのゾーン内でも、入力値ラスターで値を持つセルだけがゾーンの出力値の決定に使用されます。 値ラスターの NoData セルは、統計情報の計算時に無視されます。 これがデフォルトです。
  • オフ - 特定のゾーン内で、値ラスターに NoData セルがある場合、それらのセルは無視されます。それらのセルの存在は、そのゾーンのすべてのセルについて統計情報の計算を実行するための情報が不十分であることを示します。 したがって、ゾーン全体が、出力ラスターで NoData 値を受け取ります。
Boolean
多次元として処理
(オプション)

多次元の場合の入力ラスターの計算方法を指定します。

  • オフ - 入力多次元データセットの現在のスライスから統計が算出されます。 これがデフォルトです。
  • オン - 入力多次元データセットのすべての次元に関する統計が算出されます。
Boolean
パーセンタイル値
(オプション)

計算されるパーセンタイル。 デフォルトは 90 で、90 番目のパーセンタイルを示します。

値の範囲は 0 ~ 100 です。 0 番目のパーセンタイルは、基本的に最小値の統計情報と同じであり、100 番目のパーセンタイルは最大値と同じです。 値が 50 の場合、基本的に中央値の統計情報と同じ結果になります。

このパラメーターは、[統計情報の種類] パラメーターが [パーセンタイル] に設定されている場合にのみ利用できます。

Double
パーセンタイル内挿タイプ
(オプション)

パーセンタイル値が入力値ラスターの 2 つのセル値の間にある場合に使用される内挿の方法を指定します。

  • 自動検出入力値ラスターが整数ピクセル タイプである場合は、[最近隣内挿法] が使用されます。 入力値ラスターが浮動小数点ピクセル タイプである場合は、[リニア] 内挿法が使用されます。 これがデフォルトです。
  • 最近隣内挿法目的のパーセンタイルに使用できる最近隣の値が使用されます。 この場合、出力のピクセル タイプは、入力値ラスターと同じになります。
  • 線形目的のパーセンタイルからの 2 つの周囲値の加重平均が使用されます。 この場合、出力のピクセル タイプは浮動小数点です。
String
円周統計の計算
(オプション)

円形データの入力ラスターの処理方法を指定します。

  • オフ - 通常のリニア統計が計算されます。 これがデフォルトです。
  • オン - 角度またはその他の周期的変化量 (度単位のコンパス方向、日中時間、実数の小数部など) の統計が計算されます。
Boolean
円形折り返し値
(オプション)

特定の円形統計の範囲にリニア値を四捨五入するために使用される値。 値は整数または浮動小数点で指定する必要があります。 デフォルト値は 360 度です。

このパラメーターは、[円周統計の計算] パラメーターがオンになっている場合にのみサポートされます。

Double

戻り値

ラベル説明データ タイプ
出力ラスター

出力ゾーン統計情報ラスター。

Raster

ZonalStatistics(in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata}, {process_as_multidimensional}, {percentile_value}, {percentile_interpolation_type}, {circular_calculation}, {circular_wrap_value})
名前説明データ タイプ
in_zone_data

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

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

Raster Layer; Feature Layer
zone_field

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

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

Field
in_value_raster

統計の計算対象の値を含むラスター。

Raster Layer
statistics_type
(オプション)

計算する統計の種類を指定します。

  • MEAN出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの平均値が計算されます。これがデフォルトです。
  • MAJORITY出力セルと同じゾーンに属する値ラスター内にある、すべてのセルにおいて最も多く存在する値が計算されます。
  • MAJORITY_COUNT出力セルと同じゾーンに属する値ラスター内にある、最頻値を含むすべてのセルの頻度が計算されます。
  • MAJORITY_PERCENT出力セルと同じゾーンに属する値ラスター内にある、最頻値を含むすべてのセルの割合が計算されます。
  • MAXIMUM出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最大値が計算されます。
  • MEDIAN出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの中央値が計算されます。
  • MINIMUM出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最小値が計算されます。
  • MINORITY出力セルと同じゾーンに属する値ラスター内にある、すべてのセルにおいて最も少なく存在する値が計算されます。
  • MINORITY_COUNT出力セルと同じゾーンに属する値ラスター内にある、最少頻値を含むすべてのセルの頻度が計算されます。
  • MINORITY_PERCENT出力セルと同じゾーンに属する値ラスター内にある、最少頻値を含むすべてのセルの割合が計算されます。
  • PERCENTILE出力セルと同じゾーンに属する値ラスター内にある、すべてのセルのパーセンタイルが計算されます。 デフォルトでは 90 番目のパーセンタイルが計算されます。 [パーセンタイル値] パラメーターを使用して、その他の値 (0 ~ 100) を指定できます。
  • RANGE出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの最大値と最小値の差が計算されます。
  • STD出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの標準偏差が計算されます。
  • SUM出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの合計値が計算されます。
  • VARIETY出力セルと同じゾーンに属する値ラスター内にある、すべてのセルの個別値の数が計算されます。
String
ignore_nodata
(オプション)

入力値内の NoData 値が、属するゾーンの結果で無視されるかどうかを指定します。

  • DATAどのゾーン内でも、入力値ラスターで値を持つセルだけがゾーンの出力値の決定に使用されます。 値ラスターの NoData セルは、統計情報の計算時に無視されます。 これがデフォルトです。
  • NODATA特定のゾーン内で、値ラスターに NoData セルがある場合、それらのセルは無視されます。それらのセルの存在は、そのゾーンのすべてのセルについて統計情報の計算を実行するための情報が不十分であることを示します。 したがって、ゾーン全体が、出力ラスターで NoData 値を受け取ります。
Boolean
process_as_multidimensional
(オプション)

多次元の場合の入力ラスターの計算方法を指定します。

  • CURRENT_SLICE入力多次元データセットの現在のスライスから統計が算出されます。 これがデフォルトです。
  • ALL_SLICES入力多次元データセットのすべての次元に関する統計が算出されます。
Boolean
percentile_value
(オプション)

計算されるパーセンタイル。 デフォルトは 90 で、90 番目のパーセンタイルを示します。

値の範囲は 0 ~ 100 です。 0 番目のパーセンタイルは、基本的に最小値の統計情報と同じであり、100 番目のパーセンタイルは最大値と同じです。 値が 50 の場合、基本的に中央値の統計情報と同じ結果になります。

このパラメーターは、statistics_type パラメーターが PERCENTILE に設定されている場合のみサポートされます。

Double
percentile_interpolation_type
(オプション)

パーセンタイル値が入力値ラスターの 2 つのセル値の間にある場合に使用される内挿の方法を指定します。

  • AUTO_DETECT入力値ラスターが整数ピクセル タイプである場合は、NEAREST 内挿法が使用されます。 入力値ラスターが浮動小数点ピクセル タイプである場合は、LINEAR 内挿法が使用されます。 これがデフォルトです。
  • NEAREST目的のパーセンタイルに使用できる最近隣の値が使用されます。 この場合、出力のピクセル タイプは、入力値ラスターと同じになります。
  • LINEAR目的のパーセンタイルからの 2 つの周囲値の加重平均が使用されます。 この場合、出力のピクセル タイプは浮動小数点です。
String
circular_calculation
(オプション)

円形データの入力ラスターの処理方法を指定します。

  • ARITHMETIC通常のリニア統計が計算されます。 これがデフォルトです。
  • CIRCULAR角度またはその他の周期的変化量 (度単位のコンパス方向、日中時間、実数の小数部など) の統計が計算されます。
Boolean
circular_wrap_value
(オプション)

特定の円形統計の範囲にリニア値を四捨五入するために使用される値。 値は整数または浮動小数点で指定する必要があります。 デフォルト値は 360 度です。

このパラメーターは、circular_calculation パラメーターが CIRCULAR に設定されている場合のみサポートされます。

Double

戻り値

名前説明データ タイプ
out_raster

出力ゾーン統計情報ラスター。

Raster

コードのサンプル

ZonalStatistics (ゾーン統計) の例 1 (Python ウィンドウ)

次の例では、値の入力ラスターのセル値の範囲をゾーンごとに求めています。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalStats = ZonalStatistics("zone", "value", "valueraster", "RANGE",
                                "NODATA")
outZonalStats.save("C:/sapyexamples/output/zonestatout")
ZonalStatistics (ゾーン統計) の例 2 (スタンドアロン スクリプト)

この例では、各ゾーンの入力多次元値ラスターから最大値を計算することで、多次元ゾーン出力を作成します。

# Name: ZonalStatistics_Ex_02.py
# Description: Calculates statistics on values of a raster 
#    within the zones of another dataset.
# 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"

# Set local variables
inZoneData = "zone"
zoneField = "value"
inValueRaster = "valueraster" 

# Execute ZonalStatistics
outZonalStatistics = ZonalStatistics(inZoneData, zoneField, inValueRaster,
                                     "RANGE", "NODATA")

# Save the output 
outZonalStatistics.save("C:/sapyexamples/output/zonestatout2")