Changeset 282 in lmdz_wrf for trunk/tools/nc_var_tools.py


Ignore:
Timestamp:
Feb 25, 2015, 2:29:59 PM (10 years ago)
Author:
lfita
Message:

Working version for a 3D variable... now 4D

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r281 r282  
    1037110371    trajvals = np.zeros((Ttraj,3), dtype=np.float)
    1037210372
     10373    it = 0
     10374    iline = 0
    1037310375    for line in trajobj:
    1037410376
     
    1049510497                cyrangeslice2D.append([gtrajvals[it,2]-Nrad, gtrajvals[it,2]+Nrad + 1])
    1049610498                cxrangeslice2D.append([gtrajvals[it,1]-Nrad, gtrajvals[it,1]+Nrad + 1])
    10497 
    10498         iline = iline + 1
     10499            it = it + 1
     10500            iline = iline + 1
    1049910501
    1050010502    trajobj.close()
    10501 
    1050210503# Creation of the netCDF file
    1050310504##
     
    1078310784            rstatvarvals = np.ones(tuple([Ttraj,6]), dtype=np.float)
    1078410785
    10785             for it in range(dimt):
     10786            for it0 in range(Ttraj):
     10787                it = Tbeg + it0
     10788
    1078610789                slicev = []
    1078710790                slice2D = []
     
    1079510798                  or gtrajvals[it,1]-box2 < 0 or gtrajvals[it,1]+box2 + 1 > dimx + 1:
    1079610799# 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]))
     10800                    slicev.append(slice(yrangeslice[it][0],yrangeslice[it][1]))
     10801                    slicev.append(slice(xrangeslice[it][0],xrangeslice[it][1]))
     10802
     10803                    slicevnoT.append(slice(yrangeslice[it][0],yrangeslice[it][1]))
     10804                    slicevnoT.append(slice(xrangeslice[it][0],xrangeslice[it][1]))
     10805
     10806                    slice2D.append(slice(0,yrangeslice[it][1]-yrangeslice[it][0]))
     10807                    slice2D.append(slice(0,xrangeslice[it][1]-xrangeslice[it][0]))
    1080510808
    1080610809                    rvarvalst = np.ones((Nrad*2+1, Nrad*2+1),dtype=np.float)*fillValue
    1080710810
    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
    1081110811                    varvalst[tuple(slice2D)] = varobj[tuple(slicev)]
    1081210812                    varvals[it,:,:] = varvalst
     
    1084110841                      1))
    1084210842
    10843                     print 'Lluis: shapes obj:',varobj.shape,'slice:',slicev
    1084410843                    varvalst = varobj[tuple(slicev)]
    1084510844# box values
     
    1086710866                if gtrajvals[it,2]-Nrad < 0 or gtrajvals[it,2]+Nrad + 1 > dimy + 1   \
    1086810867                  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]))
     10868                    cslicev.append(slice(cyrangeslice[it][0],cyrangeslice[it][1]))
     10869                    cslicev.append(slice(cxrangeslice[it][0],cxrangeslice[it][1]))
     10870
     10871                    cslicevnoT.append(slice(cyrangeslice[it][0],cyrangeslice[it][1]))
     10872                    cslicevnoT.append(slice(cxrangeslice[it][0],cxrangeslice[it][1]))
     10873
     10874                    cslice2D.append(slice(0,cyrangeslice[it][1]-cyrangeslice[it][0]))
     10875                    cslice2D.append(slice(0,cxrangeslice[it][1]-cxrangeslice[it][0]))
    1087710876
    1087810877                    rvarvalst = np.ones((Nrad*2+1,Nrad*2+1),dtype=np.float)*fillValue
     
    1091010909                    rvarvalst = np.where(cdist > np.float(Nrad),fillValue,rvarvalst)
    1091110910
    10912 
    10913                     print 'Lluis shapes: rvarvals:',rvarvals[it,:,:].shape,'rvarvalst:',rvarvalst.shape
    1091410911                    rvarvals[it,:,:] = rvarvalst
    1091510912
     
    1099610993                ist = ist + 1
    1099710994
    10998         if not objofile.has_key('trlon') and Nvardims == 3:
     10995        if not objofile.variables.has_key('trlon') and Nvardims == 3:
    1099910996# var dimensions
    1100010997            newvar = objofile.createVariable('trlon', 'f8', ('time'))
Note: See TracChangeset for help on using the changeset viewer.