Tôi có một chuỗi thời gian hình ảnh vệ tinh (5 băng tần) và muốn phân loại chúng theo kmeans trong R. Kịch bản của tôi hoạt động tốt (lặp qua hình ảnh của tôi, chuyển đổi hình ảnh thành data.frame, phân cụm chúng và chuyển đổi lại thành 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)
}
Vấn đề của tôi là: Tôi không thể so sánh các kết quả phân loại với nhau vì các hàm gán cụm khác nhau từ hình ảnh này sang hình ảnh khác. Ví dụ: "nước" nằm trong cụm ảnh đầu tiên số 1, trong 2 tiếp theo và trong 10 thứ ba, khiến cho không thể so sánh kết quả nước giữa các ngày.
Làm thế nào tôi có thể sửa chữa phân công cụm?
Tôi có thể chỉ định điểm bắt đầu cố định cho tất cả hình ảnh không (hy vọng rằng nước luôn được phát hiện đầu tiên và do đó được phân loại là 1)?
Và nếu có, làm thế nào?