J'ai une série temporelle d'images satellite (5 bandes) et je souhaite les classer par kmeans dans R. Mon script fonctionne correctement (parcourir mes images, convertir les images en data.frame, les regrouper et les reconvertir en un 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)
}
Mon problème est le suivant: je ne peux pas comparer les résultats de la classification les uns aux autres car les affectations de cluster diffèrent d'une image à l'autre. Par exemple, "eau" est dans le premier groupe d'images numéro 1, dans les 2 suivants et dans le troisième 10, ce qui rend impossible la comparaison des résultats de l'eau entre les dates.
Comment puis-je corriger l'affectation du cluster?
Puis-je spécifier un point de départ fixe pour toutes les images (en espérant que l'eau est toujours détectée en premier et donc classée comme 1)?
Et si oui, comment?