摘要
使用 isodata 聚类算法来确定多维属性空间中像元自然分组的特征并将结果存储在输出 ASCII 特征文件中。
用法
· Iso 聚类工具对输入波段列表中组合的多元数据执行聚类。所生成的特征文件可用作生成非监督分类栅格的分类工具的输入。
· 类数的最小有效值为二。不存在最大聚类数。通常情况下,聚类越多,所需的迭代就越多。
· 要提供充足的必要统计数据,生成特征文件以供将来分类使用,每个聚类都应当含有足够的像元来准确地表示聚类。为最小类大小输入的值应大约比输入栅格波段中的图层数大 10 倍。
· 为采样间隔输入的值表示,在聚类计算中每 n 乘 n 块像元中使用一个像元。
· 不应合并或移除类,也不应更改 ASCII 特征文件的任何统计数据。
· 通常情况下,输入波段交集范围内所含的像元越多,为最小类大小和采样间隔所指定的值就应当越大。为采样间隔输入的值应当足够小,以便对存在于输入数据中的最小理想类别进行合理采样。
· 输出特征文件中的类 ID 值以一开始,然后按顺序增加至输入类的数量。可分配任意数量的类数。
· 如果所有输入波段的数据范围均相同,则将得到更加理想的结果。如果波段的数据范围差异很大,则可使用“地图代数”执行以下方程式,从而将各种数据范围转换为相同的范围。
· 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.
· 如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。
· 您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。
· 如果要使用工具对话框,则通过输入栅格波段旁边的按钮导航至多波段栅格,打开栅格并选择所需波段。
· 如果多波段栅格是内容列表中的图层,则可以使用创建栅格图层工具来创建一个新的只包含所需波段的多波段图层。
· 您还可以用波段合成来创建一个只包含所需波段的新数据集,并将生成的数据集用作工具的输入。
· 在 Python 中,可以在工具参数中以列表形式直接指定所需波段。
语法
IsoCluster (in_raster_bands, out_signature_file, number_classes, {number_iterations}, {min_class_size}, {sample_interval})
代码实例
Iso 聚类 (IsoCluster) 示例 1(Python 窗口)
本示例将创建一个用于将输入多波段栅格分为五类的特征文件。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
IsoCluster("redlands", "c:/sapyexamples/output/isosig.gsg", 5, 20, 50, 15)
Iso 聚类 (IsoCluster) 示例 2(独立脚本)
本示例将创建一个用于将输入多波段栅格分为五类的特征文件。
# Name: IsoCluster_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"
outSig = "redlndiso.gsg"
classes = 5
cycles = 20
minMembers = 50
sampInterval = 15
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute IsoCluster
IsoCluster(inRaster, outSig, classes, cycles, minMembers, sampInterval)
版权声明:本文为博主原创文章,未经博主允许不得转载。