最大似然法分类 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

对一组栅格波段执行最大似然法分类并创建分类的输出栅格数据。

了解有关“最大似然法分类”工作原理的详细信息

使用情况

  • 将多波段栅格指定为输入栅格波段(Python 中的 in_raster_bands)之一时,将使用所有波段。

    要处理一系列来自多波段栅格的波段,可先用波段合成工具创建由这些特定波段组成的新栅格数据集,并在输入栅格波段(Python 中的 in_raster_bands)列表中使用该结果。

  • 通过创建特征文件编辑特征文件Iso 聚类工具创建的任何特征文件,对于输入特征文件而言均为有效条目。 它们都具有 .gsg 扩展名。

  • 默认情况下,会对输出栅格中的所有像元进行分类,每个具有相等概率权重的类都会附加到相应的特征中。

  • 输入先验概率文件必须是包含两列的 ASCII 文件。 左列中的值表示类 ID。 右列中的值表示相应类的先验概率。 类别先验概率的有效值必须大于或等于零。 如果指定零作为概率,则类无法显示在输出栅格中。 指定先验概率的总和必须小于或等于一。 该文件的格式如下:

        1  .3
        2  .1
        4  .0
        5  .15
        7  .05
        8  .2

    文件中所忽略的类将接收值 1 其余部分的平均先验概率。 在上面的示例中,所有从 1 到 8 的类都在特征文件中表示。 类 3 和类 6 的先验概率在输入先验概率文件中缺失。 由于上述文件中所有指定概率的总和等于 0.8,概率的其余部分 (0.2) 将与未指定类的数量 (2) 相除。 因此,类 3 和类 6 将被分别指定概率 0.1。

  • 位于任意两个有效值之间的指定剔除分数将被分配给下一更高级别的有效值。 例如,0.02 将变为 0.025。

  • 通过剔除分数得到的输出栅格中的未分类像元数和由小于输入的相应剔除分数值的置信度总和表示的像元数之间存在直接关系。

  • 如果特征文件中的类名称与类 ID 不同,则会向名为 CLASSNAME 的输出栅格属性表添加一个附加字段。 对于输出表中的每个类,该字段会包含与该类关联的类名称。 例如,如果特征文件中各个类的类名称是描述性字符串名称(如针叶树、水体和市区),则这些名称会被传递到 CLASSNAME 字段。

  • 输入先验概率文件的扩展名是 .txt

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

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

输入栅格波段。

虽然波段可以是整数也可以是浮点类型,但特征文件只能是整数类值。

Raster Layer
输入特征文件

最大似然法分类器使用其类特征的输入特征文件。

需要使用 .gsg 扩展名。

File
剔除分数
(可选)

选择剔除分数,该值可确定是否基于正确分配给其中一个类的像元相似度对其进行分类。 在输出分类栅格中,对于正确分配给任意类的相似度低于剔除分数的像元,将为其指定 NoData 值。

默认值为 0.0,表示将对每个像元进行分类。

有效输入包括:

  • 0.0剔除分数为 0.0
  • 0.005剔除分数为 0.005
  • 0.01剔除分数为 0.01
  • 0.025剔除分数为 0.025
  • 0.05剔除分数为 0.05
  • 0.1剔除分数为 0.1
  • 0.25剔除分数为 0.25
  • 0.5剔除分数为 0.5
  • 0.75剔除分数为 0.75
  • 0.9剔除分数为 0.9
  • 0.95剔除分数为 0.95
  • 0.975剔除分数为 0.975
  • 0.99剔除分数为 0.99
  • 0.995剔除分数为 0.995
String
先验概率权重
(可选)

指定将如何确定先验概率。

  • 相等所有类将具有相同的先验概率。
  • 采样先验概率将与特征文件内所有类中采样像元总数的相关的各类的像元数成比例。
  • 文件先验概率将会分配给输入 ASCII 先验概率文件中的各个类。
String
输入先验概率文件
(可选)

包含用于输入特征类的先验概率的文本文件。

只有在使用 File 选项时才需要先验概率文件的输入。

先验文件的扩展名可以是 .txt.asc

File
输出置信栅格
(可选)

以 14 个置信度显示分类确定性的输出置信栅格数据集,其中,最低值表示可靠性最高。 如果未在特定置信度对像元进行分类,则输出置信栅格中将不显示此置信度。

此栅格为整型。

Raster Dataset

返回值

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

输出分类的栅格。

此栅格为整型。

Raster

MLClassify(in_raster_bands, in_signature_file, {reject_fraction}, {a_priori_probabilities}, {in_a_priori_file}, {out_confidence_raster})
名称说明数据类型
in_raster_bands
[in_raster_band,...]

输入栅格波段。

虽然波段可以是整数也可以是浮点类型,但特征文件只能是整数类值。

Raster Layer
in_signature_file

最大似然法分类器使用其类特征的输入特征文件。

需要使用 .gsg 扩展名。

File
reject_fraction
(可选)

选择剔除分数,该值可确定是否基于正确分配给其中一个类的像元相似度对其进行分类。 在输出分类栅格中,对于正确分配给任意类的相似度低于剔除分数的像元,将为其指定 NoData 值。

默认值为 0.0,表示将对每个像元进行分类。

有效输入包括:

  • 0.0剔除分数为 0.0
  • 0.005剔除分数为 0.005
  • 0.01剔除分数为 0.01
  • 0.025剔除分数为 0.025
  • 0.05剔除分数为 0.05
  • 0.1剔除分数为 0.1
  • 0.25剔除分数为 0.25
  • 0.5剔除分数为 0.5
  • 0.75剔除分数为 0.75
  • 0.9剔除分数为 0.9
  • 0.95剔除分数为 0.95
  • 0.975剔除分数为 0.975
  • 0.99剔除分数为 0.99
  • 0.995剔除分数为 0.995
String
a_priori_probabilities
(可选)

指定将如何确定先验概率。

  • EQUAL所有类将具有相同的先验概率。
  • SAMPLE先验概率将与特征文件内所有类中采样像元总数的相关的各类的像元数成比例。
  • FILE先验概率将会分配给输入 ASCII 先验概率文件中的各个类。
String
in_a_priori_file
(可选)

包含用于输入特征类的先验概率的文本文件。

只有在使用 File 选项时才需要先验概率文件的输入。

先验文件的扩展名可以是 .txt.asc

File
out_confidence_raster
(可选)

以 14 个置信度显示分类确定性的输出置信栅格数据集,其中,最低值表示可靠性最高。 如果未在特定置信度对像元进行分类,则输出置信栅格中将不显示此置信度。

此栅格为整型。

Raster Dataset

返回值

名称说明数据类型
out_classified_raster

输出分类的栅格。

此栅格为整型。

Raster

代码示例

MaximimumLikelihoodClassification 示例 1(Python 窗口)

此示例创建了一个输出分类栅格,其中包含从输入特征文件和多波段栅格派生的五个类。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
mlcOut = MLClassify("redlands", "c:/sapyexamples/data/wedit5.gsg", "0.0", 
                    "EQUAL", "", "c:/sapyexamples/output/redmlcconf")
mlcOut.save("c:/sapyexamples/output/redmlc")
MaximimumLikelihoodClassification 示例 2(独立脚本)

此示例创建了一个输出分类栅格,其中包含从输入特征文件和多波段栅格派生的五个类。

# Name: MLClassify_Ex_02.py
# Description: Performs a maximum likelihood classification on a set of 
#    raster bands.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "redlands"
sigFile = "c:/sapyexamples/data/wedit5.gsg"
probThreshold = "0.0"
aPrioriWeight = "EQUAL"
aPrioriFile = ""
outConfidence = "c:/sapyexamples/output/redconfmlc"


# Execute 
mlcOut = MLClassify(inRaster, sigFile, probThreshold, aPrioriWeight, 
                    aPrioriFile, outConfidence) 

# Save the output 
mlcOut.save("c:/sapyexamples/output/redmlc02")

相关主题