Bir dizi uydu görüntüsü (5 bant) var ve R'de kmeans tarafından sınıflandırmak istiyorum. Betiğim iyi çalışıyor (resimlerim arasında döngü, görüntüleri data.frame dönüştürmek, küme ve geri dönüştürmek raster):
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)
}
Benim sorunum: Küme atamaları görüntüden görüntüye farklı olduğundan sınıflandırma sonuçlarını birbiriyle karşılaştıramıyorum. Örneğin, "su" ilk görüntü kümesi numarası 1'de, sonraki 2'de ve üçüncü 10'dadır, bu da su sonuçlarının tarihler arasında karşılaştırılmasını imkansız hale getirir.
Küme atamasını nasıl düzeltebilirim?
Tüm görüntüler için sabit bir başlangıç noktası belirleyebilir miyim (suyun daima önce tespit edilmesini ve böylece 1 olarak sınıflandırılmasını umarak)?
Ve eğer evetse, nasıl?