########################Wind lidar######################################## #C.Burckhardt #2021-03 ########################################################################### ####packages#### library(readr) library(plotrix) library(openair) ####direction#### wd<-"Z:/burc/Data/WindLidar" setwd(wd) ####data#### #vertical wind speed WP <- read_delim("PAY/CNR202006_19_20.csv", ";", escape_double = FALSE, col_names = FALSE, na = "NA", trim_ws = TRUE) #reduce to 1000m and exclude every 5 measurements (vertical) WP<-WP[,c(1:9)] WP<-as.data.frame(WP) WP<-WP[seq(5, nrow(WP),5),] #time WPtime <- read_csv("PAY/Time202006_19_20.csv", col_names = FALSE, col_types = cols(X1 = col_datetime(format = "%d-%b-%Y %H:%M:%S"))) WPtime<-WPtime[seq(5, nrow(WPtime),5),] WPtime <- as.POSIXct(WPtime$X1,format = "%d-%b-%Y %H:%M:%S",tz="UTC") #height WPheight <- read_csv("PAY/Z202006_19_20.csv", col_names = FALSE) WPheight <- WPheight$X1[1:9] #prepare matrix colnames(WP)<-WPheight rownames(WP)<-WPtime WP<- WP[!is.na(WP[,1]),] #new time WPtime <- as.POSIXct(rownames(WP),tz="UTC") # get PBL height WP_ana <- t(WP) WP_dif<-matrix(NA,nrow = dim(WP_ana)[1]-1, ncol = dim(WP_ana)[2]) rownames(WP_dif)<- as.numeric(colnames(WP))[1:8]+50 WP_PBL <- data.frame(date=character(), PBLH=numeric()) for (i in 1:dim(WP_ana)[2]) { WP_dif[,i]<-diff(WP_ana[,i]) n<-which(grepl(max(abs(WP_dif[,i])),WP_dif[,i]))[1] WP_PBL[i,1]<-WPtime[i] WP_PBL[i,2]<-as.numeric(rownames(WP_dif))[n] } WP_PBL<-data.frame(date=as.POSIXct(WPtime),PBLH=as.numeric(colnames(WP)[max.col(WP,ties.method = "first")])) WP_PBL <- timeAverage(WP_PBL,avg.time = "15 min",statistic = "mean",start.date = "2020-06-19 00:00:00") write.table(WP_PBL,"Z:/burc/WindLidar/WL_PBL.csv",sep=";",row.names = F) #prepare plot variables xtcks <- pretty(WPtime) ytcks <- pretty(WPheight) ycloc <-c(ytcks[1],max(WPheight)-c(c(35,25,15,5)*max(WPheight)/100)) ybrks<-seq( -30, 30, 5) if(max(WP,na.rm=T)>ybrks[length(ybrks)]) ybrks<-c(ybrks,max(WP,na.rm=T)) if(min(WP,na.rm=T)