Ich habe eine Zeitreihe von Satellitenbildern (5 Bänder) und möchte sie nach km in R klassifizieren. Mein Skript funktioniert einwandfrei (durchlaufen Sie meine Bilder, konvertieren Sie die Bilder in data.frame, gruppieren Sie sie und konvertieren Sie sie zurück in a 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)
}
Mein Problem ist: Ich kann die Klassifizierungsergebnisse nicht miteinander vergleichen, da sich die Clusterzuweisungen von Bild zu Bild unterscheiden. Zum Beispiel befindet sich "Wasser" im ersten Bildcluster Nummer 1, in den nächsten 2 und in der dritten 10, was es unmöglich macht, die Wasserergebnisse zwischen den Daten zu vergleichen.
Wie kann ich die Clusterzuordnung korrigieren?
Kann ich für alle Bilder einen festen Startpunkt angeben (in der Hoffnung, dass Wasser immer zuerst erkannt und somit als 1 klassifiziert wird)?
Und wenn ja, wie?