摘要
使用 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")