def __init__(self): file2read = netcdf.NetCDFFile("/scratch/general/am8e13/results36km/grid.nc",'r') bathy = file2read.variables['HFacC'] self.bathy = bathy[:]*1 Z = file2read.variables['Z'] Z = Z[:]*1 self.Z = Z lat = file2read.variables['XC'] self.lat = lat[:]*1 lon = file2read.variables['YC'] self.lon = lon[:]*1 file1 = '/hpcdata/scratch/am8e13/cs_36km_tutorial/run_input/theta.phc_210_192_50_12' self.T = komod.mitbin(file1,xdim=192,ydim=210,zdim=50,datatype='float32') self.T = np.squeeze(self.T,axis=0) self.T[self.bathy == 0] = np.nan file1 = '/hpcdata/scratch/am8e13/cs_36km_tutorial/run_input/salt.phc_210_192_50_12' self.S = komod.mitbin(file1,xdim=192,ydim=210,zdim=50,datatype='float32') self.S = np.squeeze(self.S,axis=0) self.S[self.bathy == 0] = np.nan self.rho = rho(self.S,self.T) self.rhop = rhop(self.S,self.T) self.depth = Z # calculate jmd 95 density self.rho_jmd = np.zeros_like(self.rho) for z in range(len(self.Z)): self.rho_jmd[z,:,:] = densjmd95(self.S[z,:,:],self.T[z,:,:],-9.81*self.Z[z]*1025) self.title = 'PHC' self.dataDyn = {} temp_lv = np.nanmean(np.nanmean(self.T,axis=1),axis=1) self.dataDyn['theta_lv_mean'] = (np.ones((400,1))*temp_lv) temp_lv = np.nanmean(np.nanmean(self.S,axis=1),axis=1) self.dataDyn['salt_lv_mean'] = (np.ones((400,1))*temp_lv) self.dataDyn['rho_lv_mean'] = rhop(self.dataDyn['salt_lv_mean'],self.dataDyn['theta_lv_mean'])
def readData(self,list_var): file2read = netcdf.NetCDFFile(self.path+'state.nc','r') Temp=file2read.variables['Temp'] self.data['T']=Temp[list_var]*1 V=file2read.variables['V'] self.data['V']=V[list_var]*1 U=file2read.variables['U'] self.data['U']=U[list_var]*1 S=file2read.variables['S'] self.data['S']=S[list_var]*1 Eta=file2read.variables['Eta'] self.data['Eta']=Eta[list_var]*1 days=file2read.variables['T'] self.data['days']=days[list_var]*1 self.years = (self.data['days'] - self.data['days'][0])/(60*60*24*360) file2read.close() if self.data['T'].shape[3] == 210: self.grid = "/scratch/general/am8e13/results36km/grid.nc" self.res = 36 elif self.data['T'].shape[3] == 420: self.grid = "/scratch/general/am8e13/results18km/grid.nc" self.res = 18 elif self.data['T'].shape[3] == 840: self.grid = "/scratch/general/am8e13/results9km/grid.nc" self.res = 9 file2read = netcdf.NetCDFFile(self.grid,'r') # Bathy is 1 on land and 0 over sea hfacc = file2read.variables['HFacC'] self.hfacc = hfacc[:]*1 hfacw = file2read.variables['HFacW'] self.hfacw = hfacw[:]*1 hfacs = file2read.variables['HFacS'] self.hfacs = hfacs[:]*1 lat = file2read.variables['YC'] self.lat = lat[:]*1 lon = file2read.variables['XC'] self.lon = lon[:]*1 depth = file2read.variables['Z'] self.depth = depth[:]*1 X = file2read.variables['X'] self.X = X[:]*1 Y = file2read.variables['Y'] self.Y = Y[:]*1 Z = file2read.variables['Z'] self.Z = Z[:]*1 file2read.close() self.data['T'][:,self.hfacc==0] = np.nan self.data['U'][:,self.hfacw==0] = np.nan self.data['V'][:,self.hfacs==0] = np.nan self.data['S'][:,self.hfacc==0] = np.nan self.data['Eta'][:,self.hfacc[0,:,:]==0] = np.nan self.T = np.nanmean(self.data['T'],axis=0) self.S = np.nanmean(self.data['S'],axis=0) self.rho = rho(self.S,self.T) self.rhop = rhop(self.S,self.T) # calculate jmd 95 density self.rho_jmd = np.zeros_like(self.rho) for z in range(len(self.Z)): self.rho_jmd[z,:,:] = densjmd95(self.S[z,:,:],self.T[z,:,:],-9.81*self.Z[z]*1027.5) self.V = np.nanmean(self.data['V'],axis=0) self.U = np.nanmean(self.data['U'],axis=0) self.Vda = np.nanmean(np.nanmean(self.data['V'],axis=1),axis=0) self.Uda = np.nanmean(np.nanmean(self.data['U'],axis=1),axis=0) print 'Data read from '+self.path
def __init__(self): file2read = netcdf.NetCDFFile("/scratch/general/am8e13/results36km/grid.nc",'r') bathy = file2read.variables['HFacC'] self.bathy = bathy[:]*1 self.res = 36 Z = file2read.variables['Z'] Z = Z[:]*1 self.Z = Z lat = file2read.variables['YC'] self.lat = lat[:]*1 lon = file2read.variables['XC'] self.lon = lon[:]*1 file1 = '/scratch/general/am8e13/WOA/WOA05_THETA_210x192x50_arctic' self.T = komod.mitbin(file1,xdim=192,ydim=210,zdim=50,datatype='float32') self.T = np.squeeze(self.T,axis=0) self.T[self.bathy == 0] = np.nan file1 = '/scratch/general/am8e13/WOA/WOA05_SALT_210x192x50_arctic' self.S = komod.mitbin(file1,xdim=192,ydim=210,zdim=50,datatype='float32') self.S = np.squeeze(self.S,axis=0) self.S[self.bathy == 0] = np.nan self.rho = rho(self.S,self.T) self.rhop = rhop(self.S,self.T) self.depth = Z # calculate jmd 95 density # 18 km files file1 = '/scratch/general/am8e13/WOA/WOA05_THETA_420x384x50_arctic' self.T18 = komod.mitbin(file1,xdim=384,ydim=420,zdim=50,datatype='float32') self.T18 = np.squeeze(self.T18,axis=0) file1 = '/scratch/general/am8e13/WOA/WOA05_SALT_420x384x50_arctic' self.S18 = komod.mitbin(file1,xdim=384,ydim=420,zdim=50,datatype='float32') self.S18 = np.squeeze(self.S18,axis=0) file2read = netcdf.NetCDFFile("/scratch/general/am8e13/results18km/grid.nc",'r') bathy = file2read.variables['HFacC'] self.bathy = bathy[:]*1 self.T18[self.bathy == 0] = np.nan self.S18[self.bathy == 0] = np.nan self.rho18 = rho(self.S18,self.T18) self.rhop18 = rhop(self.S18,self.T18) # 9 km files file1 = '/scratch/general/am8e13/WOA/WOA05_THETA_840x768x50_arctic' self.T9 = komod.mitbin(file1,xdim=768,ydim=840,zdim=50,datatype='float32') self.T9 = np.squeeze(self.T9,axis=0) file1 = '/scratch/general/am8e13/WOA/WOA05_SALT_840x768x50_arctic' self.S9 = komod.mitbin(file1,xdim=768,ydim=840,zdim=50,datatype='float32') self.S9 = np.squeeze(self.S9,axis=0) file2read = netcdf.NetCDFFile("/scratch/general/am8e13/results9km/grid.nc",'r') bathy = file2read.variables['HFacC'] self.bathy = bathy[:]*1 self.T9[self.bathy == 0] = np.nan self.S9[self.bathy == 0] = np.nan self.rho9 = rho(self.S9,self.T9) self.rhop9 = rhop(self.S9,self.T9) self.rho_jmd = np.zeros_like(self.rho) for z in range(len(self.Z)): self.rho_jmd[z,:,:] = densjmd95(self.S[z,:,:],self.T[z,:,:],-9.81*self.Z[z]*1025) self.title = 'Woa' self.dataDyn = {} temp_lv = np.nanmean(np.nanmean(self.T,axis=1),axis=1) self.dataDyn['theta_lv_mean'] = (np.ones((400,1))*temp_lv) temp_lv = np.nanmean(np.nanmean(self.S,axis=1),axis=1) self.dataDyn['salt_lv_mean'] = (np.ones((400,1))*temp_lv) self.dataDyn['rho_lv_mean'] = rhop(self.dataDyn['salt_lv_mean'],self.dataDyn['theta_lv_mean'])