args=commandArgs(TRUE) for(i in 1:length(args)){ eval(parse(text=args[[i]])) } library(stringr) cnames = c( "station", "wban", "year.mo.day", "av.temp", "temp.count", "av.dewpt", "dewpt.count", "av.sealevmbar", "sealevmbar.count", "av.stationmbar", "stationmbar.count", "av.visib.miles", "visib.count", "av.wndsp.knot", "wndsp.count", "max.wndspd", "max.gust", "max.temp", "min.temp", "totalprecip.in", "snowdep.in", "frshtt") z = read.table(file=paste(station.id,".output.tab",sep=""),sep="\t",header=FALSE, as.is = TRUE,col.names = cnames) #Parse the last column of z # frshtt has 6 digits # fog, rain, snow, hail, thunder, tornado # 0 or 1. z$fog = rep("no",nrow(z)) z$rain = rep("no",nrow(z)) z$snow = rep("no",nrow(z)) z$hail = rep("no",nrow(z)) z$thunder = rep("no",nrow(z)) z$tornado = rep("no",nrow(z)) frshtt = c("fog","rain","snow","hail","thunder","tornado") for(i in 1:nrow(z)){ toParse = str_pad(as.character(z$frshtt[i]),6,pad="0") for(j in 1:nchar(toParse)){ toParse2=substr(toParse,j,j) if(toParse2=="1"){ z[i,frshtt[j]]="yes" } } } z$frshtt=NULL z$station.name = rep(station.name,nrow(z)) z$station.zone = rep(station.zone,nrow(z)) write.table(z,file=paste(station.id,".output.tab",sep=""),sep="\t",quote=FALSE,row.names=FALSE,col.names=TRUE) # # Collapse station data by year. # z$year=floor(z$year.mo.day/1E4) # years=ceiling(z$year/10)*10 # years=years[years>=min(z$year) & years<=max(z$year)] # years=unique(years) # mintmprms = list(x=z$year[!is.na(z$min.temp)],y=filter((z$min.temp[!is.na(z$min.temp)])/windowLength,rep(1,windowLength))) # mintmprms$xlabs = rep(NA,length=length(years)) # for(i in 1:length(years)){ # mintmprms$xlabs[i] = which(mintmprms$x==years[i])[1] # } # maxtmprms = list(x=z$year[!is.na(z$max.temp)],y=filter((z$max.temp[!is.na(z$max.temp)])/windowLength,rep(1,windowLength))) # maxtmprms$xlabs = rep(NA,length=length(years)) # for(i in 1:length(years)){ # maxtmprms$xlabs[i] = which(maxtmprms$x==years[i])[1] # } # # avsealevrms = list(x=z$year[!is.na(z$av.sealevmbar)], # y=filter((z$av.sealevmbar[!is.na(z$av.sealevmbar)])/windowLength,rep(1,windowLength))) # avsealevrms$xlabs = rep(NA,length=length(years)) # for(i in 1:length(years)){ # avsealevrms$xlabs[i] = which(avsealevrms$x==years[i])[1] # } # # setEPS() # postscript(paste(station.id,"_temp_and_sea.eps",sep="")) # par(mfrow=c(3,1)) # plot(1:length(mintmprms$y), # mintmprms$y, # main=paste("Station ID: ",station.id,sep=""), # xlab="time",xaxt="n", # ylab="min temp (deg)",type="l",col="blue") # mtext(station.name) # axis(1,mintmprms$xlabs,years) # # plot(1:length(maxtmprms$y), # maxtmprms$y, # main="", # xlab="time",xaxt="n", # ylab="max temp (deg)",type="l",col="red") # axis(1,maxtmprms$xlabs,years) # # plot(1:length(avsealevrms$y), # avsealevrms$y, # main="", # xlab="time",xaxt="n", # ylab="sea level pressure (mbar)",type="l",col="green") # axis(1,avsealevrms$xlabs,years) # # dev.off()