スペクトルを使用してラスターを分類 (Classify Raster Using Spectra) (Image Analyst)

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

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

サマリー

スペクトルマッチング技術を使用してマルチバンド ラスター データセットを分類します。 入力スペクトル データはポイント フィーチャクラスまたは .json ファイルとして提供することができます。

使用法

  • 地表面反射率として指定されたスペクトル値が入力 .json ファイルに含まれる場合、センサー固有の縮尺係数を使用して、ラスター データセットの縮尺を変更する必要があります。 たとえば、Landsat 8 および 9 のコレクション 2 レベル 2 地表面反射率プロダクトは、式 Raster*0.0000275+(-0.2) を使用して、0 ~ 1 にサイズ変更できます。

  • 縮尺係数とオフセット係数を適用すると、特に水などの暗いフィーチャ上で負の値が発生します。 これらの負のピクセルは、SID 分類方法を使用する前に、マスクする必要があります。

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

  • 次に、.json ファイルとして指定するスペクトル プロファイルの例を示します。

    
    {
      "EsriEndmemberDefinitionFile" : 0,
      "FileVersion" : 1,
      "NumberOfEndmembers" : 4,
      "NumberOfBands" : 7,
      "Endmembers" : [	
        {
          "EndmemberID" : 1,
          "EndmemberName" : "basalt",
          "SpectralProfile" : [
                0.076036952,
    			                       0.08137,
    			                       0.09371,
    			                       0.10768,
    			                       0.11076,
    			                       0.11424,
    			                       0.09824
              ]
        }, 
        {
          "EndmemberID" : 2,
          "EndmemberName" : "quartz",
          "SpectralProfile" : [
                              0.75812,
                              0.77608,
                              0.80143,
                              0.81418,
                              0.82648,
                              0.85234,
                              0.86170
              ]
        },
        {
          "EndmemberID" : 3,
          "EndmemberName" : "salt deposits",
          "SpectralProfile" : [
                              0.53381,
                              0.59598,
                              0.70402,
                              0.79024,
                              0.86628,
                              0.89397,
                              0.89507
              ]
        },
        {
          "EndmemberID" : 4,
          "EndmemberName" : "limestone",
          "SpectralProfile" : [
                              0.15477,
                              0.16733,
                              0.19435,
                              0.21431,
                              0.24765,
                              0.32578,
                              0.32451
              ]
        }
      ]        
    }
  • ポイント フィーチャには、次のフィールドが必要です。

    • classname— クラス カテゴリ名を示すテキスト フィールド
    • classvalue— 各クラス カテゴリの整数値を含む long integer フィールド
  • Esri 出力分類器定義ファイル (.ecd)) は [ラスターの分類 (Classify Raster)] ツールへの入力に使用できます。

パラメーター

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

入力マルチバンド ラスター。

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
スペクトルまたはポイント

さまざまなピクセル クラスのスペクトル情報。

スペクトル情報は、ポイント フィーチャクラス、[トレーニング サンプル マネージャー] ウィンドウから生成されるトレーニング サンプル ポイント フィーチャクラス、またはクラス スペクトル プロファイルを含む .json ファイルとして指定することができます。

Feature Layer; File; String
方法

使用するスペクトル マッチング メソッドを指定します。

  • スペクトル アングル マッパー入力マルチバンド ラスターと参照スペクトルのベクター角度が計算され、各ピクセルのスペクトルがベクターとして処理されます。 角度値はラジアンで表されます。
  • スペクトル情報発散入力マルチバンド ラスターと参照スペクトルのスペクトル情報の相違が計算されます。 ピクセルと参照スペクトルの確率分布間の相違に基づいて、ピクセルごとにスコアが計算されます。 値はラジアンで表されます。
String
閾値
(オプション)

スペクトル マッチングの閾値。 この値を超えるピクセル値は未定義として分類されます。 これには、すべてのスペクトル クラスに適用される単一の値、または各クラスの値をスペースで区切ったリストを指定できます。

String
出力スコア ラスター
(オプション)

各エンド メンバーの一致する結果を格納するマルチバンド ラスター。 バンド順序は、[スペクトルまたはポイント] パラメーター値内のクラスの順序に従います。 入力が多次元ラスターの場合、出力形式は CRF である必要があります。

Raster Dataset
出力分類器定義ファイル
(オプション)

出力される .ecd ファイル。

File

戻り値

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

出力分類ラスター。

Raster

ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, {thresholds}, {out_score_raster}, {out_classifier_definition})
名前説明データ タイプ
in_raster

入力マルチバンド ラスター。

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
in_spectra_file

さまざまなピクセル クラスのスペクトル情報。

スペクトル情報は、ポイント フィーチャクラス、[トレーニング サンプル マネージャー] ウィンドウから生成されるトレーニング サンプル ポイント フィーチャクラス、またはクラス スペクトル プロファイルを含む .json ファイルとして指定することができます。

Feature Layer; File; String
method

使用するスペクトル マッチング メソッドを指定します。

  • SAM入力マルチバンド ラスターと参照スペクトルのベクター角度が計算され、各ピクセルのスペクトルがベクターとして処理されます。 角度値はラジアンで表されます。
  • SID入力マルチバンド ラスターと参照スペクトルのスペクトル情報の相違が計算されます。 ピクセルと参照スペクトルの確率分布間の相違に基づいて、ピクセルごとにスコアが計算されます。 値はラジアンで表されます。
String
thresholds
(オプション)

スペクトル マッチングの閾値。 この値を超えるピクセル値は未定義として分類されます。 これには、すべてのスペクトル クラスに適用される単一の値、または各クラスの値をスペースで区切ったリストを指定できます。

String
out_score_raster
(オプション)

各エンド メンバーの一致する結果を格納するマルチバンド ラスター。 バンド順序は、in_spectra_file パラメーター値内のクラスの順序に従います。 入力が多次元ラスターの場合、出力形式は CRF である必要があります。

Raster Dataset
out_classifier_definition
(オプション)

出力される .ecd ファイル。

File

戻り値

名前説明データ タイプ
out_classified_raster

出力分類ラスター。

Raster

コードのサンプル

ClassifyRasterUsingSpectra の例 1

この例では、クラスごとに指定された閾値を使用して Landsat 8 ラスターでスペクトル アングル マッピング (SAM) を実行します。 参照スペクトルは、.json ファイルで提供されます。

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

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

# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.json"
method = "SAM"
thresholds = ".08 .04 .05 .07"
out_score_raster = "C:/Data/scoreSAM.crf"
out_classifier_definition = "C:/Data/SAM_classifier.ecd"

# Execute 
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)

# Save output
Classified_output.save("C:/data/Classified_output.crf")
ClassifyRasterUsingSpectra の例 2

この例では、Landsat 8 ラスターとポイント フィーチャクラスから取得された参照スペクトルのスペクトル情報発散 (SID) を計算します。

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

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

# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.shp"
method = "SID"
thresholds = .08
out_score_raster = "C:/Data/scoreSID.crf"
out_classifier_definition = "C:/Data/SID_classifier.ecd"

# Execute 
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)

# Save output
Classified_output.save("C:/data/Classified_output.crf")

関連トピック