;+ ; .. _icoads_sst_stats_paper.pro: ; ; ========================== ; icoads_sst_stats_paper.pro ; ========================== ; ; DESCRIPTION ; =========== ; ; .. graphviz:: ; ; digraph icoads_sst_stats_paper { ; ; sst [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_monthly_1960_2010_oafluxgrid.nc"]; ; sst_tropflux [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_TropFlux_global_monthly_1989_2009.nc"]; ; sst_oaflux [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_OAFlux_global_monthly_1989_2009.nc"]; ; sst_erai [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_ERAI_global_monthly_1989_2009.nc"]; ; sst_ncep2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_NCEP2_global_monthly_1989_2009.nc"]; ; sst_noc [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/nocv2_sst_19890101_20091231_oafluxgrid.nc"]; ; sst_ncep1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sst_NCEP1_global_monthly_1989_2009.nc"]; ; ; figure [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/icoads_sst_stats_paper.ps"]; ; ; icoads_sst_stats_paper [shape=box, ; fontname=Courier, ; color=blue, ; URL="http://forge.ipsl.jussieu.fr/tropflux/browser/trunk/src/paper01/fig6/icoads_sst_stats_paper.pro", ; label="${TROPFLUX}/src/paper01/fig6/icoads_sst_stats_paper.pro"]; ; ; {sst sst_tropflux sst_oaflux sst_erai sst_ncep2 sst_noc sst_ncep1} -> {icoads_sst_stats_paper} -> {figure} ; } ; ; SEE ALSO ; ======== ; ; :ref:`project_profile.sh` ; :ref:`project_init.pro` ; ; :ref:`statistics.pro` ; ; EXAMPLES ; ======== ; ; :: ; ; IDL> icoads_sst_stats_paper ; ; TODO ; ==== ; ; make it work (missing data, box definition) ; ; coding rules ; ; complete description ; ; handle IO error ; ; EVOLUTIONS ; ========== ; ; $Id$ ; ; $URL$ ; ; - fplod 20110420T091734Z aedon.locean-ipsl.upmc.fr (Darwin) ; ; * remove hard coding path ; * add graphviz ; ; - fplod 20110411T142955Z aedon.locean-ipsl.upmc.fr (Darwin) ; ; * minimal header ; ;- pro icoads_sst_stats_paper @cm_project reinitplt, /z,/invert key_portrait = 1 coefpalit=.9 openps, FILENAME = project_od_env+"icoads_sst_stats_paper.ps" ; partie a changer marge=[-2,-2, -4,2] st=19890101 & en=20091231 domdef, box file=project_id_env+'sst_monthly_1960_2010_oafluxgrid.nc' initncdf, file icoads=read_ncdf("sst", st-1, en , file=file,/nostr, box=box) help, icoads file=project_id_env+'sst_TropFlux_global_monthly_1989_2009.nc' initncdf, file trop=read_ncdf("sst", st, en , file=file,/nostr, box=box)-273.15 help, trop file=project_id_env+"sst_OAFlux_global_monthly_1989_2009.nc" initncdf, file oaf=read_ncdf("sst", st, en , file=file,/nostr, box=box) help, oaf file=project_id_env+"sst_ERAI_global_monthly_1989_2009.nc" initncdf, file erai=read_ncdf("sst", st, en , file=file,/nostr, box=box)-273.15 help, erai file=project_id_env+"sst_NCEP2_global_monthly_1989_2009.nc" initncdf, file ncep2=read_ncdf("sst", st, en , file=file,/nostr, box=box)-273.15 help, ncep2 file=project_id_env+'nocv2_sst_19890101_20091231_oafluxgrid.nc' initncdf, file noc=read_ncdf("sst", st, en , file=file,/nostr, box=box) help, noc file=project_id_env+"sst_NCEP1_global_monthly_1989_2009.nc" initncdf, file ncep1=read_ncdf("sst", st, en , file=file,/nostr, box=box)-273.15 help, ncep1 si=size(trop) & nt=si(3) lat_rama=[67, 55, 55, 80.5, 80.5, 80.5, 80.5, 90, 90, 90, 90, 90, 90, 90, 95] lon_rama=[-8, -12, -8,-8, -1.5, 0, 1.5, -1.5, 0, 1.5, 4, 8, 12, 15, -5] lat_pirata=[0, 350, 337, 325, 350, 337, 322, 328, 322, 326, 322, 337, 337, 322, 350, 322, 330] lon_pirata=[0, 0, 0, 0, -10, 12, 12, -14, 15, -19, 20, 21, 4, 4, -6, 8, -8] lat_tao=[165, 180, 205, 235, 250, 265, 156, 165, 180, 190, 205, 220, 235, 250, 265, 156, 165, 180, 190, 205, 220, 235, 250, 265, 147, 156, $ 165, 180, 190, 205, 220, 235, 250, 265, 147, 156, 165, 180, 190, 205, 220, 235, 250, 265, 147, 156, 165, 190, 205, 220, 235, 250, 265, $ 156, 165, 180, 190, 220, 235, 250, 265] lon_tao=[-8, -8, -8, -8, -8, -8, -5, -5, -5, -5, -5, -5, -5, -5, -5, -2, -2, -2, -2, -2, -2, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 9, 8, 8, 8] lat=[lat_rama, lat_pirata, lat_tao] lon=[lon_rama, lon_pirata, lon_tao] lat_tao=lat & lon_tao=lon nn=n_elements(lat) list=0 for n=0, nn-1 do begin x=lat_tao(n) y=lon_tao(n) dx=abs(reform(glamt-x)) & dy=abs(reform(gphit)-y) ind=where((dx le 0.5) and (dy le 0.5)) if (total(ind) ge 0.) then begin list=[list,ind] endif endfor msk=replicate(1,nxt,nyt) msk(list)=!Values.f_nan mask=trop*0 for jt=0,jpt-1 do begin t=reform(msk(*,*)) mask(*,*,jt)=t endfor param=icoads*mask trop=trop*mask & oaf=oaf*mask & erai=erai*mask ncep2=ncep2*mask & ncep1=ncep1*mask noc=noc*mask ind=where(finite(param) and finite(erai) and finite(trop) and finite(oaf) and finite(ncep2) and finite(ncep1)) x=param(ind) & y=trop(ind) param=param(ind) & trop=trop(ind) & erai=erai(ind) & oaf=oaf(ind) & ncep2=ncep2(ind) & ncep1=ncep1(ind) noc=noc(ind) ; statistics, param, trop, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_trop=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(trop-param))/n_elements(trop) abs_trop=string(abs_diff, format='(f5.2)') statistics, param, oaf, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_oaf=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(oaf-param))/n_elements(oaf) abs_oaf=string(abs_diff, format='(f5.2)') ; statistics, param, erai, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_erai=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(erai-param))/n_elements(erai) abs_erai=string(abs_diff, format='(f5.2)') ; statistics, param, ncep2, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_ncep2=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(ncep2-param))/n_elements(ncep2) abs_ncep2=string(abs_diff, format='(f5.2)') ; statistics, param, ncep1, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_ncep1=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(ncep1-param))/n_elements(ncep1) abs_ncep1=string(abs_diff, format='(f5.2)') ; statistics, param, noc, $ cor, bias, std, rmsd print, cor, bias, std, rmsd cstat_noc=string(cor, bias, std, rmsd, format='(f4.2,2x,f6.3,2x,f4.2,1x,f6.2)') abs_diff=total(abs(noc-param))/n_elements(noc) abs_noc=string(abs_diff, format='(f5.2)') ; mio=15 & mao=32 & inx=1 & nx=(mao-mio)/inx+1l & xx=mio+indgen(nx)*inx mis=15 & mas=32 & iny=1 & ny=(mas-mis)/iny+1l & yy=mis+indgen(ny)*iny xp=18 & yp=16.5 x1=15 & x2=32 & y1=x1 & y2=x2 ; pdf, param,trop,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/TropFlux", small=[2,3,1], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_trop, charsize=1 xyouts, xp, yp-1, abs_trop, charsize=1 ; pdf, param,oaf,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/OAFlux", small=[2,3,2], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_oaf, charsize=1 xyouts, xp, yp-1, abs_oaf, charsize=1 ; pdf, param,erai,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/ERAI", small=[2,3,3], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_erai, charsize=1 xyouts, xp, yp-1, abs_erai, charsize=1 ; pdf, param,ncep2,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/NCEP2", small=[2,3,4], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_ncep2, charsize=1 xyouts, xp, yp-1, abs_ncep2, charsize=1 ; pdf, param,ncep1,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/NCEP1", small=[2,3,5], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_ncep1, charsize=1 xyouts, xp, yp-1, abs_ncep1, charsize=1 pdf, param,noc,mio,mao,inx,mis,mas,iny, $ pdf,xx,yy scontour, pdf,xx,yy ,/noer, charsize=1, nlevels=30,/fill, $ title="sst - ICOADS/NOC", small=[2,3,6], $ xrange=[x1, x2], yrange=[y1, y2] xyouts, xp, yp, cstat_noc, charsize=1 xyouts, xp, yp-1, abs_noc, charsize=1 closeps end