ArcGIS教程:最大似然法分类
摘要
对一组栅格波段运行最大似然法分类并创建分类的输出栅格数据。
使用方法
· 通过创建特征、编辑特征,或通过 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。
· 通过剔除分数得到的输出栅格中的像元数和由小于输入的对应剔除分数值的置信度总和表示的像元数之间存在直接关系。
· 假设输入为创建自多波段栅格(超过三个波段)的图层。则操作将会考虑与源数据集相关联的全部波段,而不不过由图层载入(符号化)的三个波段。
· 您能够使用多种方式将多波段栅格的波段子集指定为工具的输入。
· 假设要使用工具对话框,则通过输入栅格波段旁边的button导航至多波段栅格,打开栅格并选择所需波段。
· 假设多波段栅格是内容列表中的图层,则能够使用创建栅格图层工具来创建一个新的仅仅包括所需波段的多波段图层。
· 您还能够用波段合成来创建一个仅仅包括所需波段的新数据集,并将生成的数据集用作工具的输入。
·在 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")