最大似然法分类 (空间分析)
用法
-
通过创建特征、编辑特征,或通过 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 会包含与该类关联的类名称。例如,如果特征文件中各个类的类名称是描述性字符串名称(如针叶树、水体和市区),则这些名称会被传递到 CLASSNAME 字段。
-
输入先验概率文件的扩展名是 .txt。
语法
参数 | 说明 | 数据类型 |
in_raster_bands [in_raster_band,...] |
输入栅格波段。 | Raster Layer |
in_signature_file |
最大似然法分类器使用的特征类所属的输入特征文件。 需要使用一个 .gsg 扩展名。 | File |
reject_fraction (可选) |
将因最低正确分配概率而得不到分类的像元部分。 默认值为 0.0;因此,将对每个像元进行分类。 共有 14 个有效输入:0.0、0.005、0.01、0.025、0.05、0.1、0.25、0.5、0.75、0.9、0.95、0.975、0.99 和 0.995。 | String |
a_priori_probabilities (可选) | 指定将如何确定先验概率。
| String |
in_a_priori_file (可选) | 包含用于输入特征类的先验概率的文本文件。 仅在使用 FILE 选项时才需要先验概率文件的输入。 先验文件的扩展名可为 .txt 或 .asc。 | File |
out_confidence_raster (可选) |
以 14 个置信度显示分类确定性的输出置信栅格数据集,其中,最低值表示的确定性最高。 | Raster Dataset |
返回值
名称 | 说明 | 数据类型 |
out_classified_raster |
输出分类的栅格。 | Raster |
代码示例
本例将创建包含来自输入特征文件和多波段栅格的五个类的分类输出栅格。
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")
本例将创建包含来自输入特征文件和多波段栅格的五个类的分类输出栅格。
# 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" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute mlcOut = MLClassify(inRaster, sigFile, probThreshold, aPrioriWeight, aPrioriFile, outConfidence) # Save the output mlcOut.save("c:/sapyexamples/output/redmlc02")