;Plots for synthesis papers and posters ;Phenology paper ;syn_iav contains most plots needed - can revise ;IAV paper/NACP poster PRO syn_multivar,s,a,e,c,x1,x2,x3,x4,x5,lags=lags,s_s=s_s,a_s=a_s,e_s=e_s ;use the IMSL_allbest routine to fit data ;now X is 2D, each column is another indep var ;e.g., WT, T, PAR, VPD xn = reform(x1) ;-mean(x1,/nan) IF n_elements(x2) NE 0 THEN xn = [[xn],[reform(x2)]] IF n_elements(x3) NE 0 THEN xn = [[xn],[reform(x3)]] IF n_elements(x4) NE 0 THEN xn = [[xn],[reform(x4)]] IF n_elements(x5) NE 0 THEN xn = [[xn],[reform(x5)]] xnn = n_elements(x1) IF n_elements(lags) NE 0 THEN BEGIN FOR i = 0,n_elements(lags)-1 DO BEGIN IF lags[i] NE 0 THEN BEGIN xn[*,i] = shift(xn[*,i],lags[i]) IF lags[i] GT 0 THEN xn[0:(lags[i]-1),i] = nan() IF lags[i] LT 0 THEN xn[(xnn+lags[i]):(xnn-1),i]=nan() ENDIF ENDFOR ENDIF FOR i = 0,n_elements(xn[0,*])-1 DO xn[*,i]-=mean(xn[*,i],/nan) ; gloc = (where(finite(c)))[0] ; x2 = xn ;reform(xn)-mean(xn,/nan) ; xx = [x2,x2,x2,x2[gloc:*,*]] ; yy = [s,a,e,c[gloc:*]] ; xx = [xn,xn,xn,xn] ; yy = [s,a,e,c] xx = xn xn = [[xx[*,0:1]],[xx[*,0]*xx[*,1]]] xx_p = [xn,xn,xn,xn] yy_p = [s,a,e,c] ;imsl_allbest,xn,s,coefs=c_s,idx_coefs=i_s,/adj_r ;imsl_allbest,xn,e,coefs=c_e,idx_coefs=i_e,/adj_r ;imsl_allbest,xn,a,coefs=c_a,idx_coefs=i_a,/adj_r ;imsl_allbest,xn,c,coefs=c_c,idx_coefs=i_c,/adj_r co_s = imsl_multiregress(xn,s,anova=aa_s,t_tests=tt_s,predict_info=pp_s) rr_s = imsl_multipredict(pp_s,xn,ci_ptw_pop=rr_ss,confidence=90) co_e = imsl_multiregress(xn,e,anova=aa_e,t_tests=tt_e,predict_info=pp_e) rr_e = imsl_multipredict(pp_e,xn,ci_ptw_pop=rr_es,conf=90) co_a = imsl_multiregress(xn,a,anova=aa_a,t_tests=tt_a,predict_info=pp_a) rr_a = imsl_multipredict(pp_a,xn,ci_ptw_pop=rr_as,conf=90) co_c = imsl_multiregress(xn,c,anova=aa_c,t_tests=tt_c,predict_info=pp_c) rr_c = imsl_multipredict(pp_c,xn,ci_ptw_pop=rr_cs,conf=90) co_p = imsl_multiregress(xx_p,yy_p,anova=aa_c,t_tests=tt_c,predict_info=pp_p) rr_p = imsl_multipredict(pp_p,xx_p,ci_ptw_pop=rr_ps,conf=90) rr = [[rr_s],[rr_e],[rr_a],[rr_c]] rr_lo = transpose([rr_ss[0,*],rr_es[0,*],rr_as[0,*],rr_cs[0,*]]) rr_hi = transpose([rr_ss[1,*],rr_es[1,*],rr_as[1,*],rr_cs[1,*]]) yy = [[s],[e],[a],[c]] yy_s = [[s_s],[e_s],[a_s],[replicate(nan(),3),replicate(0.0,7)]] !p.multi = [0,2,2] plot,[0,0],[0,0],xrange=[-150,150],yrange=[-150,150],/nodata,xtitle='Observed NEE anomaly (gC m-2 yr-1)',ytitle='Model NEE anomaly (gC m-2 yr-1)' FOR j = 0,3 DO FOR i = 0,9 DO oplot,[yy[i,j]-yy_s[i,j],yy[i,j]+yy_s[i,j]],[rr[i,j],rr[i,j]] FOR j = 0,3 DO FOR i = 0,9 DO oplot,[yy[i,j],yy[i,j]],[rr_lo[i,j],rr_hi[i,j]] oplot,yy[*,0],rr[*,0],psym=symbol('circle',fill=150,size=1.25) oplot,yy[*,1],rr[*,1],psym=symbol('diamond',fill=150,size=3.5,color=200) oplot,yy[*,2],rr[*,2],psym=symbol('square',size=2) oplot,yy[*,3],rr[*,3],psym=symbol('triangle',size=2.5) oplot,[-150,150],[-150,150] stop ;1:1 plot - 5 degrees of freedon, C has 3 ;prediction C -10 to 10, WT -30 to 30 ; crange = numgen(-10.0,10.0) ; wrange = numgen(-30.0,30.0) ; cc = reform(replicate_arr(crange,n_elements(wrange)),n_elements(crange),n_elements(wrange)) ; ww = transpose(reform(replicate_arr(wrange,n_elements(crangE)),n_elements(wrange),n_elements(crange))) ; xp = [ [reform(cc,n_elements(crangE)*n_elements(wrange))],[reform(ww,n_elements(wrange)*n_elements(crangE))]] ; xp = [[xp],[xp[*,0]*xp[*,1]]] ; rr_p = imsl_multipredict(pp_p,xp) ; rr_p = reform(rr_p,n_elements(crangE),n_elements(wrange)) ; rr_p2 = imsl_multipredict(pp_s,xp) ; rr_p2 = reform(rr_p2,n_elements(crange),n_elements(wrange)) ; stop ;stop ;also reform for mean effect ; imsl_allbest,xx,yy,coefs=c_x,idx_coefs=i_x,/adj_r_square ;need at least three ; coeffs = imsl_multiregress(x,y,anova=a,t_tests=t) ; stop ;Send in lag 1 CO2_y, lag 1 WTD_y, soilt_s[3,*] lag 0 END PRO syn_printcorrel,s,a,e,c,x,name=name,lag=lag xn = reform(x)-mean(x,/nan) IF n_elements(lag) NE 0 THEN BEGIN xn = shift(xn,lag) xnn = n_elements(xn) IF lag GT 0 THEN xn[0:(lag-1)]=nan() IF lag LT 0 THEN xn[(xnn+lag):(xnn-1)]=nan() ENDIF gloc = (where(finite(c)))[0] x2 = xn ;reform(xn)-mean(xn,/nan) xx = [x2,x2,x2,x2[gloc:*]] yy = [s,a,e,c[gloc:*]] gxx = where(finite(xx),ngxx) gx = where(finite(x2),ngx) gx_c = where(finite(x2[gloc:*]),ngx_c) cors = [correl(s,x2),correl(a,x2),correl(e,x2),correl(c,x2),correl(yy,xx)] lf = transpose([[linfit(x2[gx],s[gx])],[linfit(x2[gx],a[gx])],[linfit(x2[gx],e[gx])],[linfit((x2[gloc:*])[gx_c],(c[gloc:*])[gx_c])],[linfit(xx[gxx],yy[gxx])]]) pval = [corr_ttest(corr=abs(cors[0]),n=ngx),corr_ttest(corr=abs(cors[1]),n=ngx),corr_ttest(corr=abs(cors[2]),n=ngx),corr_ttest(corr=abs(cors[3]),n=ngx_c),corr_ttest(corr=abs(cors[4]),n=ngxx)] print,name,cors,pval,lf[*,1],lf[*,0],format='(a10,5f6.2,5f6.2,5g12.3,5g12.3)' END PRO syn_correlplot,var,s,a,e,c,s_s,a_s,e_s,c_s,xtitle=xtitle,ytitle=ytitle,colors=colors,lag=lag,noerr=noerr gloc = (where(finite(c)))[0] xn = reform(var)-mean(var,/nan) IF n_elements(lag) NE 0 THEN BEGIN xn = shift(xn,lag) xnn = n_elements(xn) IF lag GT 0 THEN xn[0:(lag-1)]=nan() IF lag LT 0 THEN xn[(xnn+lag):(xnn-1)]=nan() ENDIF an = xn ;-mean(var,/nan) xrange = [min(an,/nan)-(abs(min(an,/nan))*0.2),max(an,/nan)+(abs(max(an,/nan))*0.2)] plot,[0,0],[0,0],xrange=xrange,yrange=[-150,150],xtitle=xtitle,ytitle='NEE anomaly (gC m-2 yr-1)' IF ~keyword_seT(noerr) THEN BEGIN FOR i = 0,9 DO oplot,[an[i],an[i]],[s[i]-s_s[i],s[i]+s_s[i]],color=colors[4] FOR i = 0,9 DO oplot,[an[i],an[i]],[a[i]-a_s[i],a[i]+a_s[i]],color=colors[5] FOR i = 0,9 DO oplot,[an[i],an[i]],[e[i]-e_s[i],e[i]+e_s[i]],color=colors[6] IF n_elements(c_s) NE 0 THEN FOR i = 0,9 DO oplot,[an[i],an[i]],[c[i]-c_s[i],c[i]+c_s[i]],color=colors[7] ENDIF oplot,an,s,psym=1,symsize=1.5,color=colors[0] oplot,an,a,psym=2,color=colors[1],symsize=1.5 oplot,an,e,psym=4,color=colors[2],symsize=1.5 oplot,an,c,psym=5,color=colors[3],symsize=1.5 xx = [an,an,an,an[gloc:*]] yy = [s,a,e,c[gloc:*]] gxx = where(finite(xx),ngxx) lf = linfit(xx[gxx],yy[gxx]) r = correl(xx,yy) xmod = numgen(xrange[0],xrange[1],(xrange[1]-xrange[0])/100.) oplot,xmod,xmod*lf[1]+lf[0],linestyle=2 xloc = min(an,/nan)-(abs(min(an,/nan))*0.15) xloc2 = min(an,/nan)-(abs(min(an,/nan))*0.1) plots,xloc,100,psym=1,color=colors[0] plots,xloc,60,psym=2,color=colors[1],symsize=1.5 plots,xloc,20,psym=4,color=colors[2],symsize=1.5 plots,xloc,-20,psym=5,color=colors[3],symsize=1.5 xyouts,xloc2,100,'IFUSE',color=colors[0] xyouts,xloc2,60,'EBL',color=colors[1] xyouts,xloc2,20,'ED',color=colors[2] xyouts,xloc2,-20,'CT',color=colors[3] xyouts,xloc2,-125,'r='+string(r,format='(f0.2)')+' NEE='+string(lf[1],format='(g0.3)')+'X + '+string(lf[0],format='(g0.3)') END FUNCTION syn_deseason,var ;assume monthly data, forward avg 12 pts nelem = n_elements(var) outvar = var[0:nelem-12] FOR i = 0,nelem-12 DO outvar[i] = mean(var[i:(i+11)]) return,outvar END PRO syn_CT ;read Carbontrack netcdf, extract WLEF region for 2000-2007 ;release 2008 fdir = '/data/projects/carbontracker/CarbonTrackerFluxes/' ;135 lat, 89 lon ;89,135 ;header = YYYY MM DD DOY ctarr = make_array(8,366l*8l,8,/float,value=nan()) ctarr_m = make_array(6,12,8,/float,value=nan()) cthead = ['Year','Mo','Day','DOY','Bio','Fire','Fossil','Ocean'] cthead_m = ['Year','Mo','Bio','Fire','Fossil','Ocean'] lon = 89 lat = 135 FOR y = 2000,2007 DO BEGIN print,'On year ',y ctarr[0,*,y-2000] = y ctarr_m[0,*,y-2000] = y FOR m = 1,12 DO BEGIN ctarr_m[1,m-1,y-2000] = m print,' On month ',m dim = days_in_month(m,y=y) FOR d = 1,dim DO BEGIN YYYY = string(y,format='(i4.4)') MM = string(m,format='(i2.2)') DD = string(d,format='(i2.2)') doy = dy_to_jd(YYYY+MM+DD) locs = (doy-1)*8l loce = locs+7 fname = fdir + 'CT2008.flux1x1.' + YYYY + MM + DD + '.nc' n = ncdf_open(fname) ; ncdf_varget,n,'lat',lat ; ncdf_varget,n,'lon',lon ncdf_varget,n,'bio_flux_opt',bflux ncdf_varget,n,'fire_flux_imp',fire ncdf_varget,n,'ocn_flux_opt',ocn ncdf_varget,n,'fossil_imp',fossil ; ncdf_varget,n,'date',d ncdf_varget,n,'decimal_date',dd ; ncdf_varget,n,'date_components',dc ncdf_close,n ctarr[1,locs:loce,y-2000] = m ctarr[2,locs:loce,y-2000] = d ctarr[3,locs:loce,y-2000]= doy ctarr[4,locs:loce,y-2000] = bflux[lon,lat,*]*1e6 ctarr[5,locs:loce,y-2000] = fire[lon,lat,*]*1e6 ctarr[6,locs:loce,y-2000] = fossil[lon,lat,*]*1e6 ctarr[7,locs:loce,y-2000] = ocn[lon,lat,*]*1e6 ENDFOR mlocs = where(ctarr[1,*,y-2000] EQ m,nmlocs) ctarr_m[2,m-1,y-2000] = mean(ctarr[4,mlocs,y-2000])*1.0368*dim ctarr_m[3,m-1,y-2000] = mean(ctarr[5,mlocs,y-2000])*1.0368*dim ctarr_m[4,m-1,y-2000] = mean(ctarr[6,mlocs,y-2000])*1.0368*dim ctarr_m[5,m-1,y-2000] = mean(ctarr[7,mlocs,y-2000])*1.0368*dim ENDFOR ENDFOR save,filename=mydocs()+'synthesis/ct/ctrack.sav',ctarr,cthead,ctarr_m,cthead_m stop ;time is UTC ;lon, lat, bio_flux_opt(date,lat,lon) in mol/m2/s ;date is days since 2000-01-01 00:00:00 UTC ;decimal_date in units of years ;date_components YEAR MONTH DAY HOUR MINUTE SECOND ;extract 1x1 degree ;WLEF coord = -90.272 45.946 => grab box -90/45 END PRO syn_readallflux,subset=subset ;read ABLflux (95-07), scaled LEF (97-06), and ED model flux (95-06) ;ABLflux 1995-2007 - RED restore,mydocs()+'synthesis/ablflux/ablflux_prob.sav' ;nee_prob,neem_prob,nee_prob_mn,nee_prob_min,nee_prob_max,nee_prob_std,terr,merr,werr,nruns,t_prob,m_prob,w_prob ablnee = average_arr(reform(nee_prob_mn[*,2:11],24l*10l),2,/tot) ablnee_std = average_arr(reform(nee_prob_std[*,2:11],24l*10l),2,/tot) ;nee_prob_std ; ablnee = average_arr(reform(nee_prob_mn[*,0:11],24l*12l),2,/tot) ; ablnee_std = average_arr(reform(nee_prob_std[*,0:11],24l*12l),2,/tot) ;nee_prob_std ;scaled LEF 1997-2006 - BLACK ;Interannual Flux-tower Up-Scaling Experiment restore,mydocs()+'synthesis/filled/scaled/lef_stats_pcl.sav' ;hd,me_nee,mx_nee,mn_nee,sd_nee,me_gpp,mx_gpp,mn_gpp,sd_gpp,me_re,mx_re,mn_re,sd_re yr = me_nee[0,*] mo = me_nee[1,*] tm = reform(yr+(mo/12.)) yrs = numgen(1997,2006) synnee = reform(me_nee[2,*]) synnee_std = reform(sd_nee[2,*]) ;ED MODEL 1995-2006 - BLUE restore,mydocs()+'synthesis/ed/run1/output/restart/monthly_prob.sav' ;ed_flux,ed_flux_head,ed_flux_mean,ed_flux_max,ed_flux_min,ed_flux_std ;NEE GPP ER NPP ednee = reform(ed_flux_mean[0,24:*]) ednee_std = reform(ed_flux_std[0,24:*]) ; ednee = reform(ed_flux_mean[0,0:*]) ; ednee_std = reform(ed_flux_std[0,0:*]) ;CT 2000-2007 - ORANGE restore,mydocs()+'synthesis/ct/ctrack.sav' ctnee = [replicate(nan(),36),reform(ctarr_m[2,*,0:6],12*7)] IF keyword_set(subset) THEN BEGIN ;list of months to include ;[1,2,3] mul_an = make_array(12,/float,value=nan()) mul_an[(subset-1)] = 1 mul_an = replicate_arr(mul_an,10) ctnee *= mul_an ednee *= mul_an synnee *= mul_an ablnee *= mul_an ablnee_std *= mul_an ednee_std *= mul_an ; ctnee_std *= mul_an synnee_std *= mul_an ENDIF ELSE subset = fltarr(12)+1 ;annual fluxes ablnee_yr = average_arr(ablnee,12,/tot,/nan) ednee_yr = average_arr(Ednee,12,/tot,/nan) synnee_yr = average_arr(synnee,12,/tot,/nan) ctnee_yr = average_arr(ctnee,12,/tot,/nan) ctnee_yr[0:2] = nan() ablnee_yr_std = sqrt(average_arr(ablnee_std^2,12,/tot,/nan)) ednee_yr_std = sqrt(average_arr(Ednee_std^2,12,/tot,/nan)) synnee_yr_std = sqrt(average_arr(synnee_std^2,12,/tot,/nan)) ablnee_yr_an = ablnee_yr - mean(Ablnee_yr,/nan) ednee_Yr_an = ednee_yr - mean(ednee_yr,/nan) synnee_yr_an = synnee_yr - mean(Synnee_yr,/nan) ctnee_yr_an = ctnee_yr - mean(ctnee_yr,/nan) ablnee_ds = syn_deseason(ablnee)*12 ednee_ds = syn_deseason(ednee)*12 synnee_ds = syn_deseason(synnee)*12 ctnee_ds = syn_deseason(ctnee)*12 ablnee_ds_an = ablnee_ds-mean(ablnee_ds,/nan) ednee_ds_an = ednee_ds-mean(ednee_ds,/nan) synnee_ds_an = synnee_ds-mean(synnee_ds,/nan) ctnee_ds_an = ctnee_ds-mean(ctnee_ds,/nan) restore,mydocs()+'synthesis/filled/filled2d.sav' ;WT restore,mydocs()+'synthesis/wd/wd.sav' wtd = [replicate(nan(),365l*3l),reform(wd_fill)] restore,mydocs()+'synthesis/wd/wd2.sav' ;Lake and well restore,mydocs()+'synthesis/wd/LTERlevels.sav' ;compute vars we need 97-06 annual and seasonal airt = average_arr(reform(fillclim2d[5,1:*,16]),2) soilt = average_arr(reform(fillclim2d[6,1:*,16]),2) par = average_arr(reform(fillclim2d[7,1:*,16]),2,/tot) precip = average_arr(reform(fillclim2d[8,1:*,16]),2,/tot) vpd = average_arr(reform(fillclim2d[9,1:*,16]),2) soilm = average_arr(reform(fillclim2d[13,1:*,16]),2) ;monthly avg yymmdd = jd_to_dy(fillclim2d[2,1:*:2,16],yr=fillclim2d[1,1:*:2,16]) yrmonth = ((float(strmid(yymmdd,0,4))-1997.)*12.)+(float(strmid(yymmdd,4,2))-1.) airt_m = bin_avg(yrmonth,airt) soilt_m = bin_avg(yrmonth,soilt) par_m = bin_avg(yrmonth,par,nvals=np) par_m *= np precip_m = bin_avg(yrmonth,precip,nvals=np) precip_m *= np vpd_m = bin_avg(yrmonth,vpd) soilm_m = bin_avg(yrmonth,soilm) wtd_m = bin_avg(yrmonth,wtd) ;clim vars climvar = read_ascii(mydocs()+'synthesis/climvar/Climvars.csv',delim=',',data_start=1) climvar = climvar.(0) globalt = (climvar[1,*]-32.)*(5./9.) nao = reform(climvar[2,*]) nino = reform(climvar[3,*]) pdo = reform(climvar[4,*]) pna = reform(climvar[5,*]) soi = reform(climvar[6,*]) ;annual avg airt_y = average_arr(airt,365) soilt_y = average_arr(soilt,365) par_y = average_arr(par,365,/tot) precip_y = average_arr(precip,365,/tot) vpd_y = average_arr(vpd,365) soilm_y = average_arr(soilm,365) wtd_y = average_arr(wtd,365,/nan) co2 = (read_ascii(mydocs()+'wlef_co2/monthlyco2.txt')).(0) co2_m = reform(co2[2,1164:1283]) co2_y = average_arr(co2_m,12) dco2_y = deriv(co2_y) ; co2_y = [362.76,365.48,367.56,368.77,370.35,372.39,374.94,376.76,378.78,380.92] ; dco2_y = [1.97,2.92,1.36,1.23,1.85,2.38,2.21,1.64,2.44,1.76] leafon_wc = [nan(),nan(),147.,149.,147.,115.,159.,163.,158.,152.] leafs_wc = [nan(),nan(),268.,270.,269.,273.,277.,278.,269.,268.] leafoff_wc = [nan(),nan(),293.,295.,291.,296.,299.,301.,301.,288.] gsl_wc = leafoff_wc-leafon_wc gsl2_wc = leafs_wc-leafon_wc age_ed = [43.0,43.2,43.8,44.1,44.3,45.2,45.5,45.5,46.3,46.5] globalt_y = average_arr(globalt,12) nao_y = average_arr(nao,12) nino_y = average_arr(nino,12) pdo_y = average_arr(pdo,12) pna_y = average_arr(pna,12) soi_y = average_arr(soi,12) ;deseason for clim vars too airt_ds = syn_deseason(mo_avg(airt)) soilt_ds = syn_deseason(mo_avg(soilt)) par_ds = syn_deseason(mo_avg(par)) precip_ds = syn_deseason(mo_avg(precip)) vpd_ds = syn_deseason(mo_avg(vpd)) soilm_ds = syn_deseason(mo_avg(soilm)) wtd_ds = syn_deseason(mo_avg(wtd)) globalt_ds = syn_deseason(globalt) nao_ds = syn_deseason(nao) nino_ds = syn_deseason(nino) pdo_ds = syn_deseason(pdo) pna_ds = syn_deseason(pna) soi_ds = syn_deseason(soi) ;stop ; airt_y = average_arr(airt,365) ; soilt_y = average_arr(soilt,365) ; par_y = average_arr(par,365,/tot) ; precip_y = average_arr(precip,365,/tot) ; vpd_y = average_arr(vpd,365) ; soilm_y = average_arr(soilm,365) ; wtd_y = average_arr(wtd,365,/nan) ;seasonal avg airt_s = reform(average_arr([nan(),airt_m[0:118]],3,/nan),4,10) soilt_s = reform(average_arr([nan(),soilt_m[0:118]],3,/nan),4,10) par_s = reform(average_arr([nan(),par_m[0:118]],3,/nan),4,10) precip_s = reform(average_arr([nan(),precip_m[0:118]],3,/nan),4,10)*3. vpd_s = reform(average_arr([nan(),vpd_m[0:118]],3,/nan),4,10) soilm_s = reform(average_arr([nan(),soilm_m[0:118]],3,/nan),4,10) globalt_s = reform(average_arr([nan(),globalt[0:118]],3,/nan),4,10) nao_s = reform(average_arr([nan(),nao[0:118]],3,/nan),4,10) nino_s = reform(average_arr([nan(),nino[0:118]],3,/nan),4,10) pdo_s = reform(average_arr([nan(),pdo[0:118]],3,/nan),4,10) pna_s = reform(average_arr([nan(),pna[0:118]],3,/nan),4,10) soi_s = reform(average_arr([nan(),soi[0:118]],3,/nan),4,10) wtd_s = reform(average_arr([nan(),wtd_m[0:118]],3,/nan),4,10) co2_s = reform(average_arr([nan(),co2_m[0:118]],3,/nan),4,10) restore,mydocs()+'synthesis/filled/pheno.sav' ;gsl,leafon,leafoff, and an_* extract for LEF? leafon2 = total(leafon,1)/5. leafoff2 = total(leafoff,1)/5. gsl2 = leafoff2-leafon2 ;consistent slopes for gsl, etc... ; wtd_y[0:2] = [2.29688,-25.6406,-31.765] ;correction based on Trout Bog ; syn_multivar,synnee_yr_an,ablnee_yr_An,ednee_yr_an,ctnee_yr_an,soilt_s[3,*],wtd_y,lags=[0,1] ;airt_y,par_Y,vpd_y,wtd_Y,lags=[0,0,0,1] ;PAPER PLOTS ;Top-down CT - triangle, ABL - square ;Bottom-up SYN - filled circle, ED - filled diamong ;Fig. 1 MAP - poster has it ;Fig. 2 a Monthly b Ensemble monthly !p.multi = [0,2,2] plot,[0,0],[0,0],/nodata,xrange=[1997,2007],yrange=[-150,50],ytitle='NEE (gC m-2 mo-1)' oplot,[1997,2007],[0,0] oplot,yr+mo/12,synnee,psym=symbol('circle',fill=150,size=1.25*0.75)*(-1) ; oplot,(yr+mo/12)[1:*:3],synnee[1:*:3],psym=symbol('circle',fill=150,size=1.25) ;*(-1) oplot,yr+mo/12,ednee,psym=symbol('diamond',fill=150,size=3.5*0.75,color=200)*(-1),color=200 plot,[0,0],[0,0],/nodata,xrange=[1997,2007],yrange=[-150,50],ytitle='NEE (gC m-2 mo-1)' oplot,[1997,2007],[0,0] ; oplot,(yr+mo/12)[1:*:3],ednee[1:*:3],psym=symbol('diamond',fill=150,size=3.5,color=200) oplot,yr+mo/12,ablnee,psym=symbol('square',size=2*0.75)*(-1) ; oplot,(yr+mo/12)[1:*:3],ablnee[1:*:3],psym=symbol('square',size=2) oplot,yr+mo/12,ctnee,color=200,thick=2 ;,psym=symbol('triangle',size=2.5*0.75)*(-1),color=200 oplot,yr+mo/12,ctnee,psym=symbol('triangle',size=2.5*0.9)*(1),color=0 ; oplot,(yr+mo/12)[1:*:3],ctnee[1:*:3],psym=symbol('triangle',size=2.5) plot,[0,0],[0,0],/nodata,xrange=[1,12],yrange=[-150,50],ytitle='NEE (gC m-2 mo-1)',xticks=11 oplot,[1,12],[0,0] oplot,findgen(12)+1,total(reform(synnee,12,10),2,/nan)/total(finite(reform(synnee,12,10)),2),psym=symbol('circle',fill=150,size=1.25)*(-1) oplot,findgen(12)+1,total(reform(ednee,12,10),2,/nan)/total(finite(reform(ednee,12,10)),2),psym=symbol('diamond',fill=150,size=3.5,color=200)*(-1),color=200 plot,[0,0],[0,0],/nodata,xrange=[1,12],yrange=[-150,50],ytitle='NEE (gC m-2 mo-1)',xticks=11 oplot,[1,12],[0,0] oplot,findgen(12)+1,total(reform(ablnee,12,10),2,/nan)/total(finite(reform(ablnee,12,10)),2),psym=symbol('square',size=2)*(-1) oplot,findgen(12)+1,total(reform(ctnee,12,10),2,/nan)/total(finite(reform(ctnee,12,10)),2),color=200 oplot,findgen(12)+1,total(reform(ctnee,12,10),2,/nan)/total(finite(reform(ctnee,12,10)),2),psym=symbol('triangle',size=2.5)*(1),color=0 stop ;Legend !p.multi = [0,1,5] plot,[0,0],[0,0],xticklen=0,yticklen=0,xrange=[0,1],yrange=[0,1],xticks=1,yticks=1 plots,0.2,0.5,psym=symbol('circle',fill=150,size=1.25)*(-1) xyouts,0.22,0.45,'IFUSE' plots,0.3,0.5,psym=symbol('diamond',fill=150,size=3.5,color=200) xyouts,0.32,0.45,'ED' plots,0.4,0.5,psym=symbol('square',size=2) xyouts,0.42,0.45,'EBL' plots,0.5,0.5,psym=symbol('triangle',size=2.5) xyouts,0.52,0.45,'CT' stop ;Fig. 3 a Annual b IAV ;plot synnee_yr and synnee_yr_an , .... !p.multi = [0,2,2] plot,[0,0],[0,0],/nodata,xrange=[1996.5,2006.5],yrange=[-400,0],ytitle='NEE (gC m-2 yr-1)' ; oplot,[1997,2007],[0,0] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[synnee_yr[i]-synnee_yr_std[i],synnee_yr[i]+synnee_yr_std[i]] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[ednee_yr[i]-ednee_yr_std[i],ednee_yr[i]+ednee_yr_std[i]] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[ablnee_yr[i]-ablnee_yr_std[i],ablnee_yr[i]+ablnee_yr_std[i]] oplot,yrs,synnee_yr,psym=symbol('circle',fill=150,size=1.25)*(-1) oplot,yrs,ednee_yr,psym=symbol('diamond',fill=150,size=3.5,color=200)*(-1) oplot,yrs,ablnee_yr,psym=symbol('square',size=2)*(-1) oplot,yrs,ctnee_yr,psym=symbol('triangle',size=2.5)*(-1) plot,[0,0],[0,0],/nodata,xrange=[1996.5,2006.5],yrange=[-150,150],ytitle='NEE anomaly (gC m-2 yr-1)' oplot,[1996,2008],[0,0] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[synnee_yr_an[i]-synnee_yr_std[i],synnee_yr_an[i]+synnee_yr_std[i]] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[ednee_yr_an[i]-ednee_yr_std[i],ednee_yr_an[i]+ednee_yr_std[i]] FOR i = 0,9 DO oplot,[yrs[i],yrs[i]],[ablnee_yr_an[i]-ablnee_yr_std[i],ablnee_yr_an[i]+ablnee_yr_std[i]] oplot,yrs,synnee_yr_an,psym=symbol('circle',fill=150,size=1.25)*(-1) oplot,yrs,ednee_yr_an,psym=symbol('diamond',fill=150,size=3.5,color=200)*(-1) oplot,yrs,ablnee_yr_an,psym=symbol('square',size=2)*(-1) oplot,yrs,ctnee_yr_an,psym=symbol('triangle',size=2.5)*(-1) stop ;Fig. 4 Climate vars - monthly + annual !p.multi = [0,2,8] plot,yr+mo/12,airt_m,xrange=[1997,2007],yrange=[-15,25],ytitle='Tair (degrees C)' oplot,yrs+0.5,airt_y,thick=3,color=200 plot,yr+mo/12,soilt_m,xrange=[1997,2007],yrange=[-15,25],ytitle='Tsoil (degrees C)' oplot,yrs+0.5,soilt_y,thick=3,color=200 plot,yr+mo/12,par_m,xrange=[1997,2007],yrange=[0,1500],ytitle='PAR (mmol m-2 mo-1)' oplot,yrs+0.5,par_y/12.,thick=3,color=200 plot,yr+mo/12,precip_m,xrange=[1997,2007],yrange=[0,250],ytitle='Precip (cm mo-1)' oplot,yrs+0.5,precip_y/12.,thick=3,color=200 plot,yr+mo/12,vpd_m,xrange=[1997,2007],yrange=[0,1000],ytitle='VPD (Pa)' oplot,yrs+0.5,vpd_y,thick=3,color=200 plot,yr+mo/12,soilm_m,xrange=[1997,2007],yrange=[0,1],ytitle='Qsoil (fraction)' oplot,yrs+0.5,soilm_y,thick=3,color=200 plot,yr+mo/12,wtd_m,xrange=[1997,2007],yrange=[-100,30],ytitle='Water table (cm)' oplot,yrs+0.5,wtd_y2,thick=3,color=200 plot,yr+mo/12,co2_m,xrange=[1997,2007],yrange=[360,395],ytitle='[CO2] (ppm)' oplot,yrs+0.5,co2_y,thick=3,color=200 plot,yr+mo/12,nao,xrange=[1997,2007],yrange=[-3,3],ytitle='NAO index' oplot,yrs+0.5,nao_y,thick=3,color=200 plot,yr+mo/12,nino,xrange=[1997,2007],yrange=[24,30],ytitle='NINO 3.4 index' oplot,yrs+0.5,nino_y,thick=3,color=200 plot,yr+mo/12,pna,xrange=[1997,2007],yrange=[-3,3],ytitle='PNA index' oplot,yrs+0.5,pna_y,thick=3,color=200 stop ;Fig. 5 Best correls 4x4 ;plot,yrs,synnee_yr_an,psym=symbol('circle',fill=150,size=1.25)*(-1) ; oplot,yrs,ednee_yr_an,psym=symbol('diamond',fill=150,size=3.5,color=200)*(-1) ; oplot,yrs,ablnee_yr_an,psym=symbol('square',size=2)*(-1) ;oplot,yrs,ctnee_yr_an,psym=symbol('triangle',size=2.5)*(-1) ;WT lag 1 !p.multi = [0,2,4] plot,[0,0],[0,0],xrange=[-50,10],yrange=[-150,150],xtitle='Water table Lag 1 (cm)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[wtd_y2[i],wtd_y2[i]],[synnee_yr_an[i+1]-synnee_yr_std[i+1],synnee_yr_an[i+1]+synnee_yr_std[i+1]] FOR i = 0,8 DO oplot,[wtd_y2[i],wtd_y2[i]],[ednee_yr_an[i+1]-ednee_yr_std[i+1],ednee_yr_an[i+1]+ednee_yr_std[i+1]] oplot,wtd_y2,synnee_yr_an[1:*],psym=symbol('circle',fill=150,size=1.25) oplot,wtd_y2,ednee_yr_an[1:*],psym=symbol('diamond',fill=150,size=3.5,color=200) ww = numgen(-50.0,10.0) oplot,ww,(-53.3990)+(-2.31516*ww),linestyle=1 oplot,ww,(17.2890)+(0.887775*ww),linestyle=2 plot,[0,0],[0,0],xrange=[-50,10],yrange=[-150,150],xtitle='Water table Lag 1 (cm)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[wtd_y2[i],wtd_y2[i]],[ablnee_yr_an[i+1]-ablnee_yr_std[i+1],ablnee_yr_an[i+1]+ablnee_yr_std[i+1]] oplot,wtd_y2,ablnee_yr_an[1:*],psym=symbol('square',size=2) oplot,wtd_y2,ctnee_yr_an[1:*],psym=symbol('triangle',size=2.5) oplot,ww,(-20.8627)+(-1.47579*ww),linestyle=1 oplot,ww,(-70.2561)+(-2.70794*ww),linestyle=2 ;CO2 lag 1 plot,[0,0],[0,0],xrange=[368,389],yrange=[-150,150],xtitle='[CO2] Lag 1 (ppm)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[co2_y[i],co2_y[i]],[synnee_yr_an[i+1]-synnee_yr_std[i+1],synnee_yr_an[i+1]+synnee_yr_std[i+1]] FOR i = 0,8 DO oplot,[co2_y[i],co2_y[i]],[ednee_yr_an[i+1]-ednee_yr_std[i+1],ednee_yr_an[i+1]+ednee_yr_std[i+1]] oplot,co2_y,synnee_yr_an[1:*],psym=symbol('circle',fill=150,size=1.25) oplot,co2_y,ednee_yr_an[1:*],psym=symbol('diamond',fill=150,size=3.5,color=200) ww = numgen(365.0,390.0) oplot,ww,(-3505.71)+(9.26731*ww),linestyle=1 oplot,ww,(723.581)+(-1.91910*ww),linestyle=2 plot,[0,0],[0,0],xrange=[368,389],yrange=[-150,150],xtitle='[CO2] Lag 1 (ppm)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[co2_y[i],co2_y[i]],[ablnee_yr_an[i+1]-ablnee_yr_std[i+1],ablnee_yr_an[i+1]+ablnee_yr_std[i+1]] oplot,co2_y,ablnee_yr_an[1:*],psym=symbol('square',size=2) oplot,co2_y,ctnee_yr_an[1:*],psym=symbol('triangle',size=2.5) oplot,ww,(-2218.94)+(5.90056*ww),linestyle=1 oplot,ww,(-5028.09)+(13.1890*ww),linestyle=2 ;Fall Soil Temp plot,[0,0],[0,0],xrange=[6.5,10],yrange=[-150,150],xtitle='Tsoil Autumn (degrees C)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[soilt_s[3,i],soilt_s[3,i]],[synnee_yr_an[i+1]-synnee_yr_std[i+1],synnee_yr_an[i+1]+synnee_yr_std[i+1]] FOR i = 0,8 DO oplot,[soilt_s[3,i],soilt_s[3,i]],[ednee_yr_an[i+1]-ednee_yr_std[i+1],ednee_yr_an[i+1]+ednee_yr_std[i+1]] oplot,soilt_s[3,*],synnee_yr_an[1:*],psym=symbol('circle',fill=150,size=1.25) oplot,soilt_s[3,*],ednee_yr_an[1:*],psym=symbol('diamond',fill=150,size=3.5,color=200) ww = numgen(6.0,10.0) oplot,ww,(-308.270)+(36.2974*ww),linestyle=1 oplot,ww,(-57.7576)+(6.80068*ww),linestyle=2 plot,[0,0],[0,0],xrange=[6.5,10],yrange=[-150,150],xtitle='Tsoil Autumn (degrees C)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[soilt_s[3,i],soilt_s[3,i]],[ablnee_yr_an[i+1]-ablnee_yr_std[i+1],ablnee_yr_an[i+1]+ablnee_yr_std[i+1]] oplot,soilt_s[3,*],ablnee_yr_an[1:*],psym=symbol('square',size=2) oplot,soilt_s[3,*],ctnee_yr_an[1:*],psym=symbol('triangle',size=2.5) oplot,ww,(-238.797)+(28.1171*ww),linestyle=1 oplot,ww,(-200.805)+(23.6368*ww),linestyle=2 ;Spring PAR plot,[0,0],[0,0],xrange=[850,1050],yrange=[-150,150],xtitle='PAR Spring (mmol m-2)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[par_s[1,i],par_s[1,i]],[synnee_yr_an[i+1]-synnee_yr_std[i+1],synnee_yr_an[i+1]+synnee_yr_std[i+1]] FOR i = 0,8 DO oplot,[par_s[1,i],par_s[1,i]],[ednee_yr_an[i+1]-ednee_yr_std[i+1],ednee_yr_an[i+1]+ednee_yr_std[i+1]] oplot,par_s[1,*],synnee_yr_an[1:*],psym=symbol('circle',fill=150,size=1.25) oplot,par_s[1,*],ednee_yr_an[1:*],psym=symbol('diamond',fill=150,size=3.5,color=200) ww = numgen(850.0,1050.0) oplot,ww,(600.476)+(-0.602769*ww),linestyle=1 oplot,ww,(106.390)+(-0.106796*ww),linestyle=2 plot,[0,0],[0,0],xrange=[850,1050],yrange=[-150,150],xtitle='PAR Spring (mmol m-2)',ytitle='NEE anomaly (gC m-2 yr-1)' FOR i = 0,8 DO oplot,[par_s[1,i],par_s[1,i]],[ablnee_yr_an[i+1]-ablnee_yr_std[i+1],ablnee_yr_an[i+1]+ablnee_yr_std[i+1]] oplot,par_s[1,*],ablnee_yr_an[1:*],psym=symbol('square',size=2) oplot,par_s[1,*],ctnee_yr_an[1:*],psym=symbol('triangle',size=2.5) oplot,ww,(450.526)+(-0.452247*ww),linestyle=1 oplot,ww,(464.920)+(-0.470158*ww),linestyle=2 stop ;Fig. 6 Multivar model ;lag 1 CO2 and WTD syn_multivar,s_s=synnee_yr_std,a_s=ablnee_yr_std,e_s=ednee_yr_std,synnee_yr_an,ablnee_yr_An,ednee_yr_an,ctnee_yr_an,co2_y,wtd_y2,lags=[1,1] ; syn_multivar,s_s=synnee_yr_std,a_s=ablnee_yr_std,e_s=ednee_yr_std,synnee_yr_an,ablnee_yr_An,ednee_yr_an,ctnee_yr_an,co2_y,wtd_y2,soilt_s[3,*],(co2_y-mean(co2_Y))*(wtd_y2-mean(wtd_y2)),lags=[1,1,0,1] ; syn_multivar,s_s=synnee_yr_std,a_s=ablnee_yr_std,e_s=ednee_yr_std,synnee_yr_an,ablnee_yr_An,ednee_yr_an,ctnee_yr_an,co2_y,wtd_y2,(co2_y-mean(co2_Y))*(wtd_y2-mean(wtd_y2)),lags=[1,1,1] stop ;Table 1 Annual Growing Season flux + IAV + correlations print,'Table 1. Mean fluxes' print,' Annual err Jun-Aug err IAV IFUSE ED EBL CT' print,'IFUSE ',mean(synnee_yr),sqrt(mean(synnee_yr_std^2,/nan)),stddev(synnee_yr_an),0.0,correl(synnee_yr,ednee_yr),correl(synnee_yr,ablnee_yr),correl(Synnee_yr,ctnee_yr) print,'ED ',mean(ednee_yr),sqrt(mean(ednee_yr_std^2,/nan)),stddev(ednee_yr_an),correl(ednee_yr,synnee_yr),0.0,correl(ednee_yr,ablnee_yr),correl(Ednee_yr,ctnee_yr) print,'EBL ',mean(ablnee_yr),sqrt(mean(ablnee_yr_std^2,/nan)),stddev(ablnee_yr_an),correl(ablnee_yr,synnee_yr),correl(ednee_yr,ablnee_yr),0.0,correl(Ablnee_yr,ctnee_yr) print,'CT ',mean(ctnee_yr,/nan),0.0,stddev(ctnee_yr_an,/nan),correl(ctnee_yr,synnee_yr),correl(ednee_yr,ctnee_yr),correl(Ablnee_yr,ctnee_yr),0.0 stop ;Table 2 Annual correlations print,'Table 2. Annual Corr' print,'Varable IFUSE ED ABL CT' FOR lg = 0,1 DO BEGIN print,'Lag ',lg syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,airt_y,lag=lg,name='AirT' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,soilt_y,lag=lg,name='SoilT' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,par_y,lag=lg,name='PAR' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,precip_y,lag=lg,name='Precip' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,vpd_y,lag=lg,name='VPD' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,soilm_y,lag=lg,name='SoilM' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,wtd_y2,lag=lg,name='WTD' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,co2_y,lag=lg,name='CO2' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,nao_y,lag=lg,name='NAO' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,nino_y,lag=lg,name="NINO3.4" syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,pna_y,lag=lg,name="PNA" ENDFOR stop ;Table 3 Seasonal correlations print,'Table 3. Seasonal corr' print,'Varable IFUSE ED ABL CT' FOR lg = 0,1 DO BEGIN print,'Lag ',lg FOR i = 0,3 DO BEGIN IF i EQ 0 THEN print,'--Winter-- Lag '+string(lg) IF i EQ 1 THEN print,'--Spring-- Lag '+string(lg) IF i EQ 2 THEN print,'--Summer-- Lag '+string(lg) IF i EQ 3 THEN print,'--Fall-- Lag'+string(lg) syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,airt_s[i,*],lag=lg,name='AirT' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,soilt_s[i,*],lag=lg,name='SoilT' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,par_s[i,*],lag=lg,name='PAR' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,precip_s[i,*],lag=lg,name='Precip' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,vpd_s[i,*],lag=lg,name='VPD' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,soilm_s[i,*],lag=lg,name='SoilM' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,wtd_s2[i,*],lag=lg,name='WTD' syn_printcorrel,synnee_yr_an,ednee_yr_an,ablnee_yr_an,ctnee_yr_an,co2_s[i,*],lag=lg,name='CO2' ENDFOR ENDFOR stop ;multi var ;x1,x2,x3,x4,x5 ;NACP plots ;MONTHLY !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) plot,[0,0],[0,0],xrange=[1997,2007],yrange=[-200,100],xtitle='Year',ytitle='gC m2 mo-1',title='NEE' errorbar,tm,synnee,synnee_std*2,synnee_std*2,fillcolor=200,/over,/noline errorbar,tm,ablnee,ablnee_std*2,ablnee_std*2,fillcolor=pink,/over,/noline errorbar,tm,ednee,ednee_std*2,ednee_std*2,fillcolor=cyan,/over,/noline oplot,tm,synnee,thick=2 oplot,tm,ablnee,color=red,thick=2 oplot,tm,ednee,color=blue,thick=2 oplot,tm,ctnee,color=orange,thick=2 xyouts,1997.25,80,'IFUSE' oplot,[1997.75,1998.25],[80,80],thick=2 xyouts,1997.25,65,'EBL',color=red oplot,[1997.75,1998.25],[65,65],thick=2,color=red xyouts,1997.25,50,'ED',color=blue oplot,[1997.75,1998.25],[50,50],thick=2,color=blue xyouts,1997.25,35,'CT',color=orange oplot,[1997.75,1998.25],[35,35],thick=2,color=orange stop ;ANNUAL !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) plot,[0,0],[0,0],xrange=[1997,2006],xtitle='Year',ytitle='gC m-2 yr-1',title='Annual NEE',yrange=[-500,100] errorbar,yrs,synnee_yr,synnee_yr_std,synnee_yr_std,fillcolor=200,/over,/noline errorbar,yrs,ablnee_yr,ablnee_yr_std,ablnee_yr_std,fillcolor=pink,/over,/noline errorbar,yrs,ednee_yr,ednee_yr_std*2,ednee_yr_std*2,fillcolor=cyan,/over,/noline oplot,yrs,synnee_yr,thick=2 oplot,yrs,ablnee_yr,color=red,thick=2 oplot,yrs,ednee_yr,color=blue,thick=2 oplot,yrs,ctnee_yr,color=orange,thick=2 xyouts,1997.25,70,'IFUSE' oplot,[1997.75,1998.25],[75,75],thick=2 xyouts,1997.25,50,'EBL',color=red oplot,[1997.75,1998.25],[50,50],thick=2,color=red xyouts,1997.25,25,'ED',color=blue oplot,[1997.75,1998.25],[25,25],thick=2,color=blue xyouts,1997.25,0,'CT',color=orange oplot,[1997.75,1998.25],[0,0],thick=2,color=orange stop ;ANNUAL anomaly !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) plot,[0,0],[0,0],xrange=[1997,2006],xtitle='Year',ytitle='gC m-2 yr-1',title='Annual NEE Anomaly',yrange=[-200,200] errorbar,yrs,synnee_yr_an,synnee_yr_std,synnee_yr_std,fillcolor=200,/over,/noline errorbar,yrs,ablnee_yr_an,ablnee_yr_std,ablnee_yr_std,fillcolor=pink,/over,/noline errorbar,yrs,ednee_yr_an,ednee_yr_std*2,ednee_yr_std*2,fillcolor=cyan,/over,/noline oplot,yrs,synnee_yr_an,thick=2 oplot,yrs,ablnee_yr_an,color=red,thick=2 oplot,yrs,ednee_yr_an,color=blue,thick=2 oplot,yrs,ctnee_yr_an,color=orange,thick=2 xyouts,1997.25,180,'IFUSE' oplot,[1997.75,1998.25],[180,180],thick=2 xyouts,1997.25,160,'EBL',color=red oplot,[1997.75,1998.25],[160,160],thick=2,color=red xyouts,1997.25,140,'ED',color=blue oplot,[1997.75,1998.25],[140,140],thick=2,color=blue xyouts,1997.25,120,'CT',color=orange oplot,[1997.75,1998.25],[120,120],thick=2,color=orange stop ;GSL !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) syn_correlplot,gsl2,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Growing Season Length anomaly (days)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,leafon2,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Leaf On anomaly (days)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,leafoff2,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Leaf Off anomaly (days)',colors=[0,red,blue,orange,200,pink,cyan,yellow] stop ;Soil T !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) syn_correlplot,soilt_s[0,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Winter Soil T anomaly (degrees C)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,soilt_s[1,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Spring Soil T anomaly (degrees C)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,soilt_s[2,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Summer Soil T anomaly (degrees C)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,soilt_s[3,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Autumn Soil T anomaly (degrees C)',colors=[0,red,blue,orange,200,pink,cyan,yellow] ;PAR stop !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) syn_correlplot,par_s[0,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Winter PAR (mol m-2 mo-1)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,par_s[1,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Spring PAR (mol m-2 mo-1)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,par_s[2,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Summer PAR (mol m-2 mo-1)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,par_s[3,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Autumn PAR (mol m-2 mo-1)',colors=[0,red,blue,orange,200,pink,cyan,yellow] stop ;Precip !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) syn_correlplot,precip_s[0,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Winter Precip (mm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,precip_s[1,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Spring Precip (mm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,precip_s[2,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Summer Precip (mm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,precip_s[3,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Autumn Precip (mm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] stop ;WT !p.multi = [0,2,2] red = fsc_Color('red',100) blue = fsc_color('blue',101) pink = fsc_color('pink',102) cyan = fsc_color('cyan',103) orange = fsc_color('orange',104) yellow = fsc_color('yellow',105) syn_correlplot,wtd_s[2,*],synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Summer Water Table anomaly (cm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] syn_correlplot,wtd_y,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Annual Water Table anomaly (cm) Lag 1',colors=[0,red,blue,orange,200,pink,cyan,yellow],lag=1 ; !p.multi = [0,1,2] ; syn_correlplot,co2_y,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='CO2 (ppm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] ; syn_correlplot,lake_y_an_av,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,synnee_yr_std,ablnee_yr_std,ednee_yr_std,xtitle='Lake Level (cm)',colors=[0,red,blue,orange,200,pink,cyan,yellow] stop ;table - 4 methods + bulk - correl + pvalue ;annual print,['Var','SYN_r','EBL_r','ED_r','CT_r','ALL_r','SYN_p','EBL_p','ED_p','CT_p','ALL_p','SYN_m','EBL_m','ED_m','CT_m','ALL_m','SYN_b','EBL_b','ED_b','CT_b','ALL_b'],format='(a10,5a6,5a6,5a12,5a12)' FOR lg = 0,1 DO BEGIN print,'Annual Lag '+string(lg) syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,leafon2,lag=lg,name='Leafon' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,leafoff2,lag=lg,name='Leafoff' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,gsl2,lag=lg,name='GSL' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,leafon_wc,lag=lg,name='Lon_w' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,leafs_wc,lag=lg,name='Ls_w' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,leafoff_wc,lag=lg,name='Loff_w' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,gsl_wc,lag=lg,name='GSL_w' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,gsl2_wc,lag=lg,name='GSL2_w' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,age_ed,lag=lg,name='Age' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,airt_y,lag=lg,name='AirT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soilt_y,lag=lg,name='SoilT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,par_y,lag=lg,name='PAR' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,precip_y,lag=lg,name='Precip' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,vpd_y,lag=lg,name='VPD' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soilm_y,lag=lg,name='SoilM' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,wtd_y,lag=lg,name='WTD' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,lake_y_an_av,lag=lg,name='LakeL' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,well_y_an_av,lag=lg,name='WellL' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,bog_y_an_av,lag=lg,name='BogL' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,co2_y,lag=lg,name='CO2' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,dco2_y,lag=lg,name='dCO2' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,globalt_y,lag=lg,name='GlobalT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,nao_y,lag=lg,name='NAO' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,nino_y,lag=lg,name="NINO3.4" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,pdo_y,lag=lg,name="PDO" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,pna_y,lag=lg,name="PNA" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soi_y,lag=lg,name="SOI" FOR i = 0,3 DO BEGIN IF i EQ 0 THEN print,'--Winter-- Lag '+string(lg) IF i EQ 1 THEN print,'--Spring-- Lag '+string(lg) IF i EQ 2 THEN print,'--Summer-- Lag '+string(lg) IF i EQ 3 THEN print,'--Fall-- Lag'+string(lg) syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,airt_s[i,*],lag=lg,name='AirT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soilt_s[i,*],lag=lg,name='SoilT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,par_s[i,*],lag=lg,name='PAR' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,precip_s[i,*],lag=lg,name='Precip' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,vpd_s[i,*],lag=lg,name='VPD' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soilm_s[i,*],lag=lg,name='SoilM' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,wtd_s[i,*],lag=lg,name='WTD' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,globalt_s[i,*],lag=lg,name='GlobalT' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,nao_s[i,*],lag=lg,name='NAO' syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,nino_s[i,*],lag=lg,name="NINO3.4" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,pdo_s[i,*],lag=lg,name="PDO" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,pna_s[i,*],lag=lg,name="PNA" syn_printcorrel,synnee_yr_an,ablnee_yr_an,ednee_yr_an,ctnee_yr_an,soi_s[i,*],lag=lg,name="SOI" ENDFOR ENDFOR stop ;synthesis tables: ;1. Correlation aNEE to each other ;2. Correlation to: ;correaltion of annual to fillclim T,Precip,VPD,PAR ann and seasonal ;restore parameters syn_iav - compute GSL,leafon,leafoff (save from ; there) ;ENSO index, etc... ;still need WT ;Annual ;var IFUSE ED EBL CT ;Winter ;Spring ;Summer ;Autumn END ;TO DO ;Paper outline - in progress ;Poster - make PRO syn_lterlevel ;process lake level and well level data ;lake level lake = (read_ascii(mydocs()+'synthesis/wd/LTERlevels9608.csv',delim=',',data_start=1)).(0) ;ID,YEAR,DOY,ELEV lids = uniq(lake[0,*]) tm_l = lake[1,*] + (((lake[2,*]-1.)<365)/365.) lake_lev = fltarr(n_elements(lids)+1,365l*10l) lake_lev[0,*] = ((lindgen(365l*10l)/365)+1997.) + ((findgen(365l*10l) MOD 365)/365.) FOR i = 0,n_elementS(lids)-1 DO BEGIN & gvals = where(lake[0,*] EQ lake[0,lids[i]]) & lake_lev[i+1,*] = interpol(lake[3,gvals],tm_l[gvals],lake_lev[0,*]) & ENDFOR ; lake_y = average_cols(lake_lev[1:*,*],365) lake_y = average_cols(lake_lev[[2,4,5,7],*],365) lake_y_m = total(lake_y,2)/10. lake_y_an = lake_y FOR i = 0,9 DO lake_y_an[*,i] -= lake_y_m lake_y_an_av = total(lake_y_an,1)/float(n_elements(lake_y[*,0])) bog_y = average_cols(lake_lev[[1,3,6],*],365) bog_y_m = total(bog_y,2)/10. bog_y_an = bog_y FOR i = 0,9 DO bog_y_an[*,i] -= bog_y_m bog_y_an_av = total(bog_y_an,1)/float(n_elements(bog_y[*,0])) ; stop ;well level ;YEAR,DOY,ID,LEV well = (read_ascii(mydocs()+'synthesis/wd/LTERwells9608.csv',delim=',',data_start=1)).(0) wids = uniq(well[2,*]) tm_w = well[0,*] + (((well[1,*]-1.)<365)/365.) well_lev = fltarr(n_elements(wids)+1,365l*10l) well_lev[0,*] = ((lindgen(365l*10l)/365)+1997.) + ((findgen(365l*10l) MOD 365)/365.) FOR i = 0,n_elementS(wids)-1 DO BEGIN & gvals = where(well[2,*] EQ well[2,wids[i]]) & well_lev[i+1,*] = interpol(well[3,gvals],tm_w[gvals],well_lev[0,*]) & ENDFOR well_y = average_cols(well_lev[[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22],*],365) well_y_m = total(well_y,2)/10. well_y_an = well_y FOR i = 0,9 DO well_y_an[*,i] -= well_y_m well_y_an_av = total(well_y_an,1)/18. ;remove 0,17,18, 19? = 1,18,29,20 ; save,well_y,well_y_an,well_y_an_av,lake_y,lake_y_an,lake_y_an_av,lake_lev,well_lev,bog_y,bog_y_an,bog_y_an_av,lake,well,filename=mydocs()+'synthesis/wd/LTERlevels.sav' restore,mydocs()+'synthesis/wd/wd.sav' wtd = [replicate(nan(),365l*3l),reform(wd_fill)] wtd_y = average_arr(wtd,365,/nan) wtd_s = reform(average_arr([nan(),wtd_m[0:118]],3,/nan),4,10) stop ;fit wtd to Trout Bog lake_lev? END ;best variables ;fall lag 1 water table ;spring lag 1 precip ;winter soil temp lag 1 ;annual Leafoff ;spring par and precip ;fall soilT, summer watertable