Image Analyst ライセンスで利用できます。
Spatial Analyst のライセンスで利用可能。
概要
サブピクセル分類を実行し、ピクセルごとに異なる土地被覆タイプの部分存在量を算出します。
使用法
このツールは、複数の土地被覆タイプを含む個々のピクセルについて、部分被覆を計算します。各バンドが、各土地被覆クラスの部分占有率に対応するマルチバンド ラスターを生成します。たとえば、光合成植生、露出土壌、枯れた植生や非光合成植生を特定するマルチスペクトル画像で、土地被覆分類を行う際に使用できます。
出力マルチバンド ラスターの順番は、入力スペクトル プロファイルの順番と同じです。
クラスの数は、入力ラスターのバンド数を超えることはできません。たとえば、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,...] (オプション) | 出力ピクセル値の定義方法を指定します。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_raster | 出力マルチバンドのラスター データセット。 | Raster |
コードのサンプル
この例では、分類器定義ファイル (*.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")
この例では、分類器定義ファイル (*.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")
この例では、トレーニング サンプル フィーチャクラス (*.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")
環境
ライセンス情報
- Basic: 次のものが必要 Image Analyst または Spatial Analyst
- Standard: 次のものが必要 Image Analyst または Spatial Analyst
- Advanced: 次のものが必要 Image Analyst または Spatial Analyst