resamp <- function( mat.raw, freq, freq_res, EIDAS) { #-------------------------------------------------------------------------------------------- #RESAMPLING #calculation of control variables #number of datasets to be averaged over avg_no=freq / freq_res #number of rows of the output data # rows=as.integer(nrow(mat.raw) / avg_no) #allocate matrix # mat.raw.res=matrix(nrow=rows, ncol=ncol(mat.raw), # dimnames = list(c(as.character(1:rows)),dimnames(mat.raw) [[2]])) #actual resampling for (i in 1:ncol(mat.raw)){ dummy <- rollapply(zoo(mat.raw[,i]), avg_no, mean, na.rm=T, by=avg_no) if(i == 1) mat.raw.res <- as.matrix(dummy, ncol=1) if(i > 1) mat.raw.res <- cbind(mat.raw.res, as.matrix(dummy, ncol=1)) } dimnames(mat.raw.res) = list(c(as.character(1:nrow(mat.raw.res))),dimnames(mat.raw) [[2]]) #overwriting the azimuth angle averages with the re-calculation from cartesian vector averages if(EIDAS == T) { mat.raw.res[,22]<-vec2az(mat.raw.res[,48:49]) #heading nacelle mat.raw.res[,38]<-vec2az(mat.raw.res[,50:51]) #heading TCM mat.raw.res[,47]<-vec2az(mat.raw.res[,52:53]) #DIRmet } return(mat.raw.res) }