下面给出的代码是提取一个区域的值并将其写入文本文件(目录中有 365 个二进制文件)。我面临的问题是我所有的文件都是二进制文件,大小为 360 行和 720 列。我在这一行中指定了:
file2 <- matrix(data=file,ncol=720,nrow=360)
但我得到一个错误:
均值错误(file2[X, Y], na.rm = TRUE):下标越界。
然后我将上面的行重写为:
file2 <- matrix(data=file,ncol=360,nrow=720)
我把 ncol=360 和 nrows =720 这是不对的。但这有效,我没有收到任何错误。然而,结果并不正确。
X <- c(364:369) ; Y <- c(82:92) ##### for sellected region
extract <- vector()
dir1 <- list.files("C:\\Users\\Climate_Rad_f_GAMMA_%d.img", full.names = TRUE)
listfile<-dir1()
for (i in c(1:365))
{
conne <- file(listfile[i], "rb")
file <- readBin(conne, double(), size=4, n=720*360, signed=T)
file2 <- matrix(data=file,ncol=720,nrow=360)
extract[i] <- mean(file2[X,Y],na.rm=TRUE)
close(conne)
write.table(extract,"C:\\Users\\sam.txt")
}