ブロック統計(Block Statistics) (Spatial Analyst)
サマリ
入力を重複しないブロックに分割し、各ブロック内での値の統計情報を計算します。算出されたそれぞれのブロックにおける値は、出力の各ブロック内にあるすべてのセルに割り当てられます。
図
使用法
-
入力ラスタが浮動小数点タイプの場合は、平均値、最大値、最小値、範囲、標準偏差、合計の統計情報だけが使用できます。最頻値、最少頻値、中央値、種類の統計情報は計算されません。入力ラスタが整数タイプの場合、すべての統計情報が使用できます。
-
円形、ドーナツ形、または扇形の近傍が指定された場合、近傍のサイズによっては、X 軸または Y 軸と垂直でないセルは計算に考慮されません。ただし、これらのセル位置は、これら円形の近傍タイプの最小境界範囲(出力ブロック)内にあるため、近傍の計算から得た値を受け取ります。
-
入力ラスタが整数の場合、出力ラスタも整数になります。例外は、[統計情報の種類(オプション)] が [MEAN] または [STD] のときで、出力ラスタは必ず浮動小数になります。入力タイプが浮動小数点の場合、出力は、すべての統計情報の種類で浮動小数になります。
-
[近傍解析] の種類が [不規則] および [加重] の場合、[カーネル ファイル] を指定する必要があります。カーネル ファイルの拡張子は「.txt」にします。
カーネル ファイルの作成と使用の詳細については、「[ブロック統計(Block Statistics)] ツールの仕組みの詳細」の不規則/加重のセクションをご参照ください。
-
[統計情報の種類(オプション)] が [MEDIAN] のとき、ブロック内のセルの数が奇数の場合、値はランク付けされ、中央の値(整数)が中央値として報告されます。ブロック内のセルの数が偶数の場合、値はランク付けされ、中央の 2 つの値の平均値に最も近い整数となります。
-
[統計情報の種類(オプション)] が [MAJORITY] のとき、単一の最頻値がない場合、つまりブロック内でその値を持つセルが最も多いという値が複数ある場合、セルには NoData が割り当てられます。[統計情報の種類(オプション)] が [MINORITY] のとき、単一の最頻値のない場合のセルにも NoData が割り当てられます。
-
[統計情報の種類(オプション)] が [MEAN]、[MINORITY]、[STD]、[SUM] の場合、[近傍解析(オプション)] を [加重] に設定できます。
構文
パラメータ | 説明 | データ タイプ |
in_raster |
ブロック統計の計算を実行するラスタ。 | Raster Layer |
neighborhood (オプション) |
Neighborhood クラスは、統計情報の計算に使用する各セル周辺のエリアの形状を指定します。 利用可能な近傍のタイプは、NbrAnnulus、NbrCircle、NbrRectangle、NbrWedge、NbrIrregular、NbrWeight です。 近傍の形式は以下のとおりです。
デフォルトの近傍は、幅と高さが 3 x 3 セルの正方形の NbrRectangle です。 | Neighborhood |
statistics_type (オプション) |
計算する統計情報の種類。
デフォルトの統計情報タイプは [MEAN] です。 | String |
ignore_nodata (オプション) |
統計計算で NoData 値を無視するかどうかを示します。
| Boolean |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
出力ブロック統計ラスタ。 | Raster |
コードのサンプル
次のサンプルでは、入力 GRID ラスタ内で重複していない各ドーナツ形状の近傍内における最小セル値を算出しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
nbr = NbrAnnulus(1, 3, "MAP")
outBlockStat = BlockStatistics("block", nbr, "MINIMUM", "")
outBlockStat.save("C:/sapyexamples/output/blockstat")
次のサンプルでは、入力 GRID ラスタ内で重複していない各ドーナツ形状の近傍内における最小セル値を算出しています。
# Name: BlockStatistics_Ex_02.py
# Description: Calculates statistics for a nonoverlapping
# neighborhood.
# 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
inRaster = "block"
nbr = NbrAnnulus(1, 3, "MAP")
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute BlockStatistics
outBlockStat = BlockStatistics(inRaster, nbr, "MINIMUM", "NODATA")
# Save the output
outBlockStat.save("C:/sapyexamples/output/blockstat")