リニア スペクトル分解 (Linear Spectral Unmixing) (Spatial Analyst)

Image Analyst ライセンスで利用できます。

Spatial Analyst のライセンスで利用可能。

概要

サブピクセル分類を実行し、ピクセルごとに異なる土地被覆タイプの部分存在量を算出します。

リニア スペクトル分解 (Linear Spectral Unmixing)

使用法

  • このツールは、複数の土地被覆タイプを含む個々のピクセルについて、部分被覆を計算します。各バンドが、各土地被覆クラスの部分占有率に対応するマルチバンド ラスターを生成します。たとえば、光合成植生、露出土壌、枯れた植生や非光合成植生を特定するマルチスペクトル画像で、土地被覆分類を行う際に使用できます。

  • 出力マルチバンド ラスターの順番は、入力スペクトル プロファイルの順番と同じです。

  • クラスの数は、入力ラスターのバンド数を超えることはできません。たとえば、8 バンド ラスターからは 8 つ以上のクラスについての情報は抽出できません。

  • 次に、*.json ファイルとして提供されるスペクトル プロファイルの例を示します。

    {
      "EsriEndmemberDefinitionFile" : 0,  "FileVersion" : 1,  "NumberEndmembers" : 3,  "NumberBands" : 7,  "Endmembers" : [	    {
          "EndmemberID" : 1,      "EndmemberName" : "urban",      "SpectralProfile" : [            88,			                     42,			                     48,			                     38,			                     86,			                    115,			                     59          ]    },    {
          "EndmemberID" : 2,      "EndmemberName" : "vegetation",      "SpectralProfile" : [			                       50,			                       21,			                       20,			                       35,			                       50,			                      110,			                       23          ]    },    {
          "EndmemberID" : 3,      "EndmemberName" : "water",      "SpectralProfile" : [			                       51,			                       20,			                       14,			                        9,			                        7,			                      116,			                        4          ]    }
      ]        
    }
  • 現在サポートされている分類器出力は、[最尤法による分類器定義ファイルの作成 (Train Maximum Likelihood Classifier)] ツールから生成された分類器定義ファイル (*.ecd) だけです。

  • ポリゴン フィーチャには、以下のフィールド名が必要です。

    • classname - クラス カテゴリ名を示すテキスト フィールド。
    • classvalue - 各クラス カテゴリの整数値を含む long integer フィールド。
  • 各土地被覆クラスの部分占有率を計算すると、その解にはマイナスの係数または分数が含まれることがあります。その場合は、その数値が各クラスを正確に表していることを、入力スペクトル プロファイルのトレーニング サンプルで確認してください。正確である場合は、[出力値オプション][負以外] を選択します。

構文

LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option})
パラメーター説明データ タイプ
in_raster

入力ラスター データセット。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
in_spectral_profile_file

異なる土地被覆のスペクトル情報。

これは、ポリゴン フィーチャや、[最尤法による分類器定義ファイルの作成 (Train Maximum Likelihood Classifier)] ツールから生成した分類器定義ファイル (*.ecd)、またはクラス スペクトル ファイルを含む JSON ファイル (*.json) として指定されます。

File; Feature Layer; String
value_option
[value_option,...]
(オプション)

出力ピクセル値の定義方法を指定します。

  • SUM_TO_ONE各ピクセルのクラス値は小数形式で提供され、すべてのクラスの合計は 1 になります。たとえば、Class1 = 0.16、Class2 = 0.24、Class3 = 0.60 などです。
  • NON_NEGATIVE負の出力値はありません。
String

戻り値

名前説明データ タイプ
out_raster

出力マルチバンドのラスター データセット。

Raster

コードのサンプル

Linear Spectral Unmixing (リニア スペクトル分解) の例 1 (Python ウィンドウ)

この例では、分類器定義ファイル (*.ecd) からクラスの部分占有率を計算し、マルチバンド ラスターを生成します。

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Execute 
unmixing_outputs = LinearSpectralUnmixing("C:/data/landsat7_image.crf",
    "C:/data/train_maxi_likelihood_ecd_output.ecd", "SUM_TO_ONE;NON_NEGATIVE")
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs.crf")
LinearSpectralUnmixing (リニア スペクトル分解) の例 2 (スタンドアロン スクリプト)

この例では、分類器定義ファイル (*.ecd) からクラスの部分占有率を計算し、マルチバンド ラスターを生成します。

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Define input parameters
inFile = "C:/data/landsat7_image.crf"
json_file = "C:/data/customized_endmembers.json"
options = "SUM_TO_ONE" 

# Execute 
unmixing_outputs = LinearSpectralUnmixing(inFile, json_file, options)
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_json.crf")
LinearSpectralUnmixing (リニア スペクトル分解) の例 3 (スタンドアロン スクリプト)

この例では、トレーニング サンプル フィーチャクラス (*.ecd) からクラスの部分占有率を計算し、マルチバンド ラスターを生成します。

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Define input parameters
inFile = "C:/data/landsat7_image.crf"
training_features = "C:/data/training_features.shp"
options = "SUM_TO_ONE;NON_NEGATIVE" 

# Execute 
unmixing_outputs = LinearSpectralUnmixing(inFile, training_features, options)
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_training_features.crf")

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst または Image Analyst
  • Standard: 次のものが必要 Spatial Analyst または Image Analyst
  • Advanced: 次のものが必要 Spatial Analyst または Image Analyst

関連トピック