概要
別のデータセットのゾーン内にあるラスターの値の統計情報を計算します。
図
使用法
ゾーンは、入力データ内において、同じ値を持つすべてのエリアとして定義されます。エリアは連続していなくてもかまいません。ラスターとフィーチャのいずれも入力ゾーンとして使用できます。
このラスター解析 ポータル ツールは、ArcGIS Enterprise の ポータルにサイン インすると使用できます。このポータルに、ArcGIS Image Server 用に構成された Raster Analysis があります。ツールを起動すると、ArcGIS Pro がクライアントとしてサービスを提供し、ArcGIS Enterprise とフェデレートされているサーバーで処理が発生します。ポータル ツールはポータルから入力としてレイヤーを受け取り、ポータルに出力を作成します。
入力ラスター レイヤーは、ポータルから入力されたレイヤー、イメージ サービスへの URI または URL、[Image Server レイヤーの作成 (Make Image Server Layer)] ツールの出力に対応しています。入力フィーチャ レイヤーには、ポータルからのレイヤー、フィーチャ サービスへの URI または URL を使用できます。このツールは、ローカルのラスター データまたはレイヤーをサポートしません。このポータル ツールへの入力としてはローカルのフィーチャ データとレイヤーを使用できますが、ポータルのレイヤーを入力することをお勧めします。
[入力ゾーン レイヤー] (Python では inputZoneLayer) がラスターの場合、データ タイプは整数でなければなりません。
ゾーン入力がフィーチャである場合、値ラスターからのセル サイズとセルの配置を使用して、内部でラスターに変換されます。
[入力ゾーン レイヤー] (Python では inputZoneLayer) と [集約する入力ラスター レイヤー] (Python では inputRasterLayertoSummarize) のセル サイズが異なる場合、出力セル サイズは [入力データの最大セル サイズ] となり、値ラスターは内部でスナップ対象ラスターとして使用されます。セル サイズは同じだが、セルが位置揃えされていない場合、値ラスターがスナップ対象ラスターとして内部で使用されます。これらのいずれの場合も、ゾーン演算が実行される前に内部リサンプリングが開始されます。
ゾーンと値の両方の入力が同じセル サイズのラスターで、セル同士が位置揃えされている場合、それらの入力はツールで直接使用され、ツールの実行時に内部でリサンプリングされません。
[入力ゾーン レイヤー] の特定のゾーンが入力値ラスターのセルの中心に重なっていない場合、ゾーンは NoData になります。この場合は、ゾーン入力の詳細を保持する適切なラスター解像度を決定し、この解像度を環境のセル サイズとして使用します。小さなセル サイズを指定すると、大規模な出力ラスターが生成されます。[集約する入力ラスター レイヤー] の入力には詳細情報が存在しないため、解像度がより高い出力は必ずしも見かけほどは高品質な結果になりません。
[入力ゾーン レイヤー] に重なり合うポリゴンがある場合、個別のポリゴンに対してゾーン解析は実行されません。フィーチャ入力はラスターに変換されるため、各位置は 1 つの値しか持てません。
別の方法として考えられるのは、各ポリゴン ゾーンについてゾーン操作を反復処理して、その結果を適用することです。
[入力ゾーン レイヤー] がポイント フィーチャである場合、入力値ラスターの特定のセルが複数のポイントを含むことが可能です。そのようなセルの場合、ゾーンの値は最小の ObjectID フィールドを持つポイントによって決まります (たとえば OID や FID)。
[入力ゾーン レイヤー] を指定する場合、デフォルト ゾーン フィールドは 1 つ目の有効な整数またはテキスト フィールドになります。他に有効なフィールドが存在しないとき、ObjectID フィールド (たとえば、OID または FID) がデフォルトになります。
[集約する入力ラスター レイヤー] には、整数または浮動小数点数のいずれかのデータ タイプを使用できます。ただし、データ タイプが浮動小数点の場合、最頻値、最少頻値、種類を計算するためのオプションは使用できません。最頻値と最少頻値の統計情報では、同一頻度の値が複数ある場合、ゾーンには同一頻度の値の中で最も小さい値が出力されます。
構文
arcpy.ra.SummarizeRasterWithin(inputZoneLayer, zoneField, inputRasterLayertoSummarize, outputName, {statisticType}, {ignoreMissingValues}, {processAsMultidimensional}, {percentileValue}, {percentileInterpolationType})
パラメーター | 説明 | データ タイプ |
inputZoneLayer | ゾーンを定義する入力。 ラスター データとフィーチャ データのどちらも入力ゾーンとして使用できます。 | Raster Layer; Feature Layer |
zoneField | 各ゾーンを定義するフィールド。 ゾーン データセットの整数フィールドまたは文字列フィールドを使用できます。 | String |
inputRasterLayertoSummarize | 統計情報を集計するための値を含むラスター。 | Raster Layer |
outputName | 出力ラスター サービスの名前。 イメージ サービス レイヤーがすでに存在する場合は、別の名前を指定するよう求められます。 | String |
statisticType (オプション) | 計算する統計情報の種類を指定します。 集約されるラスターのデータ タイプが整数の場合に使用可能なオプションは、[平均値]、[最頻値]、[最大値]、[中央値]、[最小値]、[最少頻値]、[パーセンタイル]、[範囲]、[標準偏差]、[合計]、および [種類] です。 集約されるラスターのデータ タイプが浮動小数点の場合のオプションは、[平均値]、[最大値]、[中央値]、[最小値]、[パーセンタイル]、[範囲]、[標準偏差]、および [合計] です。
| String |
ignoreMissingValues (オプション) | 集約するラスター レイヤー内の欠落値が、属するエリアの結果で無視されるかどうかを指定します。
| Boolean |
processAsMultidimensional (オプション) | 多次元の場合の入力ラスターの処理方法を指定します。
| Boolean |
percentileValue (オプション) | 計算するパーセンタイル。デフォルトは 90 で、90 番目のパーセンタイルを示します。 値の範囲は 0 ~ 100 です。0 番目のパーセンタイルは、基本的に最小値の統計情報と同じであり、100 番目のパーセンタイルは最大値と同じです。値が 50 の場合、基本的に中央値の統計情報と同じ結果になります。 このオプションは、statisticType パラメーターが PERCENTILE に設定されている場合のみ適用されます。 | Double |
percentileInterpolationType (オプション) | 計算される入力ラスターの値の数が偶数である場合に使用されるパーセンタイル内挿の方法を指定します。
| String |
派生した出力
名前 | 説明 | データ タイプ |
outputRaster | 出力ラスター。 | ラスター レイヤー |
コードのサンプル
この例では、集約するラスター レイヤー内のセル値の平均をゾーンごとに求めています。
import arcpy
arcpy.SummarizeRasterWithin_ra('https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer',
'Landuse', 'https://MyPortal.esri.com/server/rest/services/Hosted/elevation/ImageServer',
'outRaster', 'MEAN', 'DATA')
この例では、集約するラスター レイヤー内の平均値をゾーンごとに求めています。
#-------------------------------------------------------------------------------
# Name: SummarizeRasterWithin_Ex_02.py
# Description: Calculates the maximum sea-surface temperature at different ecological zones.
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inputZoneLayer = 'https://MyPortal.esri.com/server/rest/services/Hosted/zones/ImageServer'
zoneField = 'temperature'
inputRasterLayertoSummarize = 'https://MyPortal.esri.com/server/rest/services/Hosted/seaSurfaceTemperature/ImageServer'
outputName = 'outSSTRaster'
statisticType = 'MAXIMUM'
ignoreMissingValues = ''
processAsMultidimensional = 'ALL_SLICES'
# Execute Multidimensional Summarize Raster Within operation
arcpy.SummarizeRasterWithin_ra(inputZoneLayer, zoneField, inputRasterLayertoSummarize,
outputName, statisticType, ignoreMissingValues)
環境
ライセンス情報
- Basic: 次のものが必要 ArcGIS Image Server
- Standard: 次のものが必要 ArcGIS Image Server
- Advanced: 次のものが必要 ArcGIS Image Server