ฉันมีอนุกรมเวลาของภาพถ่ายดาวเทียม (5 แบนด์) และต้องการจำแนกพวกมันโดย kmeans ใน R สคริปต์ของฉันทำงานได้ดี (วนผ่านรูปภาพของฉันแปลงภาพเป็น 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)
และถ้าใช่เป็นอย่างไร