需要 Spatial Analyst 许可。
描述
使用 isodata 聚类算法来确定多维属性空间中像元自然分组的特征并将结果存储在输出 ASCII 特征文件中。
使用方法
Iso 聚类工具对输入波段列表中组合的多元数据执行聚类。所生成的特征文件可用作生成非监督分类栅格的分类工具(例如最大似然法分类)的输入。
将多波段栅格指定为输入栅格波段(Python 中的 in_raster_bands)之一时,将使用所有波段。
要处理一系列来自多波段栅格的波段,可先用波段合成工具创建由这些特定波段组成的新栅格数据集,并在输入栅格波段(Python 中的 in_raster_bands)列表中使用该结果。
类数的最小有效值为二。不存在最大聚类数。通常情况下,聚类越多,所需的迭代就越多。
要提供充足的必要统计数据,生成特征文件以供将来分类使用,每个聚类都应当含有足够的像元来准确地表示聚类。为最小类大小输入的值应大约比输入栅格波段中的图层数大 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.
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
IsoCluster(in_raster_bands, out_signature_file, number_classes, {number_iterations}, {min_class_size}, {sample_interval})
参数 | 说明 | 数据类型 |
in_raster_bands [in_raster_band,...] | 输入栅格波段。 可为整型或浮点型。 | Raster Layer |
out_signature_file | 输出特征文件。 必须指定 .gsg 扩展名。 | File |
number_classes | 要将像元划分成的类数目。 | Long |
number_iterations (可选) | 要运行的聚类过程的迭代次数。 默认值为 20。 | Long |
min_class_size (可选) | 一个有效类中的最小像元数。 默认值为 20。 | Long |
sample_interval (可选) | 采样所使用的间隔。 默认值为 10。 | Long |
代码示例
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)
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst