#COLLATION FUNCTIONS reader.info=function(url){ fred=readLines(url) fred=fred[substr(fred,1,13)==""] n=nchar(fred) fred=substr(fred,14,n) #id=as.numeric(substr(fred,1,5)); #n=nchar(fred) #fred=substr(fred,15,n) n=nchar(fred) temp=(substr(fred,n-4,n)=="") fred[temp]=substr(fred[temp],1,n[temp]-5) fred=strsplit(fred,"") fred=t(sapply(fred,rbind)) fred=data.frame(fred) names(fred)=c("id","name","lat","long") for(i in 1:4) fred[,i]=as.character(fred[,i]) fred$id=as.numeric(fred$id) n=nchar(fred$lat) fred$lat= -as.numeric( substr(fred$lat,1,n-1)) n=nchar(fred$long) temp=substr(fred$long,n,n)=="E" fred$long[temp]=substr(fred$long[temp],1,n[temp]-1) fred$long=as.numeric(fred$long) fred$long[!temp]= - fred$long[!temp] reader.info=fred reader.info } si_table2f=function() { info=read.table("http://www.climateaudit.info/data/antarctic_mann/si_table2.dat") dim(info) #46 6 temp= info== -999; info[temp]=NA names(info)=c("name","lat","long","r","RE","CE") info$name=as.character(info$name);n=nchar(info$name) info$subset=NA temp= substr(info$name,n,n)=="*" info$subset[temp]=TRUE info$name[temp]=substr(info$name[temp],1,n[temp]-1) info$lat= -info$lat temp= info$long>180 info$long[temp]= -( 360- info$long[temp]) test=match(info$name,Info$surface$name);temp=!is.na(test);sum(temp) #40 info$id=NA info$id[temp]=Info$surface$id[test[temp]] info[is.na(info$id),] # name lat long RE CE r2 subset id #15 Faraday 65.4 295.6 NA NA NA TRUE NA #89063 #40 Terra_Nova_Bay 74.7 164.1 0.60 0.33 0.33 NA NA #89662 Mario_Zucchelli #43 Mt_Siple_AWS 73.2 232.9 0.58 0.31 0.31 NA NA #44 Siple_AWS 75.9 276.0 0.70 0.44 0.44 NA NA #45 Byrd_AWS 80.0 240.0 0.64 0.39 0.39 NA NA #46 Harry_AWS 73.2 232.9 0.54 0.27 0.27 NA NA info$id[c(15,40)]=c(89063,89662) #by inspection ALL are identified si_table2f=info si_table2f } si_table1f=function() { info=read.table("http://www.climateaudit.info/data/antarctic_mann/si_table1.dat",header=TRUE) #info=read.table("d:/climate/data/mann_antarc/si_table1.dat",header=TRUE) dim(info) #26 7 temp= info== -999; info[temp]=NA info$name=as.character(info$name);n=nchar(info$name) info$lat= -info$lat temp= info$long>180 info$long[temp]= -( 360- info$long[temp]) test=match(info$name,Info$aws$name);temp=!is.na(test);sum(temp) #40 info$id=NA info$id[temp]=Info$aws$id[test[temp]] info[is.na(info$id),] # name lat long r RE CE trend id #6 D10 -66.7 139.8 0.58 0.37 0.27 0.06 NA #9 Ferrel -77.9 170.8 0.88 0.77 0.75 0.25 NA #12 LGB120 -73.8 55.7 0.80 0.62 0.62 0.06 NA #18 Marily -80.0 165.1 0.77 0.59 0.57 0.26 NA #21 Pegaus_South -78.0 166.6 0.84 0.70 0.69 0.26 NA #25 Tourm._Plateau -74.1 163.4 0.62 0.09 0.15 0.08 NA info$id[c(6,9,12,18,21,25)]=c(89832,89872,89757,89868,8937,7356) #all match: stupid spelling errors in Mann SI si_table1f=info si_table1f } chronf=function(id) { #id="aws" info=Info[[paste(id)]] chron=NULL for (i in 1:nrow(info)) { loc=paste("http://www.antarctica.ac.uk/met/READER/",id,"/",info$name[i],".All.temperature.txt",sep="") test=try(read.table(loc,skip=1,na.strings="-")) if(! (class(test)=="try-error") )test=ts( c(t(test[,2:13])),start=test[1,1],freq=12) else test= ts(rep(NA,12),start=c(2000,1),freq=12) chron=ts.union(chron,test) } dimnames(chron)[[2]]=info$id #count=ts( apply(!is.na(chron),1,sum),start=c(tsp(chron)[1],1),freq=12) count=apply(!is.na(chron),2,sum) # 3 are zero chronf=chron[,count>0] chronf }