Changeset 801 in lmdz_wrf


Ignore:
Timestamp:
Jun 2, 2016, 10:33:06 AM (9 years ago)
Author:
lfita
Message:

Fixing 'draw_lines_time'
Fixing 'plot_lines_time'
Fixing 'CFtimes_plot' for 'yr'

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/drawing.py

    r792 r801  
    19511951        pointsizes = [np.float(pointsizes0)]
    19521952
     1953    timename = timevals.split('|')[0]
     1954    timeunit = timevals.split('|')[1].replace('!',' ')
     1955    timekind = timevals.split('|')[2]
     1956    timefmt = timevals.split('|')[3]
     1957
    19531958# Getting values
    19541959##
     
    20122017
    20132018# Getting period
     2019        if ifn > 0:
     2020# Referring all times to the same reference time!
     2021            reftvals = drw.coincident_CFtimes(vdobj[:], timeunit, vdobj.units)
     2022        else:
     2023            reftvals = vdobj[:]
     2024
    20142025        dimt = len(vdobj[:])
    20152026
    20162027        if period == '-1':
    20172028            varvalues.append(vvobj[:])
    2018             dimvalues.append(vdobj[:])
    2019             mindvals = np.min(vdobj[:])
    2020             maxdvals = np.max(vdobj[:])
     2029            dimvalues.append(reftvals)
     2030            mindvals = np.min(reftvals)
     2031            maxdvals = np.max(reftvals)
    20212032        else:
    20222033            ibeg=-1
     
    20262037
    20272038            for it in range(dimt-1):
    2028                 if vdobj[it] <= tbeg and vdobj[it+1] > tbeg : ibeg = it
    2029                 if vdobj[it] <= tend and vdobj[it+1] > tend: iend = it + 1
     2039                if reftvals[it] <= tbeg and reftvals[it+1] > tbeg: ibeg = it
     2040                if reftvals[it] <= tend and reftvals[it+1] > tend: iend = it + 1
    20302041                if ibeg != -1 and iend != -1: break
    20312042
    20322043            if ibeg == -1 and iend == -1:
    2033                 print errormsg
     2044                print warnmsg
    20342045                print '  ' + fname + ': Period:',tbeg,',',tend,'not found!!'
    20352046                print '    ibeg:',ibeg,'iend:',iend
    2036                 print '    period in file:',np.min(vdobj[:]), np.max(vdobj[:])
    2037                 quit(-1)
     2047                print '    period in file:',np.min(reftvals), np.max(reftvals)
     2048                print '    getting all the period in file !!!'
     2049                ibeg = 0
     2050                iend = dimt
    20382051            elif iend == -1:
    20392052                iend = dimt
     
    20422055                print '    getting last available time instead'
    20432056                print '    ibeg:',ibeg,'iend:',iend
    2044                 print '    period in file:',np.min(vdobj[:]), np.max(vdobj[:])
     2057                print '    period in file:',np.min(reftvals), np.max(reftvals)
    20452058            elif ibeg == -1:
    20462059                ibeg = 0
     
    20502063                print '    getting first available time instead'
    20512064                print '    ibeg:',ibeg,'iend:',iend
    2052                 print '    period in file:',np.min(vdobj[:]), np.max(vdobj[:])
     2065                print '    period in file:',np.min(reftvals), np.max(reftvals)
    20532066
    20542067            varvalues.append(vvobj[ibeg:iend])
    2055             dimvalues.append(vdobj[ibeg:iend])
    2056             mindvals = np.min(vdobj[ibeg:iend])
    2057             maxdvals = np.max(vdobj[ibeg:iend])
     2068            dimvalues.append(reftvals[ibeg:iend])
     2069            mindvals = np.min(reftvals[ibeg:iend])
     2070            maxdvals = np.max(reftvals[ibeg:iend])
    20582071
    20592072            dimt = iend - ibeg
     
    20612074        if mindvals < mintval: mintval = mindvals
    20622075        if maxdvals > maxtval: maxtval = maxdvals
     2076#        print '  ' + fname + ": file '" + filen + "' period:", ibeg, '->', iend,     \
     2077#            reftvals[ibeg], '->', reftvals[np.min([iend,dimt-1])], timeunit
    20632078
    20642079        if ifn == 0:
     
    20702085
    20712086# Times
    2072     timename = timevals.split('|')[0]
    2073     timeunit = timevals.split('|')[1].replace('!',' ')
    2074     timekind = timevals.split('|')[2]
    2075     timefmt = timevals.split('|')[3]
    20762087
    20772088    dtvals = (maxtval - mintval)/dimt
    2078     tvals = np.arange(mintval, maxtval, dtvals/2.)
     2089#    dti = mintval-dtvals/2.
     2090#    dte = maxtval+dtvals/2.
     2091    dti = mintval
     2092    dte = maxtval
     2093    tvals = np.arange(dti, dte, dtvals)
     2094
     2095    dtiS = drw.datetimeStr_conversion(str(dti) + ',' + timeunit, 'cfTime',           \
     2096      'Y/m/d H-M-S')
     2097    dteS = drw.datetimeStr_conversion(str(dte) + ',' + timeunit, 'cfTime',           \
     2098      'Y/m/d H-M-S')
     2099
     2100    print '  ' + fname + ': plotting from: ' + dtiS + ' to ' + dteS
    20792101
    20802102    timepos, timelabels = drw.CFtimes_plot(tvals, timeunit, timekind, timefmt)
     2103
     2104#    print 'Lluis min/max tval +/- dtval/2:', mintval-dtvals/2., maxtval+dtvals/2.,'dt:', len(tvals)
     2105#    for it in range(len(timepos)):
     2106#        print timepos[it], timelabels[it]
    20812107
    20822108    if leglabels != 'None':
  • trunk/tools/drawing_tools.py

    r798 r801  
    392392        else:
    393393            refdate = datetimeStr_datetime( yrref + '-' + monref + '-' + dayref +    \
    394               + '_00:00:00')
     394              '_00:00:00')
    395395
    396396        if tunits == 'weeks':
     
    19641964        if trefu == 'l': timev = timev - secs0001_1901*1000.
    19651965 
    1966     if refdate.year < 1901:
    1967         print warnmsg
    1968         print '  ' + fname + ': changing reference date: ',refdate,                  \
    1969           'to 1901-01-01_00:00:00 !!!'
    1970         diffrefs = dt.datetime(1901,1,1,0,0,0) - refdate
    1971         if gen.searchInlist(dir(diffrefs), 'total_seconds'):
    1972             secsref_1901 = diffrefs.total_seconds()
    1973         else:
    1974             secsref_1901 = diffrefs.days()*3600*24. + diffrefs.seconds()*1.
    1975         refdate = datetimeStr_datetime('1901-01-01_00:00:00')
    1976         print 'time 0 :', timev[0]
    1977         if trefu == 'w': timev = timev - secsref_1901/(7.*24.*3600.)
    1978         if trefu == 'd': timev = timev - secsref_1901/(24.*3600.)
    1979         if trefu == 'h': timev = timev - secsref_1901/(3600.)
    1980         if trefu == 'm': timev = timev - secsref_1901/(60.)
    1981         if trefu == 's': timev = timev - secsref_1901
    1982         if trefu == 'l': timev = timev - secsref_1901*1000.
    1983         print 'time 0 after:', timev[0]
     1966#    if refdate.year < 1901:
     1967#        print warnmsg
     1968#        print '  ' + fname + ': changing reference date: ',refdate,                  \
     1969#          'to 1901-01-01_00:00:00 !!!'
     1970#        diffrefs = dt.datetime(1901,1,1,0,0,0) - refdate
     1971#        if gen.searchInlist(dir(diffrefs), 'total_seconds'):
     1972#            secsref_1901 = diffrefs.total_seconds()
     1973#        else:
     1974#            secsref_1901 = diffrefs.days()*3600*24. + diffrefs.seconds()*1.
     1975#        refdate = datetimeStr_datetime('1901-01-01_00:00:00')
     1976#        print 'time 0 :', timev[0]
     1977#        if trefu == 'w': timev = timev - secsref_1901/(7.*24.*3600.)
     1978#        if trefu == 'd': timev = timev - secsref_1901/(24.*3600.)
     1979#        if trefu == 'h': timev = timev - secsref_1901/(3600.)
     1980#        if trefu == 'm': timev = timev - secsref_1901/(60.)
     1981#        if trefu == 's': timev = timev - secsref_1901
     1982#        if trefu == 'l': timev = timev - secsref_1901*1000.
     1983#        print 'time 0 after:', timev[0]
    19841984
    19851985    firstT = timev[0]
     
    20612061            ti = firstTvec[0]
    20622062            tf = lastTvec[0]
    2063             yeari = firstTvec[0]
     2063            year = firstTvec[0]
    20642064
    20652065            TOTsteps = int(TOTdtsecs/(Nunits*31*secsDay)) + 1
    20662066
     2067            if np.sum(firstTvec[1:5]) > 0:
     2068                firstTdt = dt.datetime(year, 1, 1, 0, 0, 0)
     2069                datev = dt.datetime(year, 1, 1, 0, 0, 0)
     2070
    20672071            datev = firstTdt
    2068             while datev < lastTdt:
     2072            timeout.append(datev)
     2073            yr = datev.year
     2074            while yr + Nunits <= tf :
    20692075                yr = datev.year + Nunits
    20702076                mon = datev.month
Note: See TracChangeset for help on using the changeset viewer.