摘要
对一组栅格波段执行最大似然法分类并创建分类的输出栅格数据。
用法
· 通过创建特征、编辑特征,或通过 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。
· 通过剔除分数得到的输出栅格中的像元数和由小于输入的相应剔除分数值的置信度总和表示的像元数之间存在直接关系。
· 如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。
· 您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。
· 如果要使用工具对话框,则通过输入栅格波段旁边的按钮导航至多波段栅格,打开栅格并选择所需波段。
· 如果多波段栅格是内容列表中的图层,则可以使用创建栅格图层工具来创建一个新的只包含所需波段的多波段图层。
· 您还可以用波段合成来创建一个只包含所需波段的新数据集,并将生成的数据集用作工具的输入。
·在 Python 中,可以在工具参数中以列表形式直接指定所需波段。
· 如果特征文件中的类名称与类 ID 不同,则会向名为 CLASSNAME 的输出栅格属性表添加一个附加字段。对于输出表中的每个类,CLASSNAME 会包含与该类关联的类名称。例如,如果特征文件中各个类的类名称是描述性字符串名称(如针叶树、水体和市区),则这些名称会被传递到 CLASSNAME 字段。
· 输入先验概率文件的扩展名是 .txt。
语法
MLClassify (in_raster_bands, in_signature_file, {reject_fraction}, {a_priori_probabilities}, {in_a_priori_file}, {out_confidence_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"
# 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")
版权声明:本文为博主原创文章,未经博主允许不得转载。