cdiag = 'mean_' + cvar print '\n Treating ' + cdiag for cocean in bo.voce2treat: Xf[:, :] = 0. jrun = 0 for confrun in clist_confruns: cf_in = cd_diag + '/' + confrun + '/' + cdiag + '_' + confrun + '_' + cocean + '.nc' vt0, vd0 = bn.read_1d_series(cf_in, cvar, cv_t='time', l_return_time=True) nbm = len(vt0) test_nb_mnth_rec(nbm, nb_years, cdiag) VY, FY = bt.monthly_2_annual(vt0, vd0) vtime[:nbm / 12] = VY[:] Xf[jrun, :nbm / 12] = FY[:] Xf[jrun, nbm / 12:] = -999. jrun = jrun + 1 bp.plot("1d_multi")(vtime[:], Xf[:, :], clist_runs, cfig_type=cffig, cfignm=cdiag + '_comparison_' + cocean, dt_year=ittic, loc_legend=DEFAULT_LEGEND_LOC, cyunit=vunit[jvar], ctitle=vname[jvar] + ', ' + cocean, ymin=0,
if idfig == 'simple': cf_in = 'mean_' + cvar + '_' + CONFRUN + '_global.nc' bt.chck4f(cf_in, script_name='plot_time_series.py') id_in = Dataset(cf_in) vtime = id_in.variables['time'][:] nbm = len(vtime) vvar = id_in.variables[cvar][:] id_in.close() if nbm % 12 != 0: print 'ERROR: plot_time_series.py => ' + cvar + ', number of records not a multiple of 12!' sys.exit(0) # Annual data VY, FY = bt.monthly_2_annual(vtime[:], vvar[:]) ittic = bt.iaxe_tick(nbm / 12) # Time to plot bp.plot("1d_mon_ann")(vtime, VY, vvar, FY, cfignm=cdiag + '_' + CONFRUN, dt_year=ittic, cyunit=cyu, ctitle=CONFRUN + ': ' + clnm, ymin=ym, ymax=yp, cfig_type=ff)
jvar=0 for cvar in vvar: cdiag = 'mean_'+cvar print '\n Treating '+cdiag for cocean in bo.voce2treat: Xf[:,:] = 0. ; jrun = 0 for confrun in clist_confruns: cf_in = cd_diag+'/'+confrun+'/'+cdiag+'_'+confrun+'_'+cocean+'.nc' vt0, vd0 = bn.read_1d_series(cf_in, cvar, cv_t='time', l_return_time=True) nbm = len(vt0) test_nb_mnth_rec(nbm, nb_years, cdiag) VY, FY = bt.monthly_2_annual(vt0, vd0) vtime[:nbm/12] = VY[:] Xf[jrun,:nbm/12] = FY[:] ; Xf[jrun,nbm/12:] = -999. jrun = jrun + 1 bp.plot("1d_multi")(vtime[:], Xf[:,:], clist_runs, cfig_type=cffig, cfignm=cdiag+'_comparison_'+cocean, dt_year=ittic, loc_legend=DEFAULT_LEGEND_LOC, cyunit=vunit[jvar], ctitle = vname[jvar]+', '+cocean, ymin=0, ymax=0) jvar = jvar+1
v_var_lngnm[jv] = id_clim.variables[v_var_names[jv]].long_name except AttributeError: v_var_lngnm[jv] = v_var_names[jv] id_clim.close() for jv in range(nbvar): cv = v_var_names[jv] cln = v_var_lngnm[jv] cfn = cv + '_' + CRUN print ' Creating figure ' + cfn # Annual data VY, FY = bt.monthly_2_annual(vtime[:], XX[jv, :]) ittic = bt.iaxe_tick(nbr / 12) # Time to plot bp.plot_1d_mon_ann(vtime[:], VY, XX[jv, :], FY, cfignm=cfn, dt_year=ittic, cyunit=v_var_units[jv], ctitle=CRUN + ': ' + cln, cfig_type='svg', l_tranparent_bg=False)
# Loop along sections: ###################### jsec = 0 for csec in list_sections: Xst = nmp.flipud(nmp.rot90(id_in.variables['sigtrsp_'+csec][:,:])) print ' Shape of "sigtrsp_'+csec+'" => ', nmp.shape(Xst) # Annual array: vtime_ann, Xst_ann = bt.monthly_2_annual(vtime, Xst) # FIGURE 1 ########### ittic = bt.iaxe_tick(nbm/12) # We want rmax to be a multile of 0.2: rmax = nmp.amax(nmp.abs(Xst_ann)) r1 = round(rmax+0.05,1)*100; rmax = (r1 + r1%20)/100. ; rmin = -rmax dc = (int(round(100*(rmax+0.6)/20.,2))/5*5)/100. bp.plot("trsp_sig_class")(vtime_ann, vsigma_bounds, Xst_ann, rmin, rmax, dc, dsigma, lkcont=True, cpal='bbr2_r', dt_year=ittic,
dsigma = vsigma[1] - vsigma[0] vsigma_bounds[:nbin] = vsigma[:] - 0.5 * dsigma vsigma_bounds[nbin] = vsigma[nbin - 1] + 0.5 * dsigma # Loop along sections: ###################### jsec = 0 for csec in list_sections: Xst = nmp.flipud(nmp.rot90(id_in.variables['sigtrsp_' + csec][:, :])) print ' Shape of "sigtrsp_' + csec + '" => ', nmp.shape(Xst) # Annual array: vtime_ann, Xst_ann = bt.monthly_2_annual(vtime, Xst) # FIGURE 1 ########### ittic = bt.iaxe_tick(nbm / 12) # We want rmax to be a multile of 0.2: rmax = nmp.amax(nmp.abs(Xst_ann)) r1 = round(rmax + 0.05, 1) * 100 rmax = (r1 + r1 % 20) / 100. rmin = -rmax dc = (int(round(100 * (rmax + 0.6) / 20., 2)) / 5 * 5) / 100. bp.plot("trsp_sig_class")( vtime_ann,
bp.plot_1d_multi(vt_y, vice_c, vlabels=['March', 'September'], cfignm=cfn, dt_year=ittic, cyunit=list_units[jv], ctitle = CRUN+': Sea-Ice extent ('+cv[13:]+')', cfig_type='svg', l_tranparent_bg=False) elif cv == 'votemper' or cv == 'vosaline': if not l3d: print ' ERROR: '+sys.argv[0]+' => variable '+cv+' are here but '+cv_depth+' was not there!' sys.exit(0) VY, ZY = bt.monthly_2_annual(vtime, nmp.flipud(nmp.rot90(X2d[jv2d,:,:]))) y1 = int(VY[0]) ; y2 = int(VY[nbr/12-1]) ittic = bt.iaxe_tick(nbr/12) # Anomaly with regards to first year: vini = nmp.zeros(nblev) ; vini[:] = ZY[:,0] for jy in range(nbr/12): ZY[:,jy] = ZY[:,jy] - vini[:] [ rmin, rmax, rdf ] = bt.get_min_max_df(ZY,40) bp.plot_vert_section(VY-0.5, vdepth[:], ZY, ZY*0.+1., rmin, rmax, rdf, cpal='bbr2', xmin=y1, xmax=y2, dx=ittic, lkcont=True, zmin = vdepth[0], zmax = max(vdepth), l_zlog=True, cfignm=cfn, cbunit=r''+list_units[jv], czunit='Depth (m)',
########################################## # Basic temp., sali. and SSH time series # ########################################## if idfig == 'simple': cf_in = 'mean_'+cvar+'_'+CONFRUN+'_global.nc' ; bt.chck4f(cf_in, script_name='plot_time_series.py') id_in = Dataset(cf_in) vtime = id_in.variables['time'][:] ; nbm = len(vtime) vvar = id_in.variables[cvar][:] id_in.close() if nbm%12 != 0: print 'ERROR: plot_time_series.py => '+cvar+', numberof records not a multiple of 12!', sys.exit(0) # Annual data VY, FY = bt.monthly_2_annual(vtime[:], vvar[:]) ittic = bt.iaxe_tick(nbm/12) # Time to plot bp.plot("1d_mon_ann")(vtime, VY, vvar, FY, cfignm=cdiag+'_'+CONFRUN, dt_year=ittic, cyunit=cyu, ctitle = CONFRUN+': '+clnm, ymin=ym, ymax=yp) if idfig == 'ts3d': nb_oce = len(bo.voce2treat) vzrange = [ '0-bottom', '0-100' , '100-1000', '1000-bottom' ] ; nbzrange = len(vzrange)
cf_in = sys.argv[1] cv_in = sys.argv[2] bt.chck4f(cf_in) cname = replace(os.path.basename(cf_in), '.nc', '') id_in = Dataset(cf_in) vt_m = id_in.variables['time'][:] vsst_m = id_in.variables[cv_in][:] id_in.close() Nm = len(vsst_m) # Annual averaging first: vt, vsst = bt.monthly_2_annual(vt_m, vsst_m) Nt = len(vt) n1 = (n_run_mean - 1) / 2 n2 = -n1 - 1 vtmp = nmp.zeros(Nt) vtime = nmp.zeros(Nt - n_run_mean) xplot = nmp.zeros((Nt - n_run_mean, 4)) # Nt-n_run_mean because X month-running mean vtime[:] = vt[n1:n2] if n_run_mean == 11: vtmp = bs.running_mean_11(vsst) # 11-month running mean
########################################## # Basic temp., sali. and SSH time series # ########################################## if idfig == 'simple': cf_in = 'mean_'+cvar+'_'+CONFRUN+'_global.nc' ; bt.chck4f(cf_in, script_name=csn) id_in = Dataset(cf_in) vtime = id_in.variables['time'][:] ; nbm = len(vtime) vvar = id_in.variables[cvar][:] id_in.close() nby = __test_nb_years__(nbm, cdiag) # Annual data VY, FY = bt.monthly_2_annual(vtime[:], vvar[:]) ittic = bt.iaxe_tick(nbm/12) # Time to plot bp.plot("1d_mon_ann")(vtime, VY, vvar, FY, cfignm=cdiag+'_'+CONFRUN, dt_year=ittic, cyunit=cyu, ctitle = CONFRUN+': '+clnm, ymin=ym, ymax=yp, cfig_type=ff) if idfig == 'htf': l_qsr = False cf_in = cdiag+'_'+CONFRUN+'_global.nc' ; bt.chck4f(cf_in, script_name=csn) id_in = Dataset(cf_in)
print '\n Treating ' + cdiag joce = 0 for cocean in list_basin_names: Xf[:, :] = 0. jexp = 0 for confexp in clist_confexps: cf_in = cd_diag + '/' + confexp + '/' + cdiag + '_' + confexp + '_' + cocean + '.nc' vt0, vd0 = bn.read_1d_series(cf_in, cvar, cv_t='time', l_return_time=True) nbm = len(vt0) test_nb_mnth_rec(nbm, nb_years, cdiag) VY, FY = bt.monthly_2_annual(vt0, vd0) Vt[:nbm / 12] = VY[:] Xf[jexp, :nbm / 12] = FY[:] Xf[jexp, nbm / 12:] = -999. jexp = jexp + 1 bp.plot("1d_multi")(Vt[:], Xf[:, :], clist_exps, cfig_type=cffig, cfignm=cdiag + '_comparison_' + cocean, dt=ittic, loc_legend=DEFAULT_LEGEND_LOC, cyunit=vunit[jvar], ctitle=vname[jvar] + ', ' + list_basin_lgnms[joce],