衛星画像(5バンド)の時系列があり、Rのkmeansでそれらを分類したいと思います。私のスクリプトは正常に動作しています(画像をループして、画像をdata.frameに変換し、クラスター化して、元の画像に戻します。ラスター):
for (n in files) {
image <- stack(n)
image <- clip(image,subset)
###classify raster
image.df <- as.data.frame(image)
cluster.image <- kmeans(na.omit(image.df), 10, iter.max = 10, nstart = 25) ### kmeans, with 10 clusters
#add back NAs using the NAs in band 1 (identic NA positions in all bands), see http://stackoverflow.com/questions/12006366/add-back-nas-after-removing-them/12006502#12006502
image.df.factor <- rep(NA, length(image.df[,1]))
image.df.factor[!is.na(image.df[,1])] <- cluster.image$cluster
#create raster output
clusters <- raster(image) ## create an empty raster with same extent than "image"
clusters <- setValues(clusters, image.df.factor) ## fill the empty raster with the class results
plot(clusters)
}
私の問題は、クラスターの割り当てが画像ごとに異なるため、分類結果を互いに比較できないことです。たとえば、「水」は最初の画像クラスター番号1、次の2、3番目の10にあり、日付間の水の結果を比較することはできません。
クラスタの割り当てを修正するにはどうすればよいですか?
すべての画像の固定開始点を指定できますか(水が常に最初に検出され、したがって1として分類されることを期待して)。
そして、もしそうなら、どうやって?