Changeset 2189 in lmdz_wrf


Ignore:
Timestamp:
Oct 17, 2018, 7:54:12 PM (6 years ago)
Author:
lfita
Message:

Removing duplicated `coincident_CFtimes'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/generic_tools.py

    r2188 r2189  
    67846784    return newTunits, newTvals
    67856785
    6786 def coincident_CFtimes(tvalB, tunitA, tunitB):
    6787     """ Function to make coincident times for two different sets of CFtimes
    6788     tvalB= time values B
    6789     tunitA= time units times A to which we want to make coincidence
    6790     tunitB= time units times B
    6791     >>> coincident_CFtimes(np.arange(10),'seconds since 1949-12-01 00:00:00',
    6792       'hours since 1949-12-01 00:00:00')
    6793     [     0.   3600.   7200.  10800.  14400.  18000.  21600.  25200.  28800.  32400.]
    6794     >>> coincident_CFtimes(np.arange(10),'seconds since 1949-12-01 00:00:00',
    6795       'hours since 1979-12-01 00:00:00')
    6796     [  9.46684800e+08   9.46688400e+08   9.46692000e+08   9.46695600e+08
    6797        9.46699200e+08   9.46702800e+08   9.46706400e+08   9.46710000e+08
    6798        9.46713600e+08   9.46717200e+08]
    6799     """
    6800     import datetime as dt
    6801     fname = 'coincident_CFtimes'
    6802 
    6803     trefA = tunitA.split(' ')[2] + ' ' + tunitA.split(' ')[3]
    6804     trefB = tunitB.split(' ')[2] + ' ' + tunitB.split(' ')[3]
    6805     tuA = tunitA.split(' ')[0]
    6806     tuB = tunitB.split(' ')[0]
    6807 
    6808     if tuA != tuB:
    6809         if tuA == 'microseconds':
    6810             if tuB == 'microseconds':
    6811                 tB = tvalB*1.
    6812             elif tuB == 'seconds':
    6813                 tB = tvalB*10.e6
    6814             elif tuB == 'minutes':
    6815                 tB = tvalB*60.*10.e6
    6816             elif tuB == 'hours':
    6817                 tB = tvalB*3600.*10.e6
    6818             elif tuB == 'days':
    6819                 tB = tvalB*3600.*24.*10.e6
    6820             else:
    6821                 print errormsg
    6822                 print '  ' + fname + ": combination of time untis: '" + tuA +        \
    6823                   "' & '" + tuB + "' not ready !!"
    6824                 quit(-1)
    6825         elif tuA == 'seconds':
    6826             if tuB == 'microseconds':
    6827                 tB = tvalB/10.e6
    6828             elif tuB == 'seconds':
    6829                 tB = tvalB*1.
    6830             elif tuB == 'minutes':
    6831                 tB = tvalB*60.
    6832             elif tuB == 'hours':
    6833                 tB = tvalB*3600.
    6834             elif tuB == 'days':
    6835                 tB = tvalB*3600.*24.
    6836             else:
    6837                 print errormsg
    6838                 print '  ' + fname + ": combination of time untis: '" + tuA +        \
    6839                   "' & '" + tuB + "' not ready !!"
    6840                 quit(-1)
    6841         elif tuA == 'minutes':
    6842             if tuB == 'microseconds':
    6843                 tB = tvalB/(60.*10.e6)
    6844             elif tuB == 'seconds':
    6845                 tB = tvalB/60.
    6846             elif tuB == 'minutes':
    6847                 tB = tvalB*1.
    6848             elif tuB == 'hours':
    6849                 tB = tvalB*60.
    6850             elif tuB == 'days':
    6851                 tB = tvalB*60.*24.
    6852             else:
    6853                 print errormsg
    6854                 print '  ' + fname + ": combination of time untis: '" + tuA +        \
    6855                   "' & '" + tuB + "' not ready !!"
    6856                 quit(-1)
    6857         elif tuA == 'hours':
    6858             if tuB == 'microseconds':
    6859                 tB = tvalB/(3600.*10.e6)
    6860             elif tuB == 'seconds':
    6861                 tB = tvalB/3600.
    6862             elif tuB == 'minutes':
    6863                 tB = tvalB/60.
    6864             elif tuB == 'hours':
    6865                 tB = tvalB*1.
    6866             elif tuB == 'days':
    6867                 tB = tvalB*24.
    6868             else:
    6869                 print errormsg
    6870                 print '  ' + fname + ": combination of time untis: '" + tuA +        \
    6871                   "' & '" + tuB + "' not ready !!"
    6872                 quit(-1)
    6873         elif tuA == 'days':
    6874             if tuB == 'microseconds':
    6875                 tB = tvalB/(24.*3600.*10.e6)
    6876             elif tuB == 'seconds':
    6877                 tB = tvalB/(24.*3600.)
    6878             elif tuB == 'minutes':
    6879                 tB = tvalB/(24.*60.)
    6880             elif tuB == 'hours':
    6881                 tB = tvalB/24.
    6882             elif tuB == 'days':
    6883                 tB = tvalB*1.
    6884             else:
    6885                 print errormsg
    6886                 print '  ' + fname + ": combination of time untis: '" + tuA +        \
    6887                   "' & '" + tuB + "' not ready !!"
    6888                 quit(-1)
    6889         else:
    6890             print errormsg
    6891             print '  ' + fname + ": time untis: '" + tuA + "' not ready !!"
    6892             quit(-1)
    6893     else:
    6894         tB = tvalB*1.
    6895 
    6896     if trefA != trefB:
    6897         trefTA = dt.datetime.strptime(trefA, '%Y-%m-%d %H:%M:%S')
    6898         trefTB = dt.datetime.strptime(trefB, '%Y-%m-%d %H:%M:%S')
    6899 
    6900         difft = trefTB - trefTA
    6901         if searchInlist(difft.keys(), 'total_seconds'):
    6902             diffv = difft.total_seconds*10.e6
    6903         else:
    6904             diffv = difft.days*24.*3600.*10.e6 + difft.seconds*10.e6 + difft.microseconds
    6905         print '  ' + fname + ': different reference refA:',trefTA,'refB',trefTB
    6906         print '    difference:',difft,':',diffv,'microseconds'
    6907 
    6908         if tuA == 'microseconds':
    6909             tB = tB + diffv
    6910         elif tuA == 'seconds':
    6911             tB = tB + diffv/10.e6
    6912         elif tuA == 'minutes':
    6913             tB = tB + diffv/(60.*10.e6)
    6914         elif tuA == 'hours':
    6915             tB = tB + diffv/(3600.*10.e6)
    6916         elif tuA == 'dayss':
    6917             tB = tB + diffv/(24.*3600.*10.e6)
    6918         else:
    6919             print errormsg
    6920             print '  ' + fname + ": time untis: '" + tuA + "' not ready !!"
    6921             quit(-1)
    6922 
    6923     return tB
    6924 
    69256786def wdismean(pos,val4):
    69266787    """ Function to compute the mean value weighted to its 4 distances
     
    98239684        print warnmsg
    98249685        print '  ' + fname + ": time-units without time '" + tunitB + "' !!"
    9825         print "    adding: '00:00:001"
     9686        print "    adding: '00:00:00"
    98269687        trefB = tunitB.split(' ')[2] + ' 00:00:00'
    98279688    tuA = tunitA.split(' ')[0]
Note: See TracChangeset for help on using the changeset viewer.