ゾーン統計をテーブルに出力 (Zonal Statistics As Table) (ラスター解析)

概要

別のデータセット上のゾーンごとにラスターの値を計算し、結果をテーブルに出力します。

ゾーン統計をテーブルに出力 (Zonal Statistics As Table) ツールの図

使用法

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

  • このラスター解析 ポータル ツールは、ArcGIS Enterprise「ArcGIS Enterprise の解析について」へのリンク ポータルにサイン インすると使用できます。このポータルに、ArcGIS Image Server 「ラスター解析の設定と配置」へのリンク用に構成された Raster Analysis 「ArcGIS Image Server とは」へのリンク があります。ツールを起動すると、ArcGIS Pro がクライアントとしてサービスを提供し、ArcGIS Enterprise とフェデレートされているサーバーで処理が発生します。ポータル ツールはポータルから入力としてレイヤーを受け取り、ポータルに出力を作成します。

    入力ラスター レイヤーは、ポータルから入力されたレイヤー、イメージ サービスへの URI または URL、[Image Server レイヤーの作成 (Make Image Server Layer)] ツールの出力に対応しています。入力フィーチャ レイヤーには、ポータルからのレイヤー、フィーチャ サービスへの URI または URL を使用できます。このツールは、ローカルのラスター データまたはレイヤーをサポートしません。このポータル ツールへの入力としてはローカルのフィーチャ データとレイヤーを使用できますが、ポータルのレイヤーを入力することをお勧めします。

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

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

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

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

  • [入力ゾーン ラスターまたはフィーチャ] がフィーチャである場合、値ラスターのセルの中心に重なっていないゾーン フィーチャのゾーンは内部ゾーン ラスターに変換されません。その結果、これらのゾーンは出力に表示されません。これを管理するには、フィーチャ ゾーンの目的の詳細レベルを保持する [セル サイズ] 環境の適切な値を決定し、解析環境で指定します。小さなセル サイズを指定すると、大規模な出力ラスターが生成されます。[入力値ラスター] には実際には詳細情報が存在しないため、解像度がより高い出力は必ずしも見かけほどは高品質な結果になりません。

  • [入力ゾーン ラスターまたはフィーチャ] に重なり合うフィーチャがある場合、個別のフィーチャに対してゾーン解析が実行されます。

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

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

  • [入力値ラスター] は、整数または浮動小数です。ただし、浮動小数点タイプの場合、最頻値、最少頻値、種類を計算するためのオプションは使用できません。最頻値と最少頻値の計算では、同一頻度の値が複数ある場合、ゾーンには同一頻度の値の中で最も小さい値が出力されます。

  • [統計の種類] パラメーター (Python では statisticType) の設定に応じて、フィールドまたは一連のフィールドが出力テーブルに作成されます。出力テーブルの行数は、ゾーンの数を表します。

構文

arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField, {ignoreNodata}, {statisticType}, {percentileValues}, {processAsMultidimensional}, {percentileInterpolationType})
パラメーター説明データ タイプ
inputZoneRasterOrFeatures

ゾーンを定義する入力。

ラスター データとフィーチャ データのどちらも入力ゾーンとして使用できます。

Raster Layer; Feature Layer
inputValueRaster

統計情報を集計するための値を含むラスター。

Raster Layer
outputTableName

出力テーブルの名前。

テーブルがすでに存在する場合は、別の名前を指定するよう求められます。

String
zoneField

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

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

String
ignoreNodata
(オプション)

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

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

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

値ラスターが整数の場合に使用可能なオプションは、[すべて][平均値][最頻値][最大値][中央値][最小値][最少頻値][パーセンタイル][範囲値][標準偏差][合計][種類][最小と最大][平均値および標準偏差]、および [最小値、最大値および平均値] です。

値ラスターが浮動小数点の場合のオプションは、[すべて][平均値][最大値][中央値][パーセンタイル][最小値][範囲][標準偏差]、および [合計] です。

  • ALL整数タイプの値ラスターに対して、すべての統計情報が計算されます。浮動小数点タイプの値ラスターに対して、[中央値][パーセンタイル] を除くすべての統計情報が計算されます。これがデフォルトです。
  • MEAN出力セルと同じゾーンに属する集約対象のラスター レイヤー内にある、すべてのセルの平均値が計算されます。
  • MAJORITY同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルについて最も多く存在する値を出力セルに算出します。
  • MAXIMUM同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの最大値を出力セルに算出します。
  • MEDIAN同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの中央値を出力セルに算出します。
  • MINIMUM同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの最小値を出力セルに算出します。
  • MINORITY同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルについて最も少なく存在する値を出力セルに算出します。
  • PERCENTILE出力セルと同じゾーンに属する値ラスター内にある、すべてのセルのパーセンタイルが計算されます。デフォルトで 90 番目のパーセンタイルが計算されます。[パーセンタイル値] パラメーターを使用して、その他の値 (0 ~ 100) を指定できます。
  • RANGE同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの最大値と最小値の差を出力セルに算出します。
  • STD同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの標準偏差を出力セルに算出します。
  • SUM同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルの合計値を出力セルに算出します。
  • VARIETY同じゾーンに属する集約対象のラスター レイヤー内で、すべてのセルについて一意の値の数を出力セルに算出します。
  • MIN_MAX最小値と最大値の統計情報が計算されます。
  • MEAN_STD平均値と標準偏差の統計情報が計算されます。
  • MIN_MAX_MEAN最小値、最大値および平均値の統計情報が計算されます。
String
percentileValues
[percentileValues,...]
(オプション)

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

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

このオプションは、statisticType パラメーターが PERCENTILE または ALL に設定されている場合のみ適用されます。

Double
processAsMultidimensional
(オプション)

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

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

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

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

派生した出力

名前説明データ タイプ
outputTable

出力テーブル。

ジオメトリを含まないフィーチャ サービス

コードのサンプル

ZonalStatisticsAsTable (ゾーン統計をテーブルに出力) の例 1 (Python ウィンドウ)

この例では、集約するラスター レイヤー内のセル値の平均値をゾーンごとに求めています。

import arcpy
arcpy.ra.ZonalStatisticsAsTable('https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer',
                           	'https://MyPortal.esri.com/server/rest/services/Hosted/elevation/ImageServer',
    				'outTable', 'Landuse', '', 'MEAN')
ZonalStatisticsAsTable (ゾーン統計をテーブルに出力) の例 2 (スタンドアロン スクリプト)

この例では、集約するラスター レイヤー内の統計値をゾーンごとに求めています。

#-------------------------------------------------------------------------------
# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Calculates all statistics with defined percentile values  
#              for sea-surface temperature defined by ecological zones.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inputZoneRasterOrFeatures = 'https://MyPortal.esri.com/server/rest/services/Hosted/zones/ImageServer'
inputValueRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/seaSurfaceTemperature/ImageServer'
outputTableName = 'outZSAT'
zoneField = 'temperature'
ignoreNodata = '' 
statisticType = 'PERCENTILE'
percentileValues = [25,75,90]
processAsMultidimensional = 'ALL_SLICES'
percentileInterpolationType = 'NEAREST'

# Execute Multidimensional Zonal Statistics as Table
arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField,
                                ignoreNodata, statisticType, percentileValues, processAsMultidimensional, 
                                percentileInterpolationType)

ライセンス情報

  • Basic: 次のものが必要 ArcGIS Image Server
  • Standard: 次のものが必要 ArcGIS Image Server
  • Advanced: 次のものが必要 ArcGIS Image Server

関連トピック