##FUNCTIONS TO COLLECT SOLAR DATA monthly=function(A) { # utility to extract from dset with dates, values A$year=as.numeric(substr(A$date,1,4)) A$month=as.numeric(substr(A$date,6,7)) A$mm=A$year*100+A$month monthly= tapply(A[,2],A$mm,mean,na.rm=T) monthly=ts(c( monthly),start=c( A$year[1],A$month[1]),freq=12) return(monthly) } #plot.ts( monthly(pmod[,c("date","irr")])) annavg =function(x) { #utility annavg function year =floor(time(x)); annavg=ts( c( tapply(x,year,mean)),start=min(year) ); annavg} get.solar=function(dset) { if(dset=="acrim") { url="http://www.acrim.com/RESULTS/Composite/composite_acrim_hdr_1108.txt" download.file(url,"temp.dat") acrim=read.fwf("temp.dat",widths=c(16,17,15,17),skip=10) names(acrim)=c("day","irr","uncertain","julian") #julian 1980 range(acrim[,1],na.rm=T) # 1978.877 2008.742 acrim$date=as.character(as.Date(acrim$julian,origin="1980-01-01")) acrim.monthly=monthly(acrim[,c("date","irr")]) return(acrim.monthly) } if(dset=="pmod") { url="ftp://ftp.pmodwrc.ch/pub/data/irradiance/composite/DataPlots/composite_d41_62_0906.dat" download.file(url,"temp.dat") test=read.table("temp.dat",skip=44,fill=TRUE) temp=(test== -99) test[temp]=NA;pmod=test names(pmod)=c("day","julian","irr") #julian Jan 1 1980 pmod$date=as.character(as.Date(pmod$julian,origin="1980-01-01")) pmod.monthly=monthly(pmod[,c("date","irr")]) return(pmod.monthly) } if(dset=="lean95") { url<-"ftp://ftp.ncdc.noaa.gov/pub/data/paleo/climate_forcing/solar_variability/lean_irradiance/irradiance_data.txt" lean<-read.table(url,skip=9,fill=TRUE) temp<-(lean< -90);lean[temp]<-NA names(lean)<-c("year","backgr","qs11","total") lean=ts(lean[,"total"],start=1600) return(lean) } if(dset=="svalgaard") { url="http://www.leif.org/research/TSI%20(Reconstructions).txt" fred=readLines(url) N=(1:length(fred))[!is.na(as.numeric(substr(fred,1,4)))] test=read.table(url,skip=2,fill=T,header=TRUE,sep="\t",nrow=max(N)-3)[,1:11] sval=ts(test[,"Leif"],start=floor(test[1,1])) return(sval) } } # x=monthly(get.solar("pmod")[,c("date","irr")])