首页 > 代码库 > ArcGIS教程:Iso 聚类非监督分类
ArcGIS教程:Iso 聚类非监督分类
摘要
使用 Iso 聚类工具和最大似然法分类工具对一系列输入栅格波段运行非监督分类。
使用方法
· 此工具结合了 Iso 聚类工具与最大似然法分类工具的功能。输出经过分类的栅格。作为可选的,它也能够输出特征文件。
· 此工具生成的特征文件可用作其它分类工具(比如最大似然法分类)的输入。从而更好地控制分类參数。
· 类数的最小有效值为二。不存在最大聚类数。通常情况下。聚类越多,所需的迭代就越多。
· 要提供充足的必要统计数据。生成特征文件以供将来分类使用,每一个聚类都应当含有足够的像元来准确地表示聚类。
为最小类大小输入的值应大约比输入栅格波段中的图层数大 10 倍。
· 为採样间隔输入的值表示,在聚类计算中每 n 乘 n 块像元中使用一个像元。
· 不应合并或移除类,也不应更改 ASCII 特征文件的不论什么统计数据。
· 通常情况下,输入波段交集范围内所含的像元越多,为最小类大小和採样间隔所指定的值就应当越大。为採样间隔输入的值应当足够小,以便对存在于输入数据中的最小理想类别进行合理採样。
· 输出特征文件里的类 ID 值以一開始,然后按顺序添加至输入类的数量。
可分配随意数量的类数。
· 输出特征文件的名称必须具有一个 .gsg 扩展名。
· 假设全部输入波段的数据范围均同样,则将得到更加理想的结果。假设波段的数据范围差异非常大,则可使用“地图代数”运行下面方程式,从而将各种数据范围转换为同样的范围。
· where:
· Z is the output raster with new data ranges.
· X is the input raster.
· oldmin is the minimum value of the input raster.
· oldmax is the maximum value of the input raster.
· newmin is the desired minimum value for the output raster.
· newmax is the desired maximum value for the output raster.
· 假设输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的全部波段,而不不过由图层载入(符号化)的三个波段。
· 您能够使用多种方式将多波段栅格的波段子集指定为工具的输入。
· 假设要使用工具对话框,则通过输入栅格波段旁边的button导航至多波段栅格。打开栅格并选择所需波段。
· 假设多波段栅格是内容列表中的图层,则能够使用创建栅格图层工具来创建一个新的仅仅包括所需波段的多波段图层。
· 您还能够用波段合成来创建一个仅仅包括所需波段的新数据集,并将生成的数据集用作工具的输入。
· 在 Python 中,能够在工具參数中以列表形式直接指定所需波段。
语法
IsoClusterUnsupervisedClassification (Input_raster_bands, Number_of_classes, {Minimum_class_size}, {Sample_interval}, {Output_signature_file})
代码实例
Iso 聚类非监督分类 (IsoClusterUnsupervisedClassification) 演示样例 1(Python 窗体)
本演示样例运行将输入波段分为 5 类的非监督分类并输出分类的栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outUnsupervised = IsoClusterUnsupervisedClassification("redlands", 5, 20, 50)
outUnsupervised.save("c:/temp/unsup01")
Iso 聚类非监督分类 (IsoClusterUnsupervisedClassification) 演示样例 2(独立脚本)
本演示样例运行将输入波段分为 5 类的非监督分类并输出分类的栅格。
# Name: IsoClusterUnsupervisedClassification_Ex_02.py
# Description: Uses an isodata clustering algorithm to determine the
# characteristics of the natural groupings of cells in multidimensional
# attribute space and stores the results in an output ASCII signature file.
# 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"
classes = 5
minMembers = 50
sampInterval = 15
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute IsoCluster
outUnsupervised = IsoClusterUnsupervisedClassification(inRaster, classes, minMembers, sampInterval)
outUnsupervised.save("c:/temp/outunsup01.tif")
ArcGIS教程:Iso 聚类非监督分类