示例#1
0
def deep_ocean_heat_content(dataset, model_params):

	print 'doing deep ocean heat content'
	aav.area_average(dataset, 'd_weighted_sst_data_dt', model_params, land_ocean_all='ocean', axis_in='xofyear')
	d_deep_ocean_dt=dataset['net_surf_energy_fl_area_av_ocean']-dataset['d_weighted_sst_data_dt_area_av_ocean']

	dataset['d_deep_ocean_dt']=(('xofyear'), d_deep_ocean_dt)	
示例#2
0
def calc_qflux(qflux, lons, output_dict={0: 0}):

    qflux['qflux_zav'] = (('time', 'lat', 'lon'),
                          np.tile(
                              np.mean(qflux.ocean_qflux.values[:, :,
                                                               lon_dic[lons]],
                                      2,
                                      keepdims=True), [1, 1, 128]))

    input_dir = '/scratch/rg419/GFDL_model/GFDLmoistModel/'
    model_params = sagp.model_params_set(input_dir, delta_t=720., ml_depth=10.)
    aav.area_average(data, 'qflux_zav', model_params)

    qflux['qflux_out'] = (('time', 'lat', 'lon'),
                          qflux.qflux_zav - qflux.qflux_zav_area_av_all)

    #io.output_nc_file(qflux,'qflux_out', model_params, output_dict)

    return qflux
示例#3
0
def net_surf_energy_flux(dataset, model_params):
    """Calculates the net surface energy flux to be used in q-flux calcuation, but also calcualtes a scaling factor such that the annual average of the area-averaged surface flux is zero."""
    
    print 'doing net surf energy flux'
    aav.area_average(dataset, 'flux_sw', model_params, land_ocean_all='ocean', axis_in='xofyear')
    aav.area_average(dataset, 'flux_lw', model_params, land_ocean_all='ocean', axis_in='xofyear')
    aav.area_average(dataset, 'sigma_sb_t_surf', model_params, land_ocean_all='ocean', axis_in='xofyear')
    aav.area_average(dataset, 'flux_t', model_params, land_ocean_all='ocean', axis_in='xofyear')
    aav.area_average(dataset, 'flux_lhe', model_params, land_ocean_all='ocean', axis_in='xofyear')
    
    scaling_factor=((dataset['sigma_sb_t_surf_area_av_ocean']+dataset['flux_t_area_av_ocean']+dataset['flux_lhe_area_av_ocean']-dataset['flux_lw_area_av_ocean'])/dataset['flux_sw_area_av_ocean']).mean('xofyear')
    
    print 'using scale factor for SW of '+ str(scaling_factor)
    
    net_surf_energy_fl=(scaling_factor*dataset['flux_sw']+dataset['flux_lw']-(model_params['sigma_sb']*dataset['t_surf']**4.0)-dataset['flux_t']-dataset['flux_lhe'])*(1.0-dataset['land'])
    
    dataset['net_surf_energy_fl']=(('xofyear','lat','lon'), net_surf_energy_fl)
    aav.area_average(dataset, 'net_surf_energy_fl', model_params, land_ocean_all='ocean', axis_in='xofyear')