[R] How to calculate the moving average for binary files?

Jonsson amen.alyaari at Bordeaux.inra.fr
Mon Feb 18 21:28:52 CET 2013


I have 12 binary (raster) files   
https://echange-fichiers.inra.fr/get?k=k3M2jatJyHy65Cs99G4 .
I would like to calculate the moving average for the 12 values for each
pixel in the 12 files.

For a simple vector we can get a moving average by using this :
              
             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)
now I want to do the same but with binary files and I tried:

    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)
    }
 
But got this error:
 
        Error in seq.default(start.at, NROW(data), by = by) : 
                                 wrong sign in 'by' argument



--
View this message in context: http://r.789695.n4.nabble.com/How-to-calculate-the-moving-average-for-binary-files-tp4658986.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list