Changeset 1522 in lmdz_wrf


Ignore:
Timestamp:
Apr 12, 2017, 2:10:27 AM (8 years ago)
Author:
lfita
Message:

Fixing wrong selection of range values! in `DataSetSection_multivars'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r1517 r1522  
    1412214122            valsdims = ovar.dimensions
    1412314123            varns.append(vn)
    14124             begvs[ivar] = gen.retype(val.split(',')[1], ovar.dtype)
    14125             endvs[ivar] = gen.retype(val.split(',')[2], ovar.dtype)
    14126             intvs[ivar] = -1
     14124            begvs = gen.retype(val.split(',')[1], ovar.dtype)
     14125            endvs = gen.retype(val.split(',')[2], ovar.dtype)
     14126            intvs = -1
    1412714127            fbegvs[ivar] = np.float(val.split(',')[1])
    1412814128            fendvs[ivar] = np.float(val.split(',')[2])
    1412914129            fintvs[ivar] = np.float(val.split(',')[3])
    1413014130
    14131             if endvs[ivar] == -1: endvs[ivar] = np.max(vals)
    14132             maskinf = ma.masked_less(vals, begvs[ivar])
    14133             masksup = ma.masked_greater(vals, endvs[ivar])
     14131            if endvs == -1: endvs = np.max(vals)
     14132            maskinf = ma.masked_less(vals, begvs)
     14133            masksup = ma.masked_greater(vals, endvs)
     14134
     14135            # For all masked or not, ma.masked returns a single value...
     14136            if len(maskinf.mask.flatten()) == 1:
     14137                if maskinf.mask:
     14138                    maskinfv = np.ones((vals.shape), dtype=bool)
     14139                else:
     14140                    maskinfv = np.zeros((vals.shape), dtype=bool)
     14141            else:
     14142                maskinfv = maskinf.mask
     14143
     14144            if len(masksup.mask.flatten()) == 1:
     14145                if masksup.mask:
     14146                    masksupv = np.ones((vals.shape), dtype=bool)
     14147                else:
     14148                    masksupv = np.zeros((vals.shape), dtype=bool)
     14149            else:
     14150                masksupv = masksup.mask
     14151
     14152#            if  and len(masksup.mask.flatten()) == 1:
     14153#                    if not maskinf.mask*maskinf.mask:
     14154#                        finalmask = np.ones()
     14155#            else:
     14156#                finalmask = maskinf.mask + masksup.mask
    1413414157
    1413514158            #if intvs[ivar] != -1:
     
    1413714160            #    print '  ' + fname + ': non-consecutive slices not ready!!'
    1413814161            #    quit(-1)
    14139             finalmask = maskinf.mask + masksup.mask
    1414014162            # Indices of the found values
     14163            finalmask = maskinfv + masksupv
     14164            # Single value
     14165            if val.split(',')[3] == '0':
     14166                print infmsg
     14167                print '  ' + fname + ": single value for variable '" + vn + "' =",   \
     14168                  begvs
     14169                finalmask = np.where(vals == begvs, False, finalmask)
     14170
    1414114171            iDistmindist = gen.multi_index_mat(finalmask, False)
    1414214172
    1414314173            print '    found:', len(iDistmindist),"values in variable '" + vn +      \
    14144               "' as; beginning:", begvs[ivar], 'ending:', endvs[ivar], 'interval:',  \
    14145               intvs[ivar]
     14174              "' as; beginning:", begvs, 'ending:', endvs, 'interval:', intvs
    1414614175            iid = 0
    1414714176            for dimn in valsdims:
     
    1416714196                    dimvals[dimn] = dvvs
    1416814197
    14169             if intvs[ivar] != -1:
    14170                 slicevalS = slicevalS + varns[ivar] + ' (' + str(fbegvs[ivar]) + ',' +   \
    14171                   str(fendvs[ivar]) + ',' + str(fintvs[ivar]) + '); '
     14198            if intvs != -1:
     14199                slicevalS = slicevalS + varns[ivar] + ' (' + str(begvs) + ',' +          \
     14200                  str(fendvs) + ',' + str(fintvs) + '); '
    1417214201            else:
    14173                 slicevalS = slicevalS + varns[ivar] + ' (' + str(fbegvs[ivar]) + ',' +   \
    14174                   str(fendvs[ivar]) + ',1); '
     14202                slicevalS = slicevalS + varns[ivar] + ' (' + str(fbegvs) + ',' +   \
     14203                  str(fendvs) + ',1); '
    1417514204
    1417614205    print infmsg
Note: See TracChangeset for help on using the changeset viewer.