Changeset 1379 in lmdz_wrf
- Timestamp:
- Dec 13, 2016, 1:32:29 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r1376 r1379 18151 18151 values= [dnames]|[varattributes]|[kind] 18152 18152 [dnames]: [dimn1],...,[dimnN], ',' list of name of dimensions for the new variable (already existing) 18153 [attributes]: [std_name]@[long_name]@[units], standard name, long name and units of the variable 18154 ('!' for spaces) 18153 'scalar', for scalar variables 18154 [attributes]: [std_name]@[long_name]@[units], standard name, long name and units of the variable ('!' for spaces) 18155 'None' for no standard attributes 18155 18156 [kind]: type of variable (standard netCDF4/C-like values, 'c', 'i', 'f', 'f8',...) 18156 18157 ncfile= name of the file … … 18176 18177 dimns = onc.dimensions 18177 18178 varns = onc.variables.keys() 18178 18179 # Checking dimensions 18180 dsize = [] 18181 for dimn in dnames: 18182 if not gen.searchInlist(dimns, dimn): 18183 print errormsg 18184 print ' ' +fname+ ": file '" + ncfile + "' does not have dimension '" + \ 18185 dimn + "' !!" 18186 print ' existing ones:', dimns 18187 quit(-1) 18188 else: 18189 dsize.append(len(onc.dimensions[dimn])) 18190 18179 18191 18180 # Checking new varname 18192 18181 if gen.searchInlist(varns, varn): … … 18197 18186 quit(-1) 18198 18187 18188 if values.split('|')[0].find(',') != -1: 18189 # Checking dimensions 18190 dsize = [] 18191 for dimn in dnames: 18192 if not gen.searchInlist(dimns, dimn): 18193 print errormsg 18194 print ' ' +fname+ ": file '" + ncfile + "' does not have " + \ 18195 "dimension '" + dimn + "' !!" 18196 print ' existing ones:', dimns 18197 quit(-1) 18198 else: 18199 dsize.append(len(onc.dimensions[dimn])) 18200 18199 18201 # Variable 18200 if kind == 'c': 18201 newvar = onc.createVariable(varn, 'c', tuple(dnames)) 18202 # newvar[:] = np.zeros(tuple(dsize), dtype=np.float) 18203 elif kind == 'f' or kind == 'f4': 18204 newvar = onc.createVariable(varn, 'f4', tuple(dnames), \ 18205 fill_value=gen.fillValueF) 18206 newvar[:] = np.zeros(tuple(dsize), dtype=np.float) 18207 elif kind == 'f8': 18208 newvar = onc.createVariable(varn, 'f8', tuple(dnames), \ 18209 fill_value=gen.fillValueD) 18210 newvar[:] = np.zeros(tuple(dsize), dtype=np.float64) 18211 elif kind == 'i': 18212 newvar = onc.createVariable(varn, 'i', tuple(dnames), \ 18213 fill_value=gen.fillValueI) 18214 newvar[:] = np.zeros(tuple(dsize), dtype=int) 18202 if kind == 'c': 18203 newvar = onc.createVariable(varn, 'c', tuple(dnames)) 18204 # newvar[:] = np.zeros(tuple(dsize), dtype=np.float) 18205 elif kind == 'f' or kind == 'f4': 18206 newvar = onc.createVariable(varn, 'f4', tuple(dnames), \ 18207 fill_value=gen.fillValueF) 18208 newvar[:] = np.zeros(tuple(dsize), dtype=np.float) 18209 elif kind == 'f8': 18210 newvar = onc.createVariable(varn, 'f8', tuple(dnames), \ 18211 fill_value=gen.fillValueD) 18212 newvar[:] = np.zeros(tuple(dsize), dtype=np.float64) 18213 elif kind == 'i': 18214 newvar = onc.createVariable(varn, 'i', tuple(dnames), \ 18215 fill_value=gen.fillValueI) 18216 newvar[:] = np.zeros(tuple(dsize), dtype=int) 18217 else: 18218 print errormsg 18219 print ' ' + fname + ": variable kind '" + kind + "' not ready!!" 18220 quit(-1) 18221 18222 elif values.split('|')[0] == 'scalar': 18223 print ' ' + fname + ': creation of scalar variable !!' 18224 18225 # Variable 18226 if kind == 'c': 18227 newvar = onc.createVariable(varn, 'c') 18228 # newvar[:] = np.zeros(tuple(dsize), dtype=np.float) 18229 elif kind == 'f' or kind == 'f4': 18230 newvar = onc.createVariable(varn, 'f4') 18231 newvar[:] = np.float(0.) 18232 elif kind == 'f8': 18233 newvar = onc.createVariable(varn, 'f8') 18234 newvar[:] = np.float64(0.) 18235 elif kind == 'i': 18236 newvar = onc.createVariable(varn, 'i') 18237 newvar[:] = int(0) 18238 else: 18239 print errormsg 18240 print ' ' + fname + ": variable kind '" + kind + "' not ready!!" 18241 quit(-1) 18215 18242 else: 18216 18243 print errormsg 18217 print ' ' + fname + ": variable kind '" + kind + "' not ready!!"18244 print ' ' + fname + ": wrong dimension values: '" + dnames + "' !!" 18218 18245 quit(-1) 18219 18246 18220 sname = attributes.split('@')[0] 18221 lname = attributes.split('@')[1] 18222 u = attributes.split('@')[2] 18247 # Setting standard attributes 18248 if values.split('|')[1] != 'None': 18249 sname = attributes.split('@')[0] 18250 lname = attributes.split('@')[1] 18251 u = attributes.split('@')[2] 18223 18252 18224 newattr = basicvardef(newvar, sname, lname, u)18253 newattr = basicvardef(newvar, sname, lname, u) 18225 18254 18226 18255 onc.sync() … … 18247 18276 if values == 'h': 18248 18277 print fname + '_____________________________________________________________' 18249 print addVar.__doc__18278 print setvar_nc.__doc__ 18250 18279 quit() 18251 18280
Note: See TracChangeset
for help on using the changeset viewer.