##SEA ICAE ##LOAD FRM NOAA 1979 to present #ftp://sidads.colorado.edu/DATASETS/NOAA/G02135 month1=as.character(1:12); y=nchar(month1);temp=(y<2);month1[temp]=paste("0",month1[temp],sep="") month0=c("Jan", "Feb", "Mar", "Apr" ,"May" ,"Jun", "Jul", "Aug" ,"Sep", "Oct" ,"Nov", "Dec") hemi=c("N","S") seaice=NULL for(j in 1:12) { for (k in 1:2) { url="ftp://sidads.colorado.edu/DATASETS/NOAA/G02135" #/Apr/N_04_area.txt" loc=file.path(url, month0[j],paste(hemi[k],"_",month1[j],"_area.txt",sep="") ) fred=readLines(loc) year=as.numeric(substr(fred,1,4)) temp1=!is.na(year)&(year>=1978) fred=fred[temp1];year=year[temp1] test=data.frame(year, as.numeric(substr(fred,6,7)),substr(fred,27,27), as.numeric(substr(fred,29,34)),as.numeric(substr(fred,36,41)) ) names(test)=c("year","month","N","area","extent") seaice=rbind(seaice,test) } } dim(seaice) #352 5 order1=order(seaice$N,seaice$year,seaice$month) seaice=seaice[order1,] temp=(seaice$N=="N") X=seaice[temp,] names(X)[4:5]=paste(names(X)[4:5],"N",sep="_") X$area_S=seaice$area[!temp] X$extent_S=seaice$extent[!temp] seaice=X[,c(1,2,4:7)] seaice$time=seaice$year+(seaice$month-.5)/12 seaice$GLB=seaice[,3]+seaice[,5] #GLB=area_N+area_S #GLB anomaly m0=tapply(seaice$GLB,seaice$month,mean,na.rm=TRUE);m0 # 1 2 3 4 5 6 7 8 9 10 11 12 #19.76000 18.46933 19.93500 22.15200 24.15433 25.85241 26.24069 25.46414 25.49793 27.36828 27.39267 24.37621 seaice$norm=factor(seaice$month);levels(seaice$norm)=m0 seaice$norm=as.numeric(as.character(seaice$norm)) #monthly average seaice$anom.GLB=round(seaice$GLB-seaice$norm,2) plot(seaice$time,seaice$anom,type="l",ylab="GLB Area Anomaly",xlab="") #SH anomaly m0=tapply(seaice$area_S,seaice$month,mean,na.rm=TRUE) #SH seaice$norm=factor(seaice$month);levels(seaice$norm)=m0 seaice$norm=as.numeric(as.character(seaice$norm)) seaice$anom_SH=round(seaice$area_S-seaice$norm,2) #NH anomaly m0=tapply(seaice$area_N,seaice$month,mean,na.rm=TRUE) #NH seaice$norm=factor(seaice$month);levels(seaice$norm)=m0 seaice$norm=as.numeric(as.character(seaice$norm)) seaice$anom_NH=round(seaice$area_N-seaice$norm,2) ##PLOT OF ANOMALIES BY HEMISPHERE TRIPARTITE nf=layout(array(1:3,dim=c(3,1)),heights=c(1.2,1.,1.3)) par(mar=c(0,3,2,1)) plot(seaice$time,seaice$anom.GLB,type="l",ylab="SH Area Anomaly",xlab="",axes=FALSE) axis(side=1,labels=F);axis(side=2,las=1);box();abline(h=0,lty=2) title("Sea Ice Anomaly (NOAA)") text(1979,-1.5,"GLB",pos=4,font=2) par(mar=c(0,3,0,1)) plot(seaice$time,seaice$anom_SH,type="l",ylab="SH Area Anomaly",xlab="",axes=FALSE) axis(side=1,labels=F);axis(side=2,las=1);box();abline(h=0,lty=2) text(1979,1.2,"SH",pos=4,font=2) par(mar=c(3,3,0,1)) plot(seaice$time,seaice$anom_NH,type="l",ylab="SH Area Anomaly",xlab="",axes=FALSE) axis(side=1,labels=T);axis(side=2,las=1);box();abline(h=0,lty=2) text(1979,-1.0,"NH",pos=4,font=2) ##PLOT OF AREAS BY HEMISPHERE TRIPARTITE nf=layout(array(1:3,dim=c(3,1)),heights=c(1.2,1.,1.3)) par(mar=c(0,3,2,1)) plot(seaice$time,seaice$GLB,type="l",ylab="",xlab="",axes=FALSE,ylim=c(10,30)) axis(side=1,labels=F);axis(side=2,las=1);box();abline(h=mean(seaice$GLB),lty=2) title("Sea Ice Area (NOAA)") text(1979,18,"GLB",pos=4,font=2) par(mar=c(0,3,0,1)) plot(seaice$time,seaice$area_S,type="l",ylab="",xlab="",axes=FALSE,ylim=c(0,20)) axis(side=1,labels=F);axis(side=2,las=1);box();abline(h=mean(seaice$area_S),lty=2) text(1978,18,"SH",pos=4,font=2) par(mar=c(3,3,0,1)) plot(seaice$time,seaice$area_N,type="l",ylab="",xlab="",axes=FALSE,ylim=c(0,20)) axis(side=1,labels=T);axis(side=2,las=1);box();abline(h=mean(seaice$area_N),lty=2) text(1978,18,"NH",pos=4,font=2)