线性光谱解混 (Spatial Analyst)

获得 Image Analyst 许可后可用。

需要 Spatial Analyst 许可。

摘要

用于执行亚像素分类和计算单个像素的不同土地覆被类型的分数丰度。

线性光谱解混工具示意图

使用情况

  • 此工具可计算包含多种物质的单个像元中的物质组分占比。 该工具可生成多波段栅格,其中每个波段均与每个土地覆被类的分数丰度相对应。 例如,您可以使用该工具对多光谱图像执行土地覆被分类,以识别光合作用植被、裸土以及枯死植被或非光合作用植被。

  • 此工具支持多种形式的光谱数据输入,例如 Esri 光谱库 (.esl) 或 ENVI 光谱库格式 (.sli)。

  • 工具支持旧版 JSON 光谱输入。 以下是作为 .json 文件提供的光谱文件示例:

    
    {
      "EsriEndmemberDefinitionFile" : 0,
      "FileVersion" : 1,
      "NumberOfEndmembers" : 3,
      "NumberOfBands" : 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
              ]
        }
      ]        
    }
  • 训练最大似然法分类器工具生成的分类器定义文件 (.ecd) 是当前唯一受支持的分类器输出。

  • 面要素需要以下字段名称:

    • classname- 指示类类别名称的文本字段
    • classvalue- 包含每个类类别的整数值的长整型字段
  • 在计算每个土地覆被类的分数丰度时,解决方案中可能包含负系数或分数。 如果发生这种情况,请查看输入光谱图中的训练样本,以确认这些样本准确表示了每个类。 如果样本看上去正确无误,则请为输出值选项指定非负数

  • 如果光谱输入是 .ecd 文件、训练样本要素类或 .json 文件,则输入图像和输入光谱数据中的波段数必须匹配。

  • 如果输入光谱来自光谱库文件(.esl.sli),则若波段数不匹配,将使用波段平均法实施光谱重采样。 或者,也可使用重采样库光谱工具对光谱重采样。

  • 如果光谱数据来自反射率值介于 0 到 1 之间的光谱库,比如 USGS 光谱库,则输入表面反射率栅格也必须包含 0 到 1 之间的值。

  • 如果输入图像并不介于 0 到 1 之间,比如 8 位或 16 位,则建议使用光谱查看器工具从图像收集材料的光谱特征。 或者,也可选中移除连续谱复选框,以对像元值和输入光谱库数据进行归一化处理。

  • 在选中移除连续谱复选框后,将使用连接局部光谱最大值的直线段在整个光谱顶部拟合凸多边形。 连续谱将被分割成图像和输入光谱中每个像素的真实光谱而去除掉。 这允许基于共同的基线比较吸收要素。

参数

标注说明数据类型
输入栅格

输入表面反射率栅格数据集。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
光谱文件或训练样本

不同土地覆被类的光谱信息。

可选文件包括:

  • 光谱库浏览器窗格或光谱查看器工具创建的 Esri 光谱库文件 (.esl)
  • ENVI 光谱库文件 (.sli)
  • 训练样本管理器窗格生成的面要素类
  • 训练最大似然法分类器工具生成的 Esri 分类器定义文件 (.ecd)
  • 包含光谱数据的 .json 文件

File; Feature Layer; String
输出值选项
(可选)

指定将如何定义输出像素值。

  • 总和为一每个像素的类值都将以十进制格式提供,且所有类的总和等于 1。 例如,类 1 = 0.16;类 2 = 0.24;类 3 = 0.60。
  • 非负数不会存在负输出值。
String
移除连续谱
(可选)

指定是否基于图像或参考数据对光谱进行归一化处理

  • 选中 - 光谱将基于图像或参考数据归一化。
  • 未选中 - 光谱不会基于图像或参考数据归一化。 这是默认设置。

指定是否基于图像或参考数据对光谱进行归一化处理

  • REMOVE_CONTINUUM光谱将基于图像或参考数据归一化。
  • NO_REMOVE_CONTINUUM光谱不会基于图像或参考数据归一化。 这是默认设置。
Boolean

返回值

标注说明数据类型
输出栅格

输出多波段栅格数据集。

Raster

LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option}, {remove_continuum})
名称说明数据类型
in_raster

输入表面反射率栅格数据集。

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

不同土地覆被类的光谱信息。

可选文件包括:

  • 光谱库浏览器窗格或光谱查看器工具创建的 Esri 光谱库文件 (.esl)
  • ENVI 光谱库文件 (.sli)
  • 训练样本管理器窗格生成的面要素类
  • 训练最大似然法分类器工具生成的 Esri 分类器定义文件 (.ecd)
  • 包含光谱数据的 .json 文件

File; Feature Layer; String
value_option
[value_option,...]
(可选)

指定将如何定义输出像素值。

  • SUM_TO_ONE每个像素的类值都将以十进制格式提供,且所有类的总和等于 1。 例如,类 1 = 0.16;类 2 = 0.24;类 3 = 0.60。
  • NON_NEGATIVE不会存在负输出值。
String
remove_continuum
(可选)

指定是否基于图像或参考数据对光谱进行归一化处理

  • 选中 - 光谱将基于图像或参考数据归一化。
  • 未选中 - 光谱不会基于图像或参考数据归一化。 这是默认设置。

指定是否基于图像或参考数据对光谱进行归一化处理

  • REMOVE_CONTINUUM光谱将基于图像或参考数据归一化。
  • NO_REMOVE_CONTINUUM光谱不会基于图像或参考数据归一化。 这是默认设置。
Boolean

返回值

名称说明数据类型
out_raster

输出多波段栅格数据集。

Raster

代码示例

LinearSpectralUnmixing 示例 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

相关主题