Changeset 1107 in lmdz_wrf
- Timestamp:
- Sep 16, 2016, 2:55:39 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r1103 r1107 872 872 elif attrkind == type(np.float64(1.)): 873 873 attrvalue = np.float64(attrval) 874 elif attrkind == type(np.array([1.,2.])): 875 attrvalue = attrval 874 876 else: 875 877 print errormsg … … 6056 6058 latinf = variable_inf(latobj) 6057 6059 6058 lonv = lonobj[:] 6059 latv = latobj[:] 6060 if len(lonobj.shape) <= 2: 6061 lonv = lonobj[:] 6062 latv = latobj[:] 6063 else: 6064 print warnmsg 6065 print ' ' + fname + ': assuming that lon/lat is constant to the first dimension!!' 6066 print ' shape lon:', lonobj.shape, 'lat:', latobj.shape 6067 lonv = lonobj[0,] 6068 latv = latobj[0,] 6060 6069 6061 6070 if varn == 'all': … … 6101 6110 malat = ma.masked_outside(latv,latSW,latNE) 6102 6111 6103 if len(lon v.shape) == 1:6112 if len(lonobj.shape) == 1: 6104 6113 dlonn = loninf.dimns[0] 6105 6114 dlatn = latinf.dimns[0] … … 6109 6118 malonv = ma.array(lonv, mask=malonlat) 6110 6119 malatv = ma.array(latv, mask=malonlat) 6111 elif len(lon v.shape) == 2:6120 elif len(lonobj.shape) == 2: 6112 6121 dlonn = loninf.dimns[1] 6113 6122 dlatn = loninf.dimns[0] … … 6117 6126 malonv = ma.array(lonv, mask=malonlat) 6118 6127 malatv = ma.array(latv, mask=malonlat) 6119 elif len(lonv.shape) == 3: 6120 print warnmsg 6121 print ' ' + fname + ': assuming that lon/lat is constant to the first dimension!!' 6122 print ' shape lon:', lonv.shape, 'lat:', latv.shape 6128 elif len(lonobj.shape) == 3: 6123 6129 dlonn = loninf.dimns[2] 6124 6130 dlatn = loninf.dimns[1] 6125 dimx = lonv.shape[ 2]6126 dimy = lonv.shape[ 1]6131 dimx = lonv.shape[1] 6132 dimy = lonv.shape[0] 6127 6133 malonlat = np.zeros((dimy,dimx), dtype=bool) 6128 6134 malonlat = malon.mask + malat.mask … … 6141 6147 xlat = malat.max() 6142 6148 6143 print ' ' + fname + ': data box: SW', nlon, nlat,'NE:',xlon,xlat 6149 print ' ' + fname + ': data box: SW', nlon, nlat,'NE:',xlon,xlat 6150 print ' ' + fname + ': name of the longitudinal dimension:', dlonn, \ 6151 'latitudinal:', dlatn 6144 6152 6145 6153 ilon = dimx … … 6180 6188 6181 6189 print 'ilon elon ilat elat:', ilon, elon, ilat, elat 6182 # newdimx = elon - ilon + 1 6183 # newdimy = elat - ilat + 1 6184 newdimx = dimx - np.sum(malonv.mask) 6185 newdimy = dimy - np.sum(malatv.mask) 6190 newdimx = elon - ilon + 1 6191 newdimy = elat - ilat + 1 6186 6192 6187 6193 if len(malon.shape) == 1: … … 6240 6246 for dimn in varinf.dimns: 6241 6247 if not gen.searchInlist(newncobj.dimensions, dimn): 6242 newncobj.createDimension(dimn, len(objfile.dimensions[dimn])) 6248 if objfile.dimensions[dimn].isunlimited(): 6249 newncobj.createDimension(dimn, None) 6250 else: 6251 newncobj.createDimension(dimn, len(objfile.dimensions[dimn])) 6243 6252 # Very special case when we have for example a list of stations (which is the case!) 6244 6253 if dimn == dlonn and dimx != dimy: … … 6248 6257 else: 6249 6258 varslice.append(slice(0,len(objfile.dimensions[dimn]))) 6259 print fname + '; Lluis here! dimn', dimn 6250 6260 6251 6261 if varinf.FillValue is not None: … … 6256 6266 6257 6267 if dimx != dimy: 6268 print fname + '; Lluis; varslice:', varslice,'shape newvar:', newvar.shape 6258 6269 newvar[:] = varobj[tuple(varslice)] 6259 6270 else: … … 6288 6299 for atrn in objfile.ncattrs(): 6289 6300 attrv = objfile.getncattr(atrn) 6301 print fname + '; Lluis attrn, attrv, type:', atrn, attrv, type(attrv) 6290 6302 newattr = set_attributek(newncobj, atrn, attrv, type(attrv)) 6291 6303
Note: See TracChangeset
for help on using the changeset viewer.