コード例 #1
0
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()
コード例 #2
0
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()
コード例 #3
0
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()
コード例 #4
0
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()
コード例 #5
0
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()
コード例 #6
0
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()