最尤法分類(Maximum Likelihood Classification) (Spatial Analyst)
サマリ
一連のラスタ バンドに対して最尤法分類を実行し、出力として分類されたラスタを作成します。
使用法
-
[シグネチャの作成(Create Signatures)]、[シグネチャの編集(Edit Signatures)]、[ISO クラスタ(Iso Cluster)] の各ツールで作成したシグネチャ ファイルは入力シグネチャ ファイルの有効な入力値です。拡張子は「.gsg」になります。
-
デフォルトでは、出力ラスタのすべてのセルが分類されます。各クラスは同じ確率ウェイトを持ち、そのシグネチャにアタッチされます。
-
入力事前確率ファイルは、2 つの列から構成される ASCII ファイルである必要があります。左の列の値は、クラス ID を表します。右の列の値は、それぞれのクラスの事前確率を表します。クラスの事前確率の有効な値は、ゼロ以上です。確率としてゼロを指定した場合、そのクラスは出力ラスタには出力されません。指定した事前確率の合計は、1 以下である必要があります。ファイルの形式は以下のとおりです。
1 .3 2 .1 4 .0 5 .15 7 .05 8 .2
ファイル内で省略されたクラスは、値 1 の残りを平均した事前確率が割り当てられます。上の例では、シグネチャ ファイルには 1 ~ 8 のすべてのクラスがあります。クラス 3 と 6 の事前確率は、入力事前確率ファイルにありません。上のファイルで指定されたすべての確率の合計は 0.8 なので、確率の残りの部分(0.2)が指定されていないクラスの数(2)で除算されます。そのため、クラス 3 と 6 には、それぞれ確率 0.1 が割り当てられます。
-
2 つの有効値の間に除外する端数が指定された場合、次に大きい有効値に割り当てられます。たとえば、0.02 は 0.025 になります。
-
除外する端数による出力ラスタの未分類セルの数と、除外する端数に入力された各値より小さい信頼度の合計で表されるセルの数には、直接的な関係があります。
-
入力が、4 バンド以上のマルチバンド ラスタから作成したレイヤである場合、この操作では、レイヤによって読み込まれた(シンボル表示された)3 つのバンドだけでなく、ソース データセットに関連付けられたバンドがすべて考慮されます。
マルチバンド ラスタからバンドのサブセットを指定し、ツールの入力として使用するには、いくつかの方法があります。
- ツールのダイアログ ボックスを使用する場合は、[入力ラスタ バンド] の横にある参照 ボタンを使用してマルチバンド ラスタを参照し、ラスタを開いて、使用するバンドを選択します。
- マルチバンド ラスタがコンテンツ ウィンドウのレイヤである場合は、[ラスタ レイヤの作成(Make Raster Layer)] ツールを使用して、目的のバンドだけを含む新しいマルチバンド レイヤを作成できます。
- [コンポジット バンド(Composite Bands)] を使用して、目的のバンドだけを含む新しいデータセットを作成し、結果のデータセットをツールの入力として使用することもできます。
- Python では、使用するバンドをツール パラメータでリストとして直接指定できます。
シグネチャ ファイルのクラス名がクラス ID と異なる場合は、出力ラスタ属性テーブルに CLASSNAME というフィールドが追加されます。CLASSNAME には、出力テーブルのクラスごとに、クラスに関連付けられたクラス名が格納されます。たとえば、シグネチャ ファイルのクラスのクラス名が説明的な文字列の名前(たとえば、針葉樹、水域、都市)である場合は、これらの名前が CLSSNAME フィールドに格納されます。
-
入力の事前確率ファイルの拡張子は、「.txt」です。
構文
パラメータ | 説明 | データ タイプ |
in_raster_bands [in_raster_band,...] |
入力ラスタ バンド。 | Raster Layer |
in_signature_file |
最尤法分類に使用されるクラス シグネチャのある入力シグネチャ ファイル。 「.gsg」という拡張子が必須です。 | File |
reject_fraction (オプション) |
正しい割り当ての最小確率により、未分類のままになるセルの割合。 デフォルト値は 0.0 で、すべてのセルが分類されます。 有効なのは、0.0、0.005、0.01、0.025、0.05、0.1、0.25、0.5、0.75、0.9、0.95、0.975、0.99、0.995 の 14 のエントリです。 | String |
a_priori_probabilities (オプション) | 事前確率の決定方法を指定します。
| String |
in_a_priori_file (オプション) | 入力シグネチャ クラスの事前確率を含むテキスト ファイル。 事前確率ファイルの入力が必要になるのは、FILE オプションを使用したときだけです。 事前確率ファイルの拡張子は、「.txt」または「.asc」です。 | File |
out_confidence_raster (オプション) |
14 の信頼度の分類の確実度を示す出力信頼度ラスタ データセット。値が小さいほど、信頼度が高いことを表します。 | Raster Dataset |
戻り値
名前 | 説明 | データ タイプ |
out_classified_raster |
出力分類ラスタ。 | Raster |
コードのサンプル
次の例では、入力シグネチャ ファイルとマルチバンド ラスタから得た 5 つのクラスを含む出力分類ラスタを作成しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
mlcOut = MLClassify("redlands", "c:/sapyexamples/data/wedit5.gsg", "0.0",
"EQUAL", "", "c:/sapyexamples/output/redmlcconf")
mlcOut.save("c:/sapyexamples/output/redmlc")
次の例では、入力シグネチャ ファイルとマルチバンド ラスタから得た 5 つのクラスを含む出力分類ラスタを作成しています。
# Name: MLClassify_Ex_02.py
# Description: Performs a maximum likelihood classification on a set of
# raster bands.
# 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"
sigFile = "c:/sapyexamples/data/wedit5.gsg"
probThreshold = "0.0"
aPrioriWeight = "EQUAL"
aPrioriFile = ""
outConfidence = "c:/sapyexamples/output/redconfmlc"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
mlcOut = MLClassify(inRaster, sigFile, probThreshold, aPrioriWeight,
aPrioriFile, outConfidence)
# Save the output
mlcOut.save("c:/sapyexamples/output/redmlc02")