나는 일련의 위성 이미지 (5 밴드)를 가지고 있으며 R에서 kmeans로 분류하고 싶습니다. 내 스크립트가 정상적으로 작동합니다 (이미지를 반복하고 이미지를 data.frame으로 변환하고 클러스터링 한 다음 다시 래스터) :
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)
}
내 문제는 : 클러스터 할당자가 이미지마다 다르기 때문에 분류 결과를 서로 비교할 수 없습니다. 예를 들어, "물"은 첫 번째 이미지 클러스터 번호 1, 다음 2 및 세 번째 10에 있으므로 날짜 간의 물 결과를 비교할 수 없습니다.
클러스터 할당을 어떻게 수정합니까?
모든 이미지에 대해 고정 된 시작점을 지정할 수 있습니까 (물이 항상 먼저 감지되어 1로 분류 됨).
그리고 만약 그렇다면 어떻게?