ISO クラスタの教師なし分類(Iso Cluster Unsupervised Classification) (Spatial Analyst)
サマリ
[ISO クラスタ(Iso Cluster)] と [最尤法分類(Maximum Likelihood Classification)] ツールを使用して、一連の入力ラスタ バンドに教師なし分類を実行します。
使用法
-
このツールは、[ISO クラスタ(Iso Cluster)] と [最尤法分類(Maximum Likelihood Classification)] ツールの機能を組み合わせたもので、分類されたラスタを出力します。オプションで、シグネチャ ファイルを出力します。
-
このツールから出力されたシグネチャ ファイルは、[最尤法分類(Maximum Likelihood Classification)] など、別の分類ツールの入力として使用して、分類パラメータをさらに制御することができます。
-
クラス数として有効な最小値は 2 です。クラスタの最大数はありません。一般に、クラスタの数が増えるほど反復処理の回数も増えます。
-
以後の分類のためにシグネチャ ファイルを生成するのに必要である十分な統計情報を確保するには、各クラスタが個々のクラスタを正確に表現できるだけの数のセルを含んでいる必要があります。最小クラス サイズとして入力した値は、入力ラスタ バンド内のレイヤ数のおよそ 10 倍にする必要があります。
-
サンプル間隔として入力した値 n は、n × n ブロックから 1 つセルを選んでクラスタ計算に使用することを示します。
-
ASCII シグネチャ ファイルのクラスをマージまたは削除したり、統計情報を変更したりしてはいけません。
-
一般に、入力バンドの交差の範囲に含まれるセルが多いほど、最小クラス サイズとサンプル間隔として指定する値も大きくする必要があります。サンプル間隔として入力する値は、入力データに存在する望ましい最小のカテゴリが適切にサンプリングできる程度に小さくする必要があります。
-
出力シグネチャ ファイルのクラス ID は 1 から始まって、入力クラス数まで連続して増加します。クラス番号の割り当ては任意です。
-
出力シグネチャ ファイルの名前は、拡張子を「.gsg」にする必要があります。
すべての入力バンドが同じデータ範囲を持つ場合、より優れた結果が得られます。バンドが非常に多様なデータ範囲をもつ場合は、[マップ代数演算] で式を実行することで、データ範囲を同じ範囲に変換できます。
where: Z is the output raster with new data ranges. X is the input raster. oldmin is the minimum value of the input raster. oldmax is the maximum value of the input raster. newmin is the desired minimum value for the output raster. newmax is the desired maximum value for the output raster.
-
入力が、4 バンド以上のマルチバンド ラスタから作成したレイヤである場合、この操作では、レイヤによって読み込まれた(シンボル表示された)3 つのバンドだけでなく、ソース データセットに関連付けられたバンドがすべて考慮されます。
マルチバンド ラスタからバンドのサブセットを指定し、ツールの入力として使用するには、いくつかの方法があります。
- ツールのダイアログ ボックスを使用する場合は、[入力ラスタ バンド] の横にある参照 ボタンを使用してマルチバンド ラスタを参照し、ラスタを開いて、使用するバンドを選択します。
- マルチバンド ラスタがコンテンツ ウィンドウのレイヤである場合は、[ラスタ レイヤの作成(Make Raster Layer)] ツールを使用して、目的のバンドだけを含む新しいマルチバンド レイヤを作成できます。
- [コンポジット バンド(Composite Bands)] を使用して、目的のバンドだけを含む新しいデータセットを作成し、結果のデータセットをツールの入力として使用することもできます。
- Python では、使用するバンドをツール パラメータでリストとして直接指定できます。
構文
パラメータ | 説明 | データ タイプ |
Input_raster_bands [in_raster_band,...] |
入力ラスタ バンド。 | Raster Layer |
Number_of_classes number_of_classes |
セルをグループ化するクラスの数。 | Long |
Minimum_class_size minimum_class_size (オプション) | 有効なクラス内の最小セル数。 デフォルトは 20 です。 | Long |
Sample_interval sample_interval (オプション) |
サンプリングに使用する間隔。 デフォルトは 10 です。 | Long |
Output_signature_file out_signature_file (オプション) |
出力シグネチャ ファイル。 拡張子「.gsg」を指定する必要があります。 | File |
戻り値
名前 | 説明 | データ タイプ |
Output_classified_raster |
出力分類ラスタ。 | Raster |
コードのサンプル
次の例では、入力バンドを教師なし分類により 5 つのクラスに分類し、分類されたラスタを出力しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outUnsupervised = IsoClusterUnsupervisedClassification("redlands", 5, 20, 50)
outUnsupervised.save("c:/temp/unsup01")
次の例では、入力バンドを教師なし分類により 5 つのクラスに分類し、分類されたラスタを出力しています。
# Name: IsoClusterUnsupervisedClassification_Ex_02.py
# Description: Uses an isodata clustering algorithm to determine the
# characteristics of the natural groupings of cells in multidimensional
# attribute space and stores the results in an output ASCII signature file.
# 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 = "redlands"
classes = 5
minMembers = 50
sampInterval = 15
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute IsoCluster
outUnsupervised = IsoClusterUnsupervisedClassification(inRaster, classes, minMembers, sampInterval)
outUnsupervised.save("c:/temp/outunsup01.tif")