线性光谱分离 (Spatial Analyst)

获得 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
              ]
        }
      ]        
    }
  • 训练最大似然法分类器工具生成的分类器定义文件 (.ecd) 是当前唯一受支持的分类器输出。

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

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

参数

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

输入栅格数据集。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
输入训练要素或光谱图

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

可通过以下形式提供该信息:面要素、由训练样本管理器生成的训练样本要素类、生成自训练最大似然法分类器工具的分类器定义文件 (.ecd) 或包含类光谱图的 JSON 文件 (.json)。

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

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

  • 总和为一每个像素的类值都将以十进制格式提供,且所有类的总和等于 1。 例如,类 1 = 0.16;类 2 = 0.24;类 3 = 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

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

可通过以下形式提供该信息:面要素、生成自训练最大似然法分类器工具的分类器定义文件 (.ecd) 或包含类光谱图的 JSON 文件 (.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

返回值

名称说明数据类型
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

相关主题