0
我有12個二進制(光柵)文件。 我想計算12個文件中每個像素的12個值的移動平均值。如何將一個向量的簡單代碼應用於多個柵格?
對於一個簡單的載體,我們可以利用這個得到均線:
x <- c(1,2,3,NA,NA,4,6,5,6,4,2,5)
movingmean <- rollapply(x, 3, FUN = mean, na.rm = T,fill=NA)
現在我想要做相同,但與柵格和我想:
files <- list.files("C:final-2010", "*.envi", full.names = TRUE)
results <- list()
for (.files in files) {
# read in the 12 files as a vector of numbers
# that we take the average of
x <- do.call(rbind,(lapply(.files, readBin , double() ,
size = 4 ,n =1440 * 720 , signed = T)))
# take the moving average across the 12 values
# from the 12 files for each pixel
results[[length(results) + 1L]] <- rollapply(x, 3, FUN = mean,na.rm = T)
}
但得到這個錯誤:
Error in seq.default(start.at, NROW(data), by = by) :
wrong sign in 'by' argument
這是正確的。閱讀移動的幫助 – RobertH 2013-02-16 07:17:06
嗯,我認爲@羅伯特H是羅伯特Hijmans,他寫了你使用的''raster'包,所以非常熟悉代碼的作用!看看'moveFun'的默認參數。你將返回12個柵格。第一個將平均值的柵格-1,1,2,然後1,2,3,結束於11,12,13。由於-1和13不存在,所以這些值將是「NA」,但是我們有'na.rm = TRUE',這意味着第一個和最後一個將分別是柵格1和2以及11和12的平均值。如果你想要不同的東西閱讀文檔! – 2013-02-19 15:08:52