Changeset 1354 in lmdz_wrf
- Timestamp:
- Nov 25, 2016, 6:24:18 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r1353 r1354 4931 4931 'newlatdim]|[oldlonname,oldlatname]|[oldlondim,oldlatdim]' 4932 4932 4933 check_arguments(fname,values,expectargs,'|')4933 gen.check_arguments(fname,values,expectargs,'|') 4934 4934 4935 4935 newprojectionfile = values.split('|')[0] … … 4944 4944 ofile = 'remapnn_allvars.nc' 4945 4945 4946 filexist(filename, errormsg, 'old file')4947 filexist(newprojectionfile, errormsg, 'new file')4946 gen.filexist(filename, errormsg, 'old file') 4947 gen.filexist(newprojectionfile, errormsg, 'new file') 4948 4948 4949 4949 oldlon=oldlonlatname.split(',')[0] … … 4961 4961 varinfile(newncfile, newprojectionfile, errormsg, 'new', newlat) 4962 4962 4963 oldlon2d, oldlat2d = lonlat2D(oldncfile.variables[oldlon],\4963 oldlon2d, oldlat2d = gen.lonlat2D(oldncfile.variables[oldlon], \ 4964 4964 oldncfile.variables[oldlat]) 4965 newlon2d, newlat2d = lonlat2D(newncfile.variables[newlon],\4965 newlon2d, newlat2d = gen.lonlat2D(newncfile.variables[newlon], \ 4966 4966 newncfile.variables[newlat]) 4967 4967 … … 4991 4991 (newlat2d[jnew, inew] - oldlat2d10)**2.) 4992 4992 mindist = np.min(dist) 4993 minydist10, minxdist10 = index_mat(dist,mindist)4993 minydist10, minxdist10 = gen.index_mat(dist,mindist) 4994 4994 firstmappairs[:,jnew,inew] = [int(dy10*(1+minydist10)), \ 4995 4995 int(dx10*(1+minxdist10))] … … 16391 16391 varn + "' !!" 16392 16392 quit(-1) 16393 print ' ' + fname + ": re-projecting '" + varn + "' ..."16394 16393 ovarin = inf.variables[varn] 16395 16394 if flipy: … … 16408 16407 varint = varin.transpose() 16409 16408 16409 # Variable's dimensions and their related variables 16410 vdims = list(ovarin.dimensions) 16411 for dimn in vdims: 16412 dimsfile = onewnc.dimensions.keys() 16413 if not gen.searchInlist(dimsfile, dimn): 16414 odimn = inf.dimensions[dimn] 16415 if odimn.isunlimited(): 16416 newdim = onewnc.createDimension(dimn, None) 16417 else: 16418 newdim = onewnc.createDimension(dimn, len(odimn)) 16419 if not vardimns.has_key(dimn): 16420 print errormsg 16421 print ' ' + fname + ": dimension '" + dimn + "' does not have "+\ 16422 'assigned any variable !!' 16423 print ' assigned pairs (via [dimvars]) _______' 16424 gen.printing_dictionary(vardimns) 16425 quit(-1) 16426 else: 16427 add_vars(inf,onewnc,[vardimns[dimn]]) 16428 16429 # Interpolated variable 16430 vardims = list(ovarin.dimensions) 16431 newvardims = gen.replace_list(vardims,dimvarns[inlonn],'lon') 16432 newvardims = gen.replace_list(newvardims,dimvarns[inlatn],'lat') 16433 varattrs = ovarin.ncattrs() 16434 if gen.searchInlist(varattrs,'_FillValue'): 16435 fillv = ovarin.getncattr('_FillValue') 16436 varout = np.where(varout == fillv, gen.fillValueF, varout) 16437 varattrs.remove('_FillValue') 16438 newvar = onewnc.createVariable(varn, 'f4', tuple(newvardims), \ 16439 fill_value=gen.fillValueF) 16440 onewnc.sync() 16441 16410 16442 # Do we have masked values? 16411 16443 if type(varin) == type(ma.asarray([1,1])): 16412 16444 inmask = np.where(varin.mask, 0, 1) 16445 print ' ' + fname + ": re-projecting masked '" + varn + "'", \ 16446 varin.shape, " ..." 16413 16447 else: 16414 16448 inmask = np.ones((varin.shape), dtype=int) 16449 print ' ' + fname + ": re-projecting '" +varn+ "'", varin.shape," ..." 16415 16450 inmaskt = inmask.transpose() 16416 16451 … … 16442 16477 varout = varoutt.transpose() 16443 16478 varout = np.where(varout >= 0.9*gen.fillValueF, gen.fillValueF, varout) 16444 16445 # Variable's dimensions and their related variables16446 vdims = list(ovarin.dimensions)16447 for dimn in vdims:16448 dimsfile = onewnc.dimensions.keys()16449 if not gen.searchInlist(dimsfile, dimn):16450 odimn = inf.dimensions[dimn]16451 if odimn.isunlimited():16452 newdim = onewnc.createDimension(dimn, None)16453 else:16454 newdim = onewnc.createDimension(dimn, len(odimn))16455 if not vardimns.has_key(dimn):16456 print errormsg16457 print ' ' + fname + ": dimension '" + dimn + "' does not have "+\16458 'assigned any variable !!'16459 print ' assigned pairs (via [dimvars]) _______'16460 gen.printing_dictionary(vardimns)16461 quit(-1)16462 else:16463 add_vars(inf,onewnc,[vardimns[dimn]])16464 16465 # Interpolated variable16466 vardims = list(ovarin.dimensions)16467 newvardims = gen.replace_list(vardims,dimvarns[inlonn],'lon')16468 newvardims = gen.replace_list(newvardims,dimvarns[inlatn],'lat')16469 varattrs = ovarin.ncattrs()16470 if gen.searchInlist(varattrs,'_FillValue'):16471 fillv = ovarin.getncattr('_FillValue')16472 varout = np.where(varout == fillv, gen.fillValueF, varout)16473 varattrs.remove('_FillValue')16474 newvar = onewnc.createVariable(varn, 'f4', tuple(newvardims), \16475 fill_value=gen.fillValueF)16476 16479 16477 16480 newvar[:] = varout[:]
Note: See TracChangeset
for help on using the changeset viewer.