Tengo una serie temporal de imágenes de satélite (5 bandas) y quiero clasificarlas por kmeans en R. Mi script está funcionando bien (recorrer mis imágenes, convertir las imágenes en data.frame, agruparlas y convertirlas nuevamente en un trama):
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)
}
Mi problema es: no puedo comparar los resultados de clasificación entre sí porque los asignadores de clúster difieren de una imagen a otra. Por ejemplo, "agua" está en el primer grupo de imágenes número 1, en los siguientes 2 y en los terceros 10, lo que hace imposible comparar los resultados del agua entre las fechas.
¿Cómo puedo arreglar la asignación del clúster?
¿Puedo especificar un punto de partida fijo para todas las imágenes (esperando que el agua siempre se detecte primero y, por lo tanto, se clasifique como 1)?
Y si es así, ¿cómo?