def all_data(ds, varnms, datadir, year, month, day, jday, calc_kw, nc_kw): """Process selected variables in a dataset and save each to file.""" files = {} for nm in varnms: print(nm) data = var_calcs(ds[nm], jday, **calc_kw) filenm = '%s%s_%d%02d%02d.nc' % (datadir, nm, year, month, day) print('Saving to ' + filenm) atm.disptime() data.to_netcdf(filenm, **nc_kw) files[nm] = filenm return files
def calc_dp(var, plev): """Extract subset of pressure levels and calculate d/dp.""" plevs = atm.get_coord(var, 'plev') pname = atm.get_coord(var, 'plev', 'name') pdim = atm.get_coord(var, 'plev', 'dim') ind = (list(plevs)).index(plev) i1 = max(0, ind - 1) i2 = min(len(plevs) - 1, ind + 1) + 1 psub = plevs[i1:i2] varsub = var.sel(**{pname : psub}) pres = atm.pres_convert(psub, 'hPa', 'Pa') atm.disptime() print('Computing d/dp for pressure level %d' % plev) dvar = atm.gradient(varsub, pres, axis=pdim) dvar = dvar.sel(**{pname : plev}) dvar.name = 'D%sDP' % var.name atm.disptime() return dvar