Changeset 1961 in lmdz_wrf
- Timestamp:
- Jul 24, 2018, 1:32:25 AM (7 years ago)
- Location:
- trunk/tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/generic_tools.py
r1947 r1961 9538 9538 listA= list with values to match with 9539 9539 listB= list with values 9540 >>> list_ coincidences(range(10),range(8,15))9540 >>> list_differences(range(10),range(8,15)) 9541 9541 [10, 11, 12, 13, 14], [2, 3, 4, 5, 6] 9542 9542 """ -
trunk/tools/nc_var_tools.py
r1960 r1961 24618 24618 latvals = [] 24619 24619 heightvals = [] 24620 timevals = [] 24620 24621 for fobsn in fobs: 24621 24622 filen = namefoldobs + '/' + fobsn … … 24632 24633 print errormsg 24633 24634 print ' ' + fname + ": file '" + filen + "' does not have any 'time'" + \ 24634 "dimensi sn !!"24635 "dimension !!" 24635 24636 print " available ones:", onc.dimensions 24636 24637 quit(-1) … … 24639 24640 if variable == 'all': varns = onc.variables.keys() 24640 24641 else: varns = gen.str_list(variable, ',') 24642 if onc.variables.has_key('time'): 24643 timevals = list(onc.variables['time'][:]) 24644 elif onc.variables.has_key('CFtime'): 24645 timevals = list(onc.variables['CFtime'][:]) 24646 else: 24647 print errormsg 24648 print ' '+fname+": file '" + filen + "' does not have any 'time'" + \ 24649 "expected variable ('time', 'CFtime') !!" 24650 varnsorted = onc.variables.has_key(varn) 24651 varnsorted.sort() 24652 print ' available ones:', varnsorted 24653 quit(-1) 24654 else: 24655 if onc.variables.has_key('time'): 24656 tvals = onc.variables['time'][:] 24657 elif onc.variables.has_key('CFtime'): 24658 tvals =onc.variables['CFtime'][:] 24659 else: 24660 print errormsg 24661 print ' ' +fname+ ": file '" +filen+ "' does not have any 'time'" + \ 24662 "expected variable ('time', 'CFtime') !!" 24663 varnsorted = onc.variables.has_key(varn) 24664 varnsorted.sort() 24665 print ' available ones:', varnsorted 24666 quit(-1) 24667 NOtvals, NOits = gen.list_differences(timevals, list(tvals)) 24668 if len(NOtvals) > 0: 24669 print ' ' + fname + ": file '" + filen + "' adds additional times:",\ 24670 NOtvals 24671 for tv in NOtvals: timevals.append(tv) 24641 24672 stn = '' 24642 24673 for stS in onc.variables['station'][0,:]: … … 24682 24713 basicvardef(newvar, 'height', 'height of stations', 'm') 24683 24714 newvar[:] = heightvals[:] 24715 24716 # Time axis 24717 timevalsort = timevals 24718 timevalsort.sort() 24719 newvart = onewnc.createVariable('ststimes', 'f', ('time')) 24720 newvart[:] = timevalsort[:] 24721 newvart.setncattr('standrad_name','time') 24722 newvart.setncattr('long_name','Time') 24684 24723 24685 24724 ifile = 0 … … 24693 24732 24694 24733 onc = NetCDFFile(filen, 'r') 24734 ot = onc.variables['time'] 24735 otv = list(ot[:]) 24736 coint, itcoinsort, itcoinotv = gen.list_coincidences(timevalsort, otv) 24737 itcoinsort.sort() 24738 24695 24739 if ifile == 0: 24696 24740 for varn in varns: … … 24703 24747 print ' available ones:', varnsorted 24704 24748 quit(-1) 24749 tu = ot.units 24750 newvart.setncattr('units',tu) 24751 24705 24752 ovar = onc.variables[varn] 24706 24753 attrns = ovar.ncattrs() … … 24724 24771 newvar = onewnc.createVariable(varn, vartype, tuple(newdims)) 24725 24772 24726 varv = ovar[:]24727 if len(newvar.shape) == 4: newvar[:,:,:,ifile] = varv[:]24728 elif len(newvar.shape) == 3: newvar[:,:,ifile] = varv[:]24729 elif len(newvar.shape) == 2: newvar[:,ifile] = varv[:]24730 24773 for attrn in attrns: 24731 24774 if attrn != '_FillValue': … … 24736 24779 attrv = onc.getncattr(attrn) 24737 24780 onewnc.setncattr(attrn, attrv) 24738 24781 newvar = onewnc.variables[varn] 24782 varv = ovar[:] 24783 if gen.searchInlist(newvar.dimensions, 'time'): 24784 if len(newvar.shape) == 4: newvar[itcoinsort,:,:,ifile] = varv[:] 24785 elif len(newvar.shape) == 3: newvar[itcoinsort,:,ifile] = varv[:] 24786 elif len(newvar.shape) == 2: newvar[itcoinsort,ifile] = varv[:] 24787 else: 24788 if len(newvar.shape) == 4: newvar[:,:,:,ifile] = varv[:] 24789 elif len(newvar.shape) == 3: newvar[:,:,ifile] = varv[:] 24790 elif len(newvar.shape) == 2: newvar[:,ifile] = varv[:] 24739 24791 else: 24740 24792 for varn in varns: … … 24747 24799 print ' available ones:', varnsorted 24748 24800 quit(-1) 24801 24749 24802 ovar = onc.variables[varn] 24750 24803 newvar = onewnc.variables[varn] 24751 24804 varv = ovar[:] 24752 if len(newvar.shape) == 4: newvar[:,:,:,ifile] = varv[:] 24753 elif len(newvar.shape) == 3: newvar[:,:,ifile] = varv[:] 24754 elif len(newvar.shape) == 2: newvar[:,ifile] = varv[:] 24805 if gen.searchInlist(newvar.dimensions, 'time'): 24806 if len(newvar.shape) == 4: newvar[itcoinsort,:,:,ifile] = varv[:] 24807 elif len(newvar.shape) == 3: newvar[itcoinsort,:,ifile] = varv[:] 24808 elif len(newvar.shape) == 2: newvar[itcoinsort,ifile] = varv[:] 24809 else: 24810 if len(newvar.shape) == 4: newvar[:,:,:,ifile] = varv[:] 24811 elif len(newvar.shape) == 3: newvar[:,:,ifile] = varv[:] 24812 elif len(newvar.shape) == 2: newvar[:,ifile] = varv[:] 24755 24813 24756 24814 onewnc.sync()
Note: See TracChangeset
for help on using the changeset viewer.