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
Example #2
0
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