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.
· 如果輸入為建立自多波段柵格(超過三個波段)的圖層,則操作將會考慮與源資料集相關聯的所有波段,而不僅僅是由圖層載入(符號化)的三個波段。
· 您可以使用多種方式將多波段柵格的波段子集指定為工具的輸入。
· 如果要使用工具對話方塊,則通過輸入柵格波段旁邊的按鈕導航至多波段柵格,開啟柵格並選擇所需波段。
· 如果多波段柵格是內容列表中的圖層,則可以使用建立柵格圖層工具來建立一個新的只包含所需波段的多波段圖層。
· 您還可以用波段合成來建立一個只包含所需波段的新資料集,並將生成的資料集用作工具的輸入。
· 在 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")