Changeset 281 in lmdz_wrf


Ignore:
Timestamp:
Feb 25, 2015, 1:11:11 PM (10 years ago)
Author:
lfita
Message:

Fixing slice issue

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r280 r281  
    1031110311            varns = objfile.variables
    1031210312        else:
    10313             varns = varn
     10313            varns = [varn]
    1031410314
    1031510315    if len(lonobj.shape) == 3:
     
    1045310453
    1045410454# circle values
    10455             cslicev.append(gtrajvals[it,0])
    1045610455            circdist = radius_dist(dimy, dimx, gtrajvals[it,2], gtrajvals[it,1])
    1045710456
     
    1049710496                cxrangeslice2D.append([gtrajvals[it,1]-Nrad, gtrajvals[it,1]+Nrad + 1])
    1049810497
    10499 
    1050010498        iline = iline + 1
    1050110499
    1050210500    trajobj.close()
    10503 
    10504     print 'Lluis _________'
    10505     print yrangeslice
    10506 
    10507     quit()
    1050810501
    1050910502# Creation of the netCDF file
     
    1052610519##
    1052710520    ivar = 0
     10521    print 'Lluis varns:',varns
     10522
    1052810523    for vn in varns:
    1052910524        varobj = objfile.variables[vn]
    1053010525        Nvardims = len(varobj.shape)
     10526
     10527        print '  ' + fname + ": getting '" + vn + "' ... .. ."
    1053110528
    1053210529        slicev = []
     
    1057510572
    1057610573            for it in range(dimt):
    10577 # box values
    10578                 print it,'/',dimt, yrangeslice
    10579                 quit()
    10580                 slicev.append(slice(0,dimz))
    10581                 slicev.append(slice(yrangeslice[it]))
    10582                 slicev.append(slice(xrangeslice[it]))
    10583 
    10584                 slicevnoT.append(slice(0,dimz))
    10585                 slicevnoT.append(slice(yrangeslice[it]))
    10586                 slicevnoT.append(slice(xrangeslice[it]))
    10587 
    10588                 slice2D.append(slice(0,dimz))
    10589                 slice2D.append(slice(yrangeslice2D[it]))
    10590                 slice2D.append(slice(xrangeslice2D[it]))
    1059110574
    1059210575                if gtrajvals[it,2]-box2 < 0 or gtrajvals[it,2]+box2 + 1 > dimy + 1   \
    1059310576                  or gtrajvals[it,1]-box2 < 0 or gtrajvals[it,1]+box2 + 1 > dimx + 1:
    1059410577
    10595                     rvarvalst = np.ones((dimz,Nrad*2+1,Nrad*2+1),dtype=np.float)*    \
     10578                    varvalst = np.ones((dimz,Nrad*2+1,Nrad*2+1),dtype=np.float)*    \
    1059610579                      fillValue
     10580
     10581# box values
     10582                    slicev.append(slice(0,dimz))
     10583                    slicev.append(slice(yrangeslice[it]))
     10584                    slicev.append(slice(xrangeslice[it]))
     10585
     10586                    slicevnoT.append(slice(0,dimz))
     10587                    slicevnoT.append(slice(yrangeslice[it]))
     10588                    slicevnoT.append(slice(xrangeslice[it]))
     10589
     10590                    slice2D.append(slice(0,dimz))
     10591                    slice2D.append(slice(yrangeslice2D[it]))
     10592                    slice2D.append(slice(xrangeslice2D[it]))
    1059710593
    1059810594                    varvalst[tuple(slice2D)] = varobj[tuple(slicev)]
     
    1062210618                    slice2D.append(slice(gtrajvals[it,1]-box2, gtrajvals[it,1]+box2 +\
    1062310619                      1))
    10624 
     10620                    print 'Lluis',it,'shapes varvalst:',varvals.shape,'varobj:',slicev
    1062510621                    varvalst = varobj[tuple(slicev)]
    1062610622# box values
     
    1078810784
    1078910785            for it in range(dimt):
    10790 # box values
    10791                 slicev.append(slice(yrangeslice[it]))
    10792                 slicev.append(slice(xrangeslice[it]))
    10793 
    10794                 slicevnoT.append(slice(yrangeslice[it]))
    10795                 slicevnoT.append(slice(xrangeslice[it]))
    10796 
    10797                 slice2D.append(slice(yrangeslice2D[it]))
    10798                 slice2D.append(slice(xrangeslice2D[it]))
    10799 
     10786                slicev = []
     10787                slice2D = []
     10788                slicevnoT = []
     10789                cslicev = []
     10790                cslice2D = []
     10791                cslicevnoT = []
     10792
     10793                slicev.append(gtrajvals[it,0])
    1080010794                if gtrajvals[it,2]-box2 < 0 or gtrajvals[it,2]+box2 + 1 > dimy + 1   \
    1080110795                  or gtrajvals[it,1]-box2 < 0 or gtrajvals[it,1]+box2 + 1 > dimx + 1:
     10796# box values
     10797                    slicev.append(slice(yrangeslice[0][it],yrangeslice[1][it]))
     10798                    slicev.append(slice(xrangeslice[0][it],xrangeslice[1][it]))
     10799
     10800                    slicevnoT.append(slice(yrangeslice[0][it],yrangeslice[1][it]))
     10801                    slicevnoT.append(slice(xrangeslice[0][it],xrangeslice[1][it]))
     10802
     10803                    slice2D.append(slice(yrangeslice2D[0][it],yrangeslice2D[1][it]))
     10804                    slice2D.append(slice(xrangeslice2D[0][it],xrangeslice2D[1][it]))
    1080210805
    1080310806                    rvarvalst = np.ones((Nrad*2+1, Nrad*2+1),dtype=np.float)*fillValue
    1080410807
     10808                    print it,'Lluis: shapes yrangeslice2D:',yrangeslice2D[it],'xrangeslice:',xrangeslice[it]
     10809                    print it,'Lluis: shapes slice2D:',slice2D,'slicev:',slicev
     10810                    print it,'Lluis: shapes varvalst:',varvalst.shape,'varobj:',varobj.shape
    1080510811                    varvalst[tuple(slice2D)] = varobj[tuple(slicev)]
    1080610812                    varvals[it,:,:] = varvalst
     
    1083510841                      1))
    1083610842
     10843                    print 'Lluis: shapes obj:',varobj.shape,'slice:',slicev
    1083710844                    varvalst = varobj[tuple(slicev)]
    1083810845# box values
     
    1085710864
    1085810865# Circle values
    10859                 cslicev.append(slice(cyrangeslice[it]))
    10860                 cslicev.append(slice(cxrangeslice[it]))
    10861 
    10862                 cslicevnoT.append(slice(cyrangeslice[it]))
    10863                 cslicevnoT.append(slice(cxrangeslice[it]))
    10864 
    10865                 cslice2D.append(slice(cyrangeslice2D[it]))
    10866                 cslice2D.append(slice(cxrangeslice2D[it]))
     10866                cslicev.append(gtrajvals[it,0])
    1086710867                if gtrajvals[it,2]-Nrad < 0 or gtrajvals[it,2]+Nrad + 1 > dimy + 1   \
    1086810868                  or gtrajvals[it,1]-Nrad < 0 or gtrajvals[it,1]+Nrad + 1 > dimx + 1:
     10869                    cslicev.append(slice(cyrangeslice[it]))
     10870                    cslicev.append(slice(cxrangeslice[it]))
     10871
     10872                    cslicevnoT.append(slice(cyrangeslice[it]))
     10873                    cslicevnoT.append(slice(cxrangeslice[it]))
     10874
     10875                    cslice2D.append(slice(cyrangeslice2D[it]))
     10876                    cslice2D.append(slice(cxrangeslice2D[it]))
    1086910877
    1087010878                    rvarvalst = np.ones((Nrad*2+1,Nrad*2+1),dtype=np.float)*fillValue
     
    1088710895
    1088810896                else:
    10889                     slicev.append(slice(gtrajvals[it,2]-Nrad,gtrajvals[it,2]+Nrad+1))
    10890                     slicev.append(slice(gtrajvals[it,1]-Nrad,gtrajvals[it,1]+Nrad+1))
    10891                     slicevnoT.append(slice(gtrajvals[it,2]-Nrad, gtrajvals[it,2]+    \
     10897                    cslicev.append(slice(gtrajvals[it,2]-Nrad,gtrajvals[it,2]+Nrad+1))
     10898                    cslicev.append(slice(gtrajvals[it,1]-Nrad,gtrajvals[it,1]+Nrad+1))
     10899                    cslicevnoT.append(slice(gtrajvals[it,2]-Nrad, gtrajvals[it,2]+    \
    1089210900                      Nrad+1))
    10893                     slicevnoT.append(slice(gtrajvals[it,1]-Nrad, gtrajvals[it,1]+    \
     10901                    cslicevnoT.append(slice(gtrajvals[it,1]-Nrad, gtrajvals[it,1]+    \
    1089410902                      Nrad+1))
    1089510903
    10896                     slice2D.append(slice(gtrajvals[it,2]-Nrad,gtrajvals[it,2]+Nrad+1))
    10897                     slice2D.append(slice(gtrajvals[it,1]-Nrad,gtrajvals[it,1]+Nrad+1))
     10904                    cslice2D.append(slice(gtrajvals[it,2]-Nrad,gtrajvals[it,2]+Nrad+1))
     10905                    cslice2D.append(slice(gtrajvals[it,1]-Nrad,gtrajvals[it,1]+Nrad+1))
    1089810906
    1089910907                    rvarvalst = varobj[tuple(cslicev)]
     
    1090210910                    rvarvalst = np.where(cdist > np.float(Nrad),fillValue,rvarvalst)
    1090310911
     10912
     10913                    print 'Lluis shapes: rvarvals:',rvarvals[it,:,:].shape,'rvarvalst:',rvarvalst.shape
    1090410914                    rvarvals[it,:,:] = rvarvalst
    1090510915
     
    1104411054#  'control/wss.nc', 'wss')
    1104511055# in camelot, /bdd/PCER/workspace/lfita/etudes/FF/50sims
    11046 compute_tevolboxtraj('001/trajectory.dat@0,XLONG,XLAT,ZNU,Times,wrf,3,3',       \
    11047   '001/full_concatenated.nc', 'PSFC')
     11056#compute_tevolboxtraj('001/trajectory.dat@0,XLONG,XLAT,ZNU,Times,wrf,3,3',       \
     11057#  '001/full_concatenated.nc', 'PSFC')
    1104811058
    1104911059def numVector_String(vec,char):
Note: See TracChangeset for help on using the changeset viewer.