Skip To Content

ゾーン統計ツールの仕組み

Image Server で利用可

ゾーン統計の動作は、別のデータセットによって定義されたゾーン内のラスター (値ラスター) のセル値に対して統計情報を計算します。 ゾーン別に統計情報を計算する、 ゾーン統計およびゾーン統計をテーブルに出力という 2 つのツールが存在します。

[ゾーン統計 (Zonal Statistics)] ツールは、一度に 1 つの統計情報のみを計算して、ラスター出力を作成します。 この値は、そのゾーンに対応するセルのラスター出力のセル値になります。 ゾーン フィーチャが重複するゾーンを含んでいる場合、出力ラスター内のセルが 1 つの値のみを表すことができるため、1 つのゾーンに対してのみ統計情報が計算されます。

[ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] は、事前に定義されたサブセットを使用して 1 つ以上の統計情報を計算するか、すべての統計情報を計算して、テーブル出力を作成します。 [ゾーン統計 (Zonal Statistics)] と同様に、得られる統計情報は、ゾーンごとの単一の値です。 出力テーブルには、1 つのゾーンにつき 1 つのレコードが存在し、統計値が、事前に定義されたフィールドに報告されます。 ゾーン入力がフィーチャであり、重複するゾーンを含んでいる場合、すべてのゾーンに対して統計情報が計算され、出力が、ゾーンごとの個別のレコードに報告されます。

入力ゾーン レイヤーは、ラスターまたはフィーチャのいずれかであることができるゾーンの形状、値、および位置を定義します。 ゾーン演算時に、最初にフィーチャ データがラスターに変換されます。 ラスター データでは、ゾーンは、セルが隣接しているかどうかにかかわらず、すべて同じ値を含んでいるセルです。 各ゾーンは、一意の ID を持つ必要があり、ラスターである場合は、整数データ型を含む必要があります。 ゾーン入力内の一意の値の任意の整数フィールドまたは文字列フィールドを指定して、ゾーンを定義することができます。

入力値ラスターには、各ゾーンの出力統計情報の計算に使用される値が含まれます。 整数データ型でも浮動小数点データ型でもかまいません。

下の図では、入力された値の平均がゾーンごとに識別されています。

[ゾーン統計 (Zonal Statistics)] の入力と出力の例
[ゾーン統計 (Zonal Statistics)] の入力と出力の例が示されています。 ライト グレーのセルは、NoData を表しています。

値ラスター内のセルがラスター ゾーンとして識別される方法

統計情報を計算するために、ツールは、最初に、各ゾーンに含まれるすべてのセルについて、値ラスターからセル値を抽出します。 値ラスターにおけるゾーン内のセルのこの識別は、ゾーンを値ラスターの上に重ね合わせることによって実行されます。 ゾーンおよび入力値が、両方とも同じセル サイズのラスターであり、セル同士が位置揃えされている場合、ゾーンのセルに重なる値ラスターのセル値が抽出され、統計情報が計算されます。

抽出されたセルがハイライト表示されていることを示す、値ラスターの上に重ね合わされたゾーン ラスター
抽出されたセルがハイライト表示されていることを示す、値ラスターの上に重ね合わされたゾーン ラスター

ゾーン ラスターのセル サイズまたは位置揃えのいずれかが、値ラスターと異なっている場合、ゾーン ラスターと値ラスターの間で、セルを互いに完全に重ね合わせることができません。 その場合、このツールは、内部で 1 つまたは両方のラスターを調整し、セルの完全な重ね合わせを達成します。 この調整は、いくつかの単純なルールに従って実行されます。 ゾーン ラスターおよび値ラスターのセル サイズが異なる場合、出力セル サイズは [入力データの最大セルサイズ] の値になり、値ラスターがスナップ対象ラスターとして内部で使用されます。 セル サイズは同じだが、セルが位置揃えされていない場合、値ラスターがスナップ対象ラスターとして内部で使用されます。 これらのいずれの場合も、ゾーン演算が実行される前に内部リサンプリングが開始されます。

値ラスター内のセルがフィーチャ ゾーンとして識別される方法

ゾーン演算は、基本的に、1 つがゾーン、もう 1 つが値である 2 つのラスターに対して実行されるラスター解析です。 ゾーンがフィーチャによって定義される場合、フィーチャからラスターへの内部変換が発生します。 ポリゴン ゾーンの内部変換では、フィーチャをラスターに変換ツールでセルの中心メソッドを使用して、値ラスターのセル サイズおよびスナップ対象ラスターで入力をラスター化します。これは、ラスター化のグリッドのどのセルの中心もフィーチャ ゾーンに含まれない場合、出力においてゾーンが欠落するという予期しない結果を引き起こすことがあります。 この結果は、内部のゾーン ラスターのセルの面積より小さいゾーンで発生する可能性があり、さらに大きいゾーンでも発生することがあります。

下の例では、図 (1) が、入力フィーチャ ゾーン、入力値ラスター、およびセルの中心を表しています。 入力フィーチャは 3 つのゾーン (黄色い形状) を含んでおり、次のことが当てはまります。

  • zone1 が個々のセルより大きい。
  • zone2 および zone3 が 1 つのセルより小さい。
  • セルの中心が zone2 から外れているが、zone3 に含まれている。

図 (2) のゾーン ラスター化プロセス中に、セルの中心が zone1 および zone2 に含まれていないため、zone3 のみがラスター化され、他の 2 つのゾーンが基本的に非表示になる。

ゾーン統計の計算時のフィーチャ ゾーンの内部変換
ゾーン統計の計算時のフィーチャ ゾーンの内部変換を示します。

出力でゾーンが非表示になるのを防ぐには、各ゾーンが、値ラスターの 1 つ以上のセルの中心を必ず含むようにします。 これを実行する 1 つの方法は、環境内で小さなセル サイズを指定して、作成するセルの中心を増やすことです。 デフォルトでは、解析セル サイズは値ラスターのセル サイズになります。 解析環境で、値ラスターのセル サイズより小さいセル サイズを指定した場合、上の図 (3) に示されているように、より多くのゾーンを捕捉できるようになります。 小さなセル サイズを指定すると、大規模な出力ラスターが生成されることに注意してください。 追加の詳細が入力値ラスターに実際に存在しないため、高解像度の出力は、結果が高品質に見えることに必ずしもつながりません。

値ラスターの同じセル サイズおよびセルの位置揃えを使用してフィーチャ ゾーンがラスター ゾーンに変換された後に、ゾーンを値ラスターに重ね合わせることによって、ゾーン内の値ラスターからのセルの抽出が実行されます。

算術統計および円周統計の計算

すべてのセル値を加算して求められた値をセル数で除算して平均を計算する方法は、標高などのデータに有効です。 一方で、傾斜方向などの周期的変化量 (0 ~ 360 度のコンパス方向) や 1 日の時間数 (0 ~ 24 時間) を示すデータの場合は、算術平均を計算しても、正確な出力が生成されません。これは、最小値と最大値が同じ数量を表しているためです。 このようなデータの場合は、円周統計を計算する必要があります。

たとえば、0 度と 360 度という 2 つのセル値の平均を計算する場合、算術平均では、計算結果が 180 度になります。 0 度と 360 度は同じコンパス方向を表しているため、この値は正確ではありません。 円形平均を計算すると、正確な統計情報が取得され、計算結果が 0 度になります。

円周統計の計算を指定するには、[円周統計の計算] (Python では circular_calculation = "CIRCULAR") パラメーターをオンにします。 円周統計を計算する際には、周期的データを表す最小値と最大値に注意してください。 最小値は 0 と見なされます。 最大値は、[円形折り返し値] (circular_wrap_value in Python) パラメーターとして指定できます。 このパラメーターのデフォルト値は 360 です。

データのタイプに応じて、正確な出力を生成するために、統計計算のタイプと円周統計に適した円形折り返し値を選択します。 使用できる円周統計は、[平均値][最頻値][最少頻値][標準偏差]、および [種類] です。

多次元ラスターを使用してゾーン統計を計算

多次元ラスター データは、複数の回数および複数の深度または高さで、データを表します。 このタイプのデータは、一般に、大気科学、海洋学、および地球科学で使用され、プラットフォームを監視することによって観測されるか、衛星によって捕捉されるか、データがさまざまな統計手法を使用して処理、集約、または内挿される数値シミュレーション モデルから生成されます。

[ゾーン統計 (Zonal Statistics)] ツールおよび [ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] ツールは、多次元ゾーン データおよび値ラスター データを入力としてサポートします。 [多次元として処理] パラメーターをオンにした場合 (Python では process_as_multidimensional パラメーターの ALL_SLICES)、ゾーン統計は多次元ラスターのすべてのスライスに対して計算されます。 [多次元として処理] パラメーターをオフにした場合 (Python では CURRENT_SLICES)、現在のスライスのみが処理されます。

多次元データに対するゾーン統計解析の例としては、次のようなものが挙げられます。

  • 気象学者は、特定の期間のハリケーンの軌跡に沿って、ハリケーンの移動および降水分布に関する洞察を得る必要があります。 気象学者は、[ゾーン統計 (Zonal Statistics)] ツールで多次元処理を使用して、時間と共に変化したハリケーン ゾーンに関して、タイム スライスごとの平均降雨量を知ることができます。
  • 環境保護活動家は、特定の河川流域に関して、過去 30 年間の毎日の最大降雨量データから、極端な出来事の分布を調べる必要があります。 パーセンタイル値のリストでのパーセンタイルの統計の種類と共に [ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] ツールを使用して、多次元として処理する場合の時系列データに関して、毎日の最大降雨量データの分布を調べることができます。

ゾーン統計の多次元出力

[ゾーン統計 (Zonal Statistics)] ツールが入力を多次元として処理するように指定した場合、ツールは、多次元ラスター出力を作成します。 ゾーン演算は、ゾーン ラスターのスライスと値ラスターの現在の変数のスライスの間で、スライスごとに発生します。 計算済みの統計値が多次元変数に格納され、この多次元変数の名前は、値ラスターの変数名と計算されている統計情報を組み合わせて作成されます。 出力変数の次元数およびスライス数は、ゾーン ラスター入力および値ラスター入力の特定の性質によって決まります。

[ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] で、データを多次元として処理するように指定した場合、すべてのゾーンおよびスライスに対して計算された統計情報を含むフラットなテーブル出力が生成されます。 このテーブルは、変数名、ディメンション名、およびそれらの値に加えて、ゾーンごとに計算された統計情報を示すための追加フィールドを含みます。

多次元処理が、ゾーン ラスターと値ラスターの間でスライスごとに発生するため、[ゾーン統計 (Zonal Statistics)] ツールからの出力多次元ラスター内のスライスの数、および [ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] ツールからの出力テーブル内のレコードの数は、入力ラスターのタイプおよび入力ラスター内のスライスの数によって決まります。 以下のサブセクションで、各例について説明します。

同じ次元を含む多次元ゾーンおよび値ラスター

海洋のさまざまな深さで、対応する深さでのさまざまな温度範囲にわたって最大塩分濃度を知るには、温度ゾーンを表す多次元ゾーンおよび塩分濃度を表す多次元値ラスターを使用してゾーン統計を実行する必要があります。 ゾーン演算は、値ラスターからの対応するスライスを使用して、ゾーンのスライスごとに実行されます。 出力多次元ラスターは、値ラスターと同じ数のスライスを含みます。

下の図では、ゾーン ラスターと値ラスターの両方における変数が、同じ 3 つの次元 x、y、d、およびディメンション値での同じ数のスライス d0d1d2 を含んでいます。 出力多次元ラスターにおける変数も、同じ 3 つの次元 x、y、d、およびディメンション値での同じ数のスライス d0d1d2 を含んでいます。

同じ次元の多次元ゾーン ラスターおよび値ラスター
同じ次元の多次元ゾーン入力ラスターおよび値入力ラスターと、生成されたゾーン統計ラスターが示されています。

[ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] 出力内のレコードの総数は、各スライス内のゾーン数を加算することによって決定されます。 深さ d0d1、および d2 でのゾーン数がそれぞれ 5、4、および 3 である場合、レコードの総数は 12 (5 + 4 + 3 = 12) になります。

異なる次元を含む多次元ゾーンおよび値ラスター

遠隔操作探査機 (ROV) などのアセットを配置するための適切な位置およびタイム ウィンドウは、異なる時間での ROV の可能性のある位置を表す多次元ゾーン、および異なる深さと時間での海流を表す HYCOM (Hybrid Coordinate Ocean Model) モデルの出力などの多次元値ラスターを使用してゾーン統計を実行することによって、決定できます。

ゾーン演算は、値ラスターからの各スライスを使用して、ゾーン ラスターからのスライスごとに実行されます。 出力多次元ラスター内のスライスの数は、ゾーン ラスター内のスライスの数に値ラスター内のスライスの数を掛けることによって決定されます。

下の図では、ゾーン ラスターにおける変数が、3 つの次元 x、y、d、およびディメンション値での 3 つのスライス d0d1d2 を含んでいます。 値ラスターにおける変数が、3 つの次元 x、y、t、およびディメンション値での 2 つのスライス t0 および t1 を含んでいます。 出力多次元ラスター内の変数も、4 つの次元 x、y、d、t を含みます。

異なる次元の多次元ゾーン ラスターおよび値ラスター
異なる次元の多次元ゾーン入力ラスターおよび値入力ラスターと、生成されたゾーン統計ラスターが示されています。

[ゾーン統計 (Zonal Statistics)] ツールの出力内のスライスの総数は、ゾーン ラスター内の深さの数と値ラスター内の時間ステップの数を乗算することによって決定され、この場合は、6 (3 つの深さ x 2 つの時間 = 6) になります。 [ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] 出力内のレコードの総数は、各スライス内のゾーン数を乗算することによって決定されます。 ゾーン数が 5 である場合、この場合のレコードの総数は 30 (5 つのゾーン x 3 つの深さ x 2 つの時間 =30) になります。

多次元値ラスターのみ

その年の毎日の各郡内の最高気温を知るには、毎日の気温を表す多次元値ラスターおよび郡を表すゾーン ラスターを使用してゾーン統計を実行する必要があります。 ゾーン演算は、同じゾーン ラスターを使用して、値ラスターからのスライスごとに実行されます。 出力多次元ラスターは、値ラスターと同じ数のスライスを含みます。

下の図では、値ラスターにおける変数が、3 つの次元 x、y、t、およびディメンション値での 3 つのスライス t0t1t2 を含んでいます。 出力多次元ラスターにおける変数も、同じ 3 つの次元 x、y、t、およびディメンション値での同じ数のスライス t0t1t2 を含んでいます。

多次元値ラスターの処理
多次元値ラスターの処理が示されています。

[ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] 出力内のレコードの総数は、ゾーン数および値ラスター内のスライス数を乗算することによって決定されます。 ゾーン数が 5 である場合、レコードの総数は 15 (5 x 3 =15) になります。

多次元値ゾーン ラスターのみ

生態学的景観計画のために、時間と共に変化する各氾濫原ゾーン カテゴリ内の 10 年間の最大降水量の平均を知るには、氾濫原ゾーンを表す多次元ゾーン ラスターおよび 10 年間の最大降水量を表す値ラスターを使用してゾーン統計を実行する必要があります。 ゾーン演算は、同じ値ラスターを使用して、ゾーン ラスターからのスライスごとに実行されます。 出力多次元ラスターは、ゾーン ラスターと同じ数のスライスを含みます。

下の図では、ゾーン ラスターにおける変数が、3 つの次元 x、y、t、およびディメンション値での 3 つのスライス t0t1t2 を含んでいます。 出力多次元ラスターにおける変数も、同じ 3 つの次元 x、y、t、およびディメンション値での同じ数のスライス t0t1t2 を含んでいます。

多次元ゾーン ラスターの処理
多次元ゾーン ラスターの処理が示されています。

[ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] 出力内のレコードの総数は、ゾーン数およびゾーン ラスター内のスライス数を乗算することによって決定されます。 ゾーン数が 5 である場合、レコードの総数は 15 (5 x 3 =15) になります。

統計情報

ゾーン統計を計算するために使用可能な統計情報の種類を、詳細および入力例に対する各オプションの結果を示す図と共に、以下に示します。

最頻値

  • 各ゾーン内の最も頻出する値が、そのゾーン内のすべてのセルに割り当てられます。
  • 最頻値が複数ある場合は、最小値が採用され、その値がゾーン内のすべてのセルに割り当てられます。

例:

ゾーン統計 (Zonal Statistics) の最頻値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Majority")

最大

  • 各ゾーン内の最大値が、そのゾーン内のすべてのセルに割り当てられます。

例:

ゾーン統計 (Zonal Statistics) の最大値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Maximum")

平均

  • 各ゾーン内の値の平均値がそのゾーン内のすべての出力セルに割り当てられます。
  • 算術平均の式は次のとおりです。

    算術平均の式

    ここで、

    • = 平均値
    • xi = 観測値
    • N = 観測数
  • 円形平均の式は次のとおりです。

    円形平均の式

    ここで、

    • = 円形平均の値
    • xi = 観測値
    • N = 観測数

    Σsin xi と Σcos xi がどちらも 0 に相当する不完全なケースでは、特別な値として -1 が使用されます。この値は、円形平均が明確に定義されていないことを意味します。

例:

ゾーン統計 (Zonal Statistics) の平均値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Mean")

中央値

  • 各ゾーン内の値の中央値がそのゾーン内のすべての出力セルに割り当てられます。
  • この統計情報の種類の値は、Hyndman および Fan (1996 年) の手法 Q1 を使用して計算されます。 2 つの格納された値がターゲットの中央値に等しく近い場合、2 つの値のうちの小さいが選択されます。
  • 中央値を計算するために、ゾーン内のすべてのセルがランク付けされます。 ゾーン内に n 個のセルがあり、n が奇数の場合、ゾーン内の各セルに中央 ((n+1)/2 番目) の値が書き込まれます。 偶数のセルがある場合は、(n/2) 番目の値が出力されます。

例:

ゾーン統計 (Zonal Statistics) の中央値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Median")

最小

  • 各ゾーン内の最小値がそのゾーン内のすべてのセルに割り当てられます。

例:

ゾーン統計 (Zonal Statistics) の最小値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Minimum")

最少頻値

  • 各ゾーン内の最も頻出しない値が、そのゾーン内のすべてのセルに割り当てられます。
  • 最少頻値が複数ある場合は、小さい方の値が採用され、その値でゾーンが埋め尽くされます。

例:

ゾーン統計 (Zonal Statistics) の最少頻値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Minority")

パーセンタイル

  • 各ゾーン内の値のパーセンタイルが、そのゾーン内のすべての出力セルに割り当てられます。
  • この統計情報の種類の値は、Hyndman および Fan (1996 年) の手法 Q1 を使用して計算されます。 2 つの格納された値がターゲットの中央値に等しく近い場合、2 つの値のうちの小さいが選択されます。
  • パーセンタイルを計算するために、式 R = P/100 x (n - 1) +1 を使用して値ラスター内のすべてのセルがランク付けされます。P は目的のパーセンタイル、n はセルの数です。

例:

ゾーン統計 (Zonal Statistics) のパーセンタイルの図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Percentile")

範囲

  • 各ゾーン内の最大値と最小値の差が、そのゾーン内のすべてのセルに割り当てられます。
  • 範囲は次のように定義されます。
    ゾーンの範囲 = ゾーンの最大値 - ゾーンの最小値

例:

ゾーン統計 (Zonal Statistics) の範囲の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Range")

標準偏差

  • 各ゾーン内の値の標準偏差が、そのゾーン内のすべてのセルに割り当てられます。
  • 算術標準偏差の式は次のとおりです。

    標準偏差の式

    ここで、

    • σ = 標準偏差
    • xi = 観測値
    • = 平均値
    • N = 観測数
    注意:

    標準偏差は、サンプルから推定される (N - 1 法) のではなく、母集団全体で計算されます (N 法)。 つまり、標準偏差の計算は、Microsoft Excel の STDEV ではなく、STDEVP の方法と同じです。

  • 円周標準偏差の式は次のとおりです。

    円周標準偏差の式

    ここで、

    • σ = 円周標準偏差
    • = Vector a の結果として生成される平均の長さ

      度単位の n 個の角度の例では、角度 a1、a2、~ an が集計され、それぞれの角度が単位ベクトル Vector a で表されます。この単位ベクトルは、対応する観測の方向を示します。

例:

ゾーン統計 (Zonal Statistics) の標準偏差の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "STD")

合計

  • 各ゾーン内のすべてのセル値の合計が、そのゾーン内のすべてのセルに割り当てられます。
  • 出力ラスターのデータ タイプは浮動小数点数です。 これは、合計の値は非常に大きくなる傾向があり、整数値で表すことができない場合があるためです。

    たとえば、1 つのゾーンに 2,500 個のロウと 2,500 個のカラムのセルがあり、各セルの値が 1,000 である場合、 そのゾーンの合計値は、2,500 x 2,500 x 1,000 = 62.5 億になります。 整数値の出力が必要で、その範囲が ± 21.47 億以内の場合は、[Int] ツールを適用することができます。

例:

ゾーン統計 (Zonal Statistics) の合計値の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Sum")

種類

  • 各ゾーン内の個別値の数が、そのゾーン内のすべてのセルに割り当てられます。

例:

ゾーン統計 (Zonal Statistics) の種類の図
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "Variety")

出力データ タイプ

出力データ タイプ (整数または浮動小数) は、実行するゾーン計算と入力値ラスターのタイプの両方によって決定されます。 次の表は、出力可能なラスターのデータ タイプを示しています。

統計値の入力タイプ出力

最頻値

整数*

整数

最大

整数、浮動小数点数

値の入力と同じ

平均

整数、浮動小数点数

Float

中央値

整数、浮動小数点数

整数

最小

整数、浮動小数点数

値の入力と同じ

最少頻値

整数*

整数

パーセンタイル

整数、浮動小数点数

整数

範囲

整数、浮動小数点数

値の入力と同じ

標準偏差

整数、浮動小数点数

Float

合計

整数、浮動小数点数

Float

種類

整数*

整数

統計情報別の入力タイプと出力タイプ
注意:

* 整数のみがサポートされています。

ゾーン データセット内のいずれかのセル位置が NoData である場合、出力では、その位置に NoData が割り当てられます。

参考文献

Rob J. Hyndman and Yanan Fan (1996) "Sample Quantiles in Statistical Packages" The American Statistician, Vol. 50, No. 4 (Nov., 1996), pp. 361-365.