- Timestamp:
- Aug 26, 2016, 2:47:39 PM (9 years ago)
- Location:
- trunk/tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var.py
r1008 r1046 16 16 ## e.g. # nc_var.py -o WRF_toCF -f ~/PY/wrfout_d01_2001-11-11_00:00:00 -S XLONG:XLAT:19491201000000:minutes 17 17 ## e.g. # nc_var.py -o cleaning_varsfile -f ~/PY/wrfout_d01_2001-11-11_00:00:00 -S T2,XLONG,XLAT,Times 18 ## e.g. # nc_var.py -o LMDZ_toCF -f LMDZ/AR40/vas_histins_1-1.nc 18 19 19 20 from optparse import OptionParser … … 41 42 'getvalues_lonlat', 'grattr', \ 42 43 'grmattr', 'idims', 'igattrs', 'increaseDimvar', 'isgattrs', 'isvattrs', 'ivars', \ 43 'ivattrs', ' maskvar', 'model_characteristics',\44 'ivattrs', 'LMDZ_toCF', 'maskvar', 'model_characteristics', \ 44 45 'ncreplace', 'ncstepdiff', 'netcdf_concatenation', 'netcdf_fold_concatenation', \ 45 46 'netcdf_fold_concatenation_HMT', 'Partialmap_Entiremap', \ … … 213 214 print opern + '_______ ______ _____ ____ ___ __ _' 214 215 print getattr(object, opern).__doc__ 216 elif oper == 'LMDZ_toCF': 217 ncvar.LMDZ_toCF(opts.ncfile) 215 218 elif oper == 'maskvar': 216 219 ncvar.maskvar(opts.values, opts.ncfile, opts.varname) -
trunk/tools/nc_var_tools.py
r1045 r1046 5714 5714 dimsize = (iendv - ibegv + 1)/iintv - 1 5715 5715 else: 5716 dimsize = = 05716 dimsize = 0 5717 5717 if begv == -9: 5718 5718 ibegv = len(objdim) - 1 … … 5746 5746 5747 5747 ncoobj.sync() 5748 print fname + 'Lluis; dims:', ncoobj.dimensions5749 5748 # Creating variables 5750 5749 ## 5751 print fname + '; Lluis dimsecslice',dimsecslice5752 5750 5753 5751 filedims = ncoobj.dimensions … … 5757 5755 5758 5756 vardims = varobj.dimensions 5759 print ' ' + fname + ' Lluis; vardims:', vardims5760 5757 5761 5758 if not gen.searchInlist(list(vardims),dimn): … … 5798 5795 varfil = None 5799 5796 vartype = varobj.dtype 5800 print ' ' + fname + '; Lluis filevardims:', filevardims5801 5797 5802 5798 if varfil is not None: … … 5806 5802 newvar = ncoobj.createVariable(varns, vartype, tuple(filevardims)) 5807 5803 ncoobj.sync() 5808 print fname + ' Lluis newvardims:', newvar.dimensions5809 5804 5810 5805 newvar[:] = varvals … … 5832 5827 5833 5828 onc = NetCDFFile(ofile, 'r') 5834 print fname + 'Lluis: ', onc.variables['lon']5835 5829 onc.close() 5836 5830 … … 16112 16106 self.vardxn = 'lon' 16113 16107 self.vardyn = 'lat' 16114 self.vardzn = 'pres '16108 self.vardzn = 'presnivs' 16115 16109 self.vardtn = 'time_counter' 16116 16110 self.vardsn = None … … 16565 16559 return 16566 16560 16561 def LMDZ_toCF(ncfile): 16562 """ Function to pass a LMDZ original file to CF-conventions 16563 ncfile= file to transform 16564 variables= variables to transform 16565 """ 16566 fname = 'LMDZ_toCF' 16567 16568 if ncfile == 'h': 16569 print fname + '_____________________________________________________________' 16570 print LMDZ_toCF.__doc__ 16571 quit() 16572 16573 ofile = 'CF_LMDZ.nc' 16574 16575 ncf = NetCDFFile(ncfile,'a') 16576 ncdims = ncf.dimensions.keys() 16577 ncvars = ncf.variables.keys() 16578 16579 # # CFing dimension-variables 16580 # CFvardims = {'time_counter': 'time', 'presnivs': 'pres'} 16581 # for varn in CFvardims.keys(): 16582 # if gen.searchInlist(ncvars,varn): 16583 # # Making sure CF vardimension is not in the file 16584 # if not gen.searchInlist(ncvars,CFvardims[varn]): 16585 # newname = ncf.renameVariable(varn,CFvardims[varn]) 16586 16587 # ncf.sync() 16588 16589 # CFing dimensions 16590 CFdims = {'time_counter': 'time', 'presnivs': 'pres'} 16591 for dimn in CFdims.keys(): 16592 if gen.searchInlist(ncdims,dimn): 16593 # Making sure CF dimension is not in the file 16594 if not gen.searchInlist(ncdims,CFdims[dimn]): 16595 newname = ncf.renameDimension(dimn,CFdims[dimn]) 16596 16597 ncf.sync() 16598 16599 ncvars = ncf.variables.keys() 16600 # Re-arranging coordinates attribute for all the variables 16601 for varn in ncvars: 16602 varobj = ncf.variables[varn] 16603 varattrs = varobj.ncattrs() 16604 if gen.searchInlist(varattrs, unicode('coordinates')): 16605 attrv = varobj.getncattr('coordinates') 16606 newcoord = str(attrv) 16607 for dimn in CFdims.keys(): 16608 newcoord = newcoord.replace(dimn, CFdims[dimn]) 16609 newattr = set_attribute(varobj, 'coordinates', newcoord) 16610 16611 ncf.sync() 16612 16613 ncf.close() 16614 16615 print fname + ": succesfull CFication of LMDZ file '" + ncfile + "' !!" 16616 16617 return 16618 16567 16619 def cleaning_varsfile(values, filen): 16568 16620 """ Function to keep a list of varibales from a file
Note: See TracChangeset
for help on using the changeset viewer.