Changeset 529 in lmdz_wrf for trunk/tools


Ignore:
Timestamp:
Jun 22, 2015, 5:08:08 PM (9 years ago)
Author:
lfita
Message:

Fixing minor things problem on `betweentim' 0 values at it=0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/validation_sim.py

    r528 r529  
    11451145
    11461146
    1147 def getting_ValidationValues(okind, dimt, ds, trjpos, ovs, ovo, tvalues, oFill, Ng, kvals):
     1147def getting_ValidationValues(okind, dt, ds, trjpos, ovs, ovo, tvalues, oFill, Ng, kvals):
    11481148    """ Function to get the values to validate accroding to the type of observation
    11491149      okind= observational kind
    1150       dimt= initial number of values to retrieve
     1150      dt= initial number of values to retrieve
    11511151      ds= dictionary with the names of the dimensions (sim, obs)
    11521152      trjpos= positions of the multi-stations (t, Y, X) or trajectory ([Z], Y, X)
     
    11711171
    11721172    if kvals == 'instantaneous':
    1173         dimtf = dimt
     1173        dtf = dt
    11741174    elif kvals == 'tbackwardSmean':
    11751175        print '  ' + fname + ':',kvals,'!!'
    11761176        uniqt = np.unique(tvalues[:,3])
    1177         dimtf = len(uniqt)
    1178         print '    initially we got',dimt,'values which will become',dimtf
     1177        dtf = len(uniqt)
     1178        print '    initially we got',dt,'values which will become',dtf
    11791179        postf = {}
    1180         for it in range(dimtf):
     1180        for it in range(dtf):
    11811181            if it == 0:
    11821182                postf[uniqt[it]] = [0,0]
     
    11921192        print '  ' + fname + ':',kvals,'!!'
    11931193        uniqt = np.unique(tvalues[:,2])
    1194         dimtf = len(uniqt)
    1195         print '     initially we got',dimt,'values which will become',dimtf
     1194        dtf = len(uniqt)
     1195        print '     initially we got',dt,'values which will become',dtf
    11961196        print '     ==== NOT READY === '
    11971197        quit(-1)
     
    12031203# Simulated values spatially around
    12041204    if ds.has_key('Z'):
    1205         soSvalues = np.zeros((dimt, Ng*2+1, Ng*2+1, Ng*2+1), dtype = np.float)
     1205        soSvalues = np.zeros((dt, Ng*2+1, Ng*2+1, Ng*2+1), dtype = np.float)
    12061206        if okind == 'trajectory':
    1207             trjs = np.zeros((4,dimt), dtype=int)
     1207            trjs = np.zeros((4,dt), dtype=int)
    12081208        else:
    12091209            trjs = None
    12101210    else:
    1211         soSvalues = np.zeros((dimt, Ng*2+1, Ng*2+1), dtype = np.float)
     1211        soSvalues = np.zeros((dt, Ng*2+1, Ng*2+1), dtype = np.float)
    12121212        if okind == 'trajectory':
    1213             trjs = np.zeros((3,dimt), dtype=int)
     1213            trjs = np.zeros((3,dt), dtype=int)
    12141214        else:
    12151215            trjs = None
    12161216
    12171217    if okind == 'single-station':
    1218         soTtvalues = np.zeros((dimt,2), dtype=np.float)
     1218        soTtvalues = np.zeros((dt,2), dtype=np.float)
    12191219    else:
    12201220        None
    12211221
    12221222    if okind == 'multi-points':
    1223         for it in range(dimt):
     1223        for it in range(dt):
    12241224            slicev = ds['X'][0] + ':' + str(trjpos[2,it]) + '|' +  ds['Y'][0] +      \
    12251225              ':' + str(trjpos[1,it]) + '|' + ds['T'][0]+ ':' + str(tvalues[it][0])
     
    12341234
    12351235    elif okind == 'single-station':
    1236         for it in range(dimt):
     1236        for it in range(dt):
    12371237            ito = int(tvalues[it,1])
    12381238            if valdimsim.has_key('X') and valdimsim.has_key('Y'):
     
    12621262                itoi = 0
    12631263                itof = int(tvalues[it,1]) / 2
    1264             elif it == dimt-1:
     1264            elif it == dt-1:
    12651265                itoi = int( (ito + int(tvalues[it-1,1])) / 2)
    12661266                itof = int(tvalues[it,1])
     
    12761276    elif okind == 'trajectory':
    12771277        if ds.has_key('Z'):
    1278             for it in range(dimt):
     1278            for it in range(dt):
    12791279                ito = int(tvalues[it,1])
    12801280                if notfound[ito] == 0:
     
    13181318# 2D trajectory
    13191319        else:
    1320             for it in range(dimt):
     1320            for it in range(dt):
    13211321                if notfound[it] == 0:
    13221322                    ito = tvalues[it,1]
     
    13501350        fsovalues = []
    13511351        if ds.has_key('Z'):
    1352             fsoSvalues = np.zeros((dimtf, Ng*2+1, Ng*2+1, Ng*2+1), dtype = np.float)
     1352            fsoSvalues = np.zeros((dtf, Ng*2+1, Ng*2+1, Ng*2+1), dtype = np.float)
    13531353            if okind == 'trajectory':
    1354                 ftrjs = np.zeros((4,dimtf), dtype=int)
     1354                ftrjs = np.zeros((4,dtf), dtype=int)
    13551355            else:
    13561356                ftrjs = None
    13571357        else:
    1358             fsoSvalues = np.zeros((dimtf, Ng*2+1, Ng*2+1), dtype = np.float)
     1358            fsoSvalues = np.zeros((dtf, Ng*2+1, Ng*2+1), dtype = np.float)
    13591359            if okind == 'trajectory':
    1360                 ftrjs = np.zeros((3,dimtf), dtype=int)
     1360                ftrjs = np.zeros((3,dtf), dtype=int)
    13611361            else:
    13621362                ftrjs = None
    13631363
    13641364        if okind == 'single-station':
    1365             fsoTtvalues = np.zeros((dimtf,2), dtype=np.float)
     1365            fsoTtvalues = np.ones((dtf,2), dtype=np.float)*fillValueF
    13661366        else:
    13671367            None
    13681368
    1369         for it in range(1,dimtf):
     1369        for it in range(1,dtf):
    13701370            tv = uniqt[it]
    13711371            intv = postf[tv]
     
    14051405        print '  ' + fname + ':',kvals,'!!'
    14061406        uniqt = np.unique(tvalues[:,2])
    1407         dimtf = len(uniqt)
    1408         print '     initially we got',dimt,'values which will become',dimtf
     1407        dtf = len(uniqt)
     1408        print '     initially we got',dt,'values which will become',dtf
    14091409
    14101410    return
     
    19401940
    19411941    for kst in range(Nstsim):
     1942        simobsvalues = []
     1943       
    19421944        timedn = prestdescsim[kst] + 'time'
     1945        timeobsdn = prestdescsim[kst] + 'obstime'
    19431946        print '    ' + prestdescsim[kst] + ' ...'
    19441947
     
    19901993            if ivar == 0:
    19911994                vname = prestdescsim[kst] + 'time'
    1992                 newvar = onewnc.createVariable(vname,'f8', (timedn))
     1995                newvar = onewnc.createVariable(vname,'f8', (timedn),                 \
     1996                  fill_value = fillValueF)
    19931997                basicvardef(newvar, vname, 'simulation time between observations',   \
    1994                   obstunits )
     1998                  obstunits)
    19951999                set_attribute(newvar, 'calendar', 'standard')
    19962000                set_attribute(newvar, 'bounds', 'time_bnds')
     
    21062110# Statistics around sim values
    21072111        aroundstats = np.zeros((5,dimt), dtype=np.float)
    2108         print 'Lluis dimt:',dimt,simobsSvalues.shape
    21092112        for it in range(dimt):
    21102113            aroundstats[0,it] = np.min(simobsSvalues[it,])
     
    21232126
    21242127# obs Values to netCDF
    2125         newvar = onewnc.createVariable(valvars[ivar][1] + '_' + stdescsim[kst] +     \
     2128        if stdescsim[kst] != 'E':
     2129            newvar = onewnc.createVariable(valvars[ivar][1] + '_' + stdescsim[kst] + \
     2130          'obs', 'f', (timeobsdn), fill_value=fillValueF)
     2131        else:
     2132            newvar = onewnc.createVariable(valvars[ivar][1] + '_' + stdescsim[kst] + \
    21262133          'obs', 'f', (timedn), fill_value=fillValueF)
    2127         descvar = prestdescsim[kst] + ' time simulated: ' + valvars[ivar][1]
     2134       
     2135        descvar = prestdescsim[kst] + ' time observed: ' + valvars[ivar][1]
    21282136        basicvardef(newvar, valvars[ivar][1], descvar, ovobs.getncattr('units'))
    21292137        newvar[:] = arrayvals[:,1]
     
    21502158
    21512159
    2152 # around sim Statistics between
     2160# around sim Statistics
    21532161        if not searchInlist(onewnc.variables,prestdescsim[kst] + valvars[ivar][0] +  \
    21542162          'staround'):
Note: See TracChangeset for help on using the changeset viewer.