def rain_and_sst(run, months, filename='plev_pentad', period_fac=1., plot_land=True): rcParams['figure.figsize'] = 20, 10 plot_dir = '/scratch/rg419/plots/climatology/' + run + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(run, months, filename=filename, timeav='season', period_fac=period_fac) data['rain'] = (('xofyear', 'lat', 'lon'), (data.convection_rain + data.condensation_rain) * 86400.) land_file = '/scratch/rg419/GFDL_model/GFDLmoistModel/input/land.nc' land = xr.open_dataset(land_file) data['land'] = (('lat', 'lon'), land.land_mask) for i in range(0, 4): print i ax = data.rain[i, :, :].plot.contourf(x='lon', y='lat', levels=np.arange(0., 31., 3.), add_labels=False, extend='max', add_colorbar=False) if plot_land: data.land.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) cs = data.t_surf[i, :, :].plot.contour(x='lon', y='lat', levels=np.arange( 200., 350., 10.), colors='w', add_labels=False, add_colorbar=False) plt.clabel(cs, fontsize=15, inline_spacing=-1, fmt='%1.0f') cb1 = plt.colorbar(ax) cb1.set_label('Precipitation, mm/day') plt.ylabel('Latitude') plt.xlabel('Longitude') plt.tight_layout() plt.savefig(plot_dir + 'rain_and_sst_' + sn_dic[i] + '.png') plt.close()
def u_and_psi_zmean(run, months, filename='atmos_pentad', period_fac=1., lonin=[-1., 361.]): rcParams['figure.figsize'] = 12, 10 plot_dir = '/scratch/rg419/plots/climatology/' + run + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(run, months, filename=filename, timeav='season', period_fac=period_fac) lons = pick_lons(data, lonin) uwnd = data.ucomp[:, :, :, lons].mean('lon') psi = mass_streamfunction(data, a=6376.0e3, lons=lons, dp_in=50.) psi /= 1.e9 for i in range(0, 4): print i ax = uwnd[i, :, :].plot.contourf(x='lat', y='pfull', levels=np.arange(-60., 60., 5.), add_label=False, add_colorbar=False, yincrease=False, extend='both') cs = psi[:, i, :].plot.contour(x='lat', y='pfull', levels=np.arange(-350., 350., 50.), colors='k', add_label=False, add_colorbar=False, yincrease=False, extend='both') plt.clabel(cs, fontsize=15, inline_spacing=-1, fmt='%1.0f') cb1 = plt.colorbar(ax) cb1.set_label('Zonal wind speed, m/s') plt.ylabel('Pressure, hPa') plt.xlabel('Latitude') plt.tight_layout() plt.savefig(plot_dir + 'u_and_psi_zmean_alllons_plev' + sn_dic[i] + '.png') plt.close()
def diabatic_heating(run, months, filename='plev_pentad', period_fac=1., plot_land=True): rcParams['figure.figsize'] = 20, 10 stefan = 5.6734e-8 plot_dir = '/scratch/rg419/plots/climatology/' + run + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(run, months, filename=filename, timeav='season', period_fac=period_fac) data['heat_rate'] = (('xofyear', 'pfull', 'lat', 'lon'), (data.tdt_rad + data.dt_tg_condensation + data.dt_tg_convection + data.dt_tg_diffusion) * 86400.) land_file = '/scratch/rg419/GFDL_model/GFDLmoistModel/input/land.nc' land = xr.open_dataset(land_file) data['land'] = (('lat', 'lon'), land.land_mask) for i in range(0, 4): print i ax = data.heat_rate[i, 4, :, :].plot.contourf(x='lon', y='lat', levels=np.arange( -10., 10., 1.), add_labels=False, extend='both', add_colorbar=False) if plot_land: data.land.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) cb1 = plt.colorbar(ax) cb1.set_label('Diabatic heating, K/day') plt.ylabel('Latitude') plt.xlabel('Longitude') plt.tight_layout() plt.savefig(plot_dir + 'diabatic_heating_' + sn_dic[i] + '.png') plt.close()
def surface_fluxes(run, months, filename='plev_pentad', period_fac=1., plot_land=True): rcParams['figure.figsize'] = 20, 10 stefan = 5.6734e-8 plot_dir = '/scratch/rg419/plots/climatology/' + run + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(run, months, filename=filename, timeav='season', period_fac=period_fac) data['surf_flux'] = (('xofyear', 'lat', 'lon'), stefan * data.t_surf**4. - data.flux_lw - data.flux_lw + data.flux_t + data.flux_lhe) land_file = '/scratch/rg419/GFDL_model/GFDLmoistModel/input/land.nc' land = xr.open_dataset(land_file) data['land'] = (('lat', 'lon'), land.land_mask) for i in range(0, 4): print i ax = data.surf_flux[i, :, :].plot.contourf(x='lon', y='lat', levels=np.arange( -700., 700., 50.), add_labels=False, extend='both', add_colorbar=False) if plot_land: data.land.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) cb1 = plt.colorbar(ax) cb1.set_label('Surface flux, W/m2') plt.ylabel('Latitude') plt.xlabel('Longitude') plt.tight_layout() plt.savefig(plot_dir + 'surface_fluxes_' + sn_dic[i] + '.png') plt.close()
def plot_clim(inp_fol): plot_dir = '/scratch/rg419/plots/climatology/' + inp_fol + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(inp_fol, [121, 181], filename='atmos_pentad', timeav='season') rain = (data.convection_rain + data.condensation_rain) * 86400. del data data_p = time_means(inp_fol, [121, 181], filename='atmos_pentad', timeav='season') ucomp = data_p.ucomp vcomp = data_p.vcomp del data_p land_file = '/scratch/rg419/GFDL_model/GFDLmoistModel/exp/summer_holiday/input/land.nc' land = xr.open_dataset(land_file) land_plot = xr.DataArray(land.land_mask.values, [('lat', ucomp.lat), ('lon', ucomp.lon)]) for i in range(0, 4): print i rain[i, :, :].plot.contourf(x='lon', y='lat', levels=np.arange(0., 31., 3.), add_label=False) #plt.ylim(-30,60) #plt.xlim(60,180) land_plot.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) plt.quiver(ucomp.lon[::3], ucomp.lat[::1], ucomp[i, 36, ::1, ::3], vcomp[i, 36, ::1, ::3], scale=500., headwidth=5) plt.savefig(plot_dir + 'wind_and_rain_' + sn_dic[i] + '.png') plt.close()
def wind_and_isotachs(run, months, filename='plev_pentad', period_fac=1., plot_land=True): rcParams['figure.figsize'] = 20, 10 plot_dir = '/scratch/rg419/plots/climatology/' + run + '/' mkdir = sh.mkdir.bake('-p') mkdir(plot_dir) sn_dic = season_dic(1) data = time_means(run, months, filename=filename, timeav='season', period_fac=period_fac) data['isotach'] = (('xofyear', 'pfull', 'lat', 'lon'), np.sqrt(data.ucomp**2. + data.vcomp**2.)) land_file = '/scratch/rg419/GFDL_model/GFDLmoistModel/input/land.nc' land = xr.open_dataset(land_file) data['land'] = (('lat', 'lon'), land.land_mask) for i in range(0, 4): print i ax = data.isotach[i, 3, :, :].plot.contourf(x='lon', y='lat', levels=np.arange(0., 20., 2.), add_labels=False, add_colorbar=False, extend='max') if plot_land: data.land.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) plt.quiver(data.lon[::3], data.lat[::1], data.ucomp[i, 4, ::1, ::3], data.vcomp[i, 4, ::1, ::3], headlength=3, headwidth=2) #, scale=500.,headwidth=5) cb1 = plt.colorbar(ax) cb1.set_label('850 hPa wind speed, m/s') plt.ylabel('Latitude') plt.xlabel('Longitude') plt.tight_layout() plt.savefig(plot_dir + 'wind_and_isotachs_850_' + sn_dic[i] + '.png') plt.close() for i in range(0, 4): print i ax = data.isotach[i, 16, :, :].plot.contourf(x='lon', y='lat', levels=np.arange( 0., 60., 5.), add_labels=False, add_colorbar=False, extend='max') if plot_land: data.land.plot.contour(x='lon', y='lat', levels=np.arange(0., 2., 1.), colors='k', add_colorbar=False, add_labels=False) plt.quiver(data.lon[::3], data.lat[::1], data.ucomp[i, 16, ::1, ::3], data.vcomp[i, 16, ::1, ::3], headlength=3, headwidth=2) #, scale=500.,headwidth=5) cb1 = plt.colorbar(ax) cb1.set_label('200 hPa wind speed, m/s') plt.ylabel('Latitude') plt.xlabel('Longitude') plt.tight_layout() plt.savefig(plot_dir + 'wind_and_isotachs_200_' + sn_dic[i] + '.png') plt.close()