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

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

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

サマリー

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

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

使用法

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

  • 出力マルチバンド ラスターの順序は、入力スペクトル プロファイルの順序に従います。

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

  • 次に、*.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 フィールド
  • 各土地被覆クラスの部分占有率を計算する際、その解に負の係数または小数が含まれることがあります。 この場合、入力スペクトル プロファイルのトレーニング サンプルを確認し、各クラスが正確に表現されていることを確認してください。 正確である場合は、[出力値オプション][負以外] を選択します。

パラメーター

ラベル説明データ タイプ
入力ラスター

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

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
入力トレーニング フィーチャまたはスペクトル プロファイル

さまざまな土地被覆クラスのスペクトル情報。

この情報は、ポリゴン フィーチャ、[トレーニング サンプル マネージャー] で生成されるトレーニング サンプル フィーチャクラス、[最尤法による分類器定義ファイルの作成 (Train Maximum Likelihood Classifier)] ツールで生成される分類器定義ファイル (*.ecd)、またはクラス スペクトル プロファイルを含む JSON ファイル (*.json) として指定することができます。

File; Feature Layer; String
出力値オプション
(オプション)

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

  • 合計 1 —各ピクセルのクラス値は、すべてのクラスの合計が 1 に等しくなる 10 進形式となります。 例: Class1 = 0.16、Class2 = 0.24、Class3 = 0.60。
  • 負でない —出力値が負になることはありません。
String

戻り値

ラベル説明データ タイプ
出力ラスター

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

Raster

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 に等しくなる 10 進形式となります。 例: Class1 = 0.16、Class2 = 0.24、Class3 = 0.60。
  • NON_NEGATIVE出力値が負になることはありません。
String

戻り値

名前説明データ タイプ
out_raster

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

Raster

コードのサンプル

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

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

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

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# 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.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# 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 (スタンドアロン スクリプト)

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

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

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# 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")

関連トピック