def vertdata(ncbase,jobid,z,var,latbounds): lat = np.array(ncbase.variables['latitude'],dtype=np.float64)[:] lon = np.array(ncbase.variables['longitude'],dtype=np.float64)[:] hgt = np.array(ncbase.variables['level_height'],dtype=np.float64)[:] mon1 = np.array(ncbase.variables['time'],dtype=np.float64) mon1 = mon1[jobs.spinup(jobid)[0]:jobs.spinup(jobid)[1]] mon = mon1[:] high = np.where(hgt>=z[1]*1E3)[0][0]+1 low = np.where(hgt>=z[0]*1E3)[0][0] south = np.where(lat==latbounds[0])[0][0] north = np.where(lat==latbounds[1])[0][0]+1 # attributes=variables_attributes.attributes(var) # Convert unit unit1=units.diagnostic(var) if unit1=='': unit1 = data.unit conversion = convert_unit.convert(unit1,var) # DATA data = ncbase.variables[var][jobs.spinup(jobid)[0]:jobs.spinup(jobid)[1]] data = data[:]*conversion # Vertical profile years=[] for y in range(0,len(data)/12): years.append(np.mean(np.mean(np.mean(data[y*12:(y+1)*12,low:high,south:north,:], axis=3, dtype=np.float64), axis=2, dtype=np.float64), axis=0, dtype=np.float64)) data1 = np.mean(years, axis=0, dtype=np.float64) sd = np.std(years, axis=0, dtype=np.float64) # Standard deviation sdbelow = data1[:]-sd[:] sdabove = data1[:]+sd[:] return data1,sdbelow,sdabove
def vertdata(ncbase, jobid, z, var, latbounds): lat = np.array(ncbase.variables['latitude'], dtype=np.float64)[:] lon = np.array(ncbase.variables['longitude'], dtype=np.float64)[:] hgt = np.array(ncbase.variables['level_height'], dtype=np.float64)[:] mon1 = np.array(ncbase.variables['time'], dtype=np.float64) mon1 = mon1[jobs.spinup(jobid)[0]:jobs.spinup(jobid)[1]] mon = mon1[:] high = np.where(hgt >= z[1] * 1E3)[0][0] + 1 low = np.where(hgt >= z[0] * 1E3)[0][0] south = np.where(lat == latbounds[0])[0][0] north = np.where(lat == latbounds[1])[0][0] + 1 # attributes=variables_attributes.attributes(var) # Convert unit unit1 = units.diagnostic(var) if unit1 == '': unit1 = data.unit conversion = convert_unit.convert(unit1, var) # DATA data = ncbase.variables[var][jobs.spinup(jobid)[0]:jobs.spinup(jobid)[1]] data = data[:] * conversion # Vertical profile years = [] for y in range(0, len(data) / 12): years.append( np.mean(np.mean(np.mean(data[y * 12:(y + 1) * 12, low:high, south:north, :], axis=3, dtype=np.float64), axis=2, dtype=np.float64), axis=0, dtype=np.float64)) data1 = np.mean(years, axis=0, dtype=np.float64) sd = np.std(years, axis=0, dtype=np.float64) # Standard deviation sdbelow = data1[:] - sd[:] sdabove = data1[:] + sd[:] return data1, sdbelow, sdabove
# dimensions lat = np.array(ncbase.variables['latitude'], dtype=np.float64)[:] hgt = np.array(ncbase.variables['level_height'], dtype=np.float64)[:] data = ncbase.variables[var] print data #import numpy.ma as ma #new_data = np.ma.masked_where(np.ma.getmask(mask), data) # attributes attributes = variables_attributes.attributes(var) name = attributes[0] formula = attributes[2] # Convert unit conversion = convert_unit.convert(unit, var) data = data[:] * conversion data = data[:] * mask[:] #data_m = data[:] #np.ma.set_fill_value(data_m,0.) #data_m[data_m.mask] = data_m.fill_value # Zonal mean data1 = np.mean(np.mean(\ data[:,:,:,:]\ , axis=3, dtype=np.float64)\ , axis=0, dtype=np.float64) #sd1 = np.std(np.mean(\ # data[:,:,:,:]\ # , axis=3, dtype=np.float64)\
# Read in files # time,model_level_number,latitude,longitude file1 = '/'+disk+'/ih280/um/'+jobid+'/'+jobid+stash+'.nc' ncbase = ncdf.Dataset(file1,'r') data = ncbase.variables[var] print data # attributes attributes = variables_attributes.attributes(var) varname = attributes[0] formula = attributes[2] # convert to unit conversion = convert_unit.convert(unit,var) data = data[:]*conversion #*********************************************************** # Tropospheric mask: 1 for troposphere, 0 other #INPUT: #ncfile = file containing tropopause height #LTROP = 1 for troposphere (i.e. mask out stratosphere); 0 otherwise #tmean = 0 (no time meaning), # 1 (climatological monthly mean), # 2 (full time mean), # in order of most to least expensive! # 5 (no time dimension) #nyrs = length of run in years (if nyrs = 0: entire run) # VN 7.3: