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.
-
如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。
您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。
语法
参数 | 说明 | 数据类型 |
Input_raster_bands [in_raster_band,...] |
输入栅格波段。 | Raster Layer |
Number_of_classes number_of_classes |
要将像元划分成的类数目。 | Long |
Minimum_class_size minimum_class_size (可选) | 一个有效类中的最小像元数。 默认值为 20。 | Long |
Sample_interval sample_interval (可选) |
采样所使用的间隔。 默认值为 10。 | Long |
Output_signature_file out_signature_file (可选) |
输出特征文件。 必须指定一个 .gsg 扩展名。 | File |
返回值
名称 | 说明 | 数据类型 |
Output_classified_raster |
输出分类的栅格。 | Raster |
代码实例
本示例执行将输入波段分为 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")
本示例执行将输入波段分为 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")