ntrimetres = range(1, 9) itime = 31 * len(ntrimetres) myvars = [ "tmphag", "spfhhag", "dswrfsfc" ] for var in myvars: for year in nyear: data_all, lats, lons = post.PostModel(fcst_month, ntrimetres, year, nvar=var, model='RSM97') print data_all.shape data_all = np.swapaxes(data_all, 1, 2).reshape(itime, 20, 72, 109) # Remove valores nan daily = data_all[~np.isnan(data_all[:, 0, 0, 0]), :, :, :] daily = np.swapaxes(daily, 0, 1) print daily.shape # Usado no forecast fname = '{4}.daily.rsm97.hind8110.{0}{1}.' \ '{1}0{2}-{1}0{3}.nc' \ .format(fcst_month, year, ntrimetres[0], ntrimetres[-1], var) writenc4(daily, lats, lons, fname, daily.shape[1], year)
# Kelvin -> Celsius tmphag = tmphag - 273.15 # Equação de Clausius Clapeyron # Pressão de vapor de saturação em pascal es = 0.6108 * np.exp((17.27 * tmphag) / (tmphag + 237.3)) # Rogers & Yau. A short course in Cloud Physics # http://www.eol.ucar.edu/projects/ceop/dm/documents/refdata_report/eqns.html # Pressão em Pa = 100000. ur = (100 * (100000. / 0.622) * (spfhhag / es)) / 1000 fname = 'ur.daily.rsm97.hind8110.jan{0}.{0}01-{0}08.nc' \ .format(y) writenc4(ur, lat, lon, fname, ur.shape[1], y) print fname # Ver também: # http://earthscience.stackexchange.com/questions/2360/how-do-i-convert-specific-humidity-to-relative-humidity # writenc4(ur, lat, lon, 'out.nc', ur.shape[1], y) ### Escreve em um arquivo txt ### # for m in xrange(0, 20): # nt, ny, nx = ur[m, :, :, :].shape # nvar = np.reshape(ur[m, :, :, :], [nt, nx*ny], order='F').T