Changeset 290 in lmdz_wrf


Ignore:
Timestamp:
Feb 25, 2015, 5:24:36 PM (10 years ago)
Author:
lfita
Message:

Fixing to work with multi[ple variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r289 r290  
    1025910259    check_arguments(fname,len(arguments.split(',')),arguments,',',8)
    1026010260
    10261     ofile = 'tevolboxtraj_' + varn + '.nc'
     10261    ofile = 'tevolboxtraj_' + varn.replace(',','-') + '.nc'
    1026210262
    1026310263    trajfile = values.split(',')[0].split('@')[0]
     
    1032510325    timv = timobj[:]
    1032610326
    10327     if not searchInlist(objfile.variables, varn):
    10328         print errormsg
    10329         print '  ' + fname + ": variable name '" + varn + "' is not in file " +     \
    10330           ncfile + '" !!!!!'
    10331         quit(-1)
    1033210327
    1033310328# Selecting accordingly a trajectory
     
    1052210517##
    1052310518    ivar = 0
    10524     print 'Lluis varns:',varns
    1052510519
    1052610520    for vn in varns:
     10521        if not searchInlist(objfile.variables, vn):
     10522            print errormsg
     10523            print '  ' + fname + ": variable name '" + vn + "' is not in file " +    \
     10524              ncfile + '" !!!!!'
     10525            quit(-1)
     10526
    1052710527        varobj = objfile.variables[vn]
    1052810528        Nvardims = len(varobj.shape)
     
    1055610556                    vsname = varzobj.getncattr('standard_name')
    1055710557                else:
    10558                     vsname = variables_values(varn)[1]
     10558                    vsname = variables_values(zn)[1]
    1055910559                if searchInlist(varzobj.ncattrs(),'long_name'):
    1056010560                    vlname = varzobj.getncattr('long_name')
    1056110561                else:
    10562                     vlname = variables_values(varn)[4].replace('|',' ')
     10562                    vlname = variables_values(zn)[4].replace('|',' ')
    1056310563                if searchInlist(varzobj.ncattrs(),'units'):
    1056410564                    vunits = varzobj.getncattr('units')
    1056510565                else:
    10566                     vunits = variables_values(varn)[5].replace('|',' ')
     10566                    vunits = variables_values(zn)[5].replace('|',' ')
    1056710567   
    1056810568                newattr = basicvardef(newvar, vsname, vlname, vunits)
     
    1069710697                    maskedvals2 = maskedvals*maskedvals
    1069810698                    for iz in range(dimz):
    10699                         rtatvarvals[it,:,0] = varvalst[:,box2,box2]
     10699                        rtatvarvals[it,iz,0] = varvalst[iz,box2,box2]
    1070010700                        rtatvarvals[it,iz,1] = np.min(varvalst[iz,:,:])
    1070110701                        rtatvarvals[it,iz,2] = np.max(varvalst[iz,:,:])
     
    1072710727
    1072810728                    rvarvalst = varobj[tuple(cslicev)]
    10729                     cdist = circdist[tuple([it] + cslicevnoThor)]
    1073010729# circle values
    1073110730                    for iz in range(dimz):
     
    1074110740                    for iz in range(dimz):
    1074210741                        rstatvarvals[it,iz,0] = rvarvalst[iz,Nrad,Nrad]
    10743                         rstatvarvals[it,iz,1] = maskedvals.min()
    10744                         rstatvarvals[it,iz,2] = maskedvals.max()
    10745                         rstatvarvals[it,iz,3] = maskedvals.mean()
     10742                        rstatvarvals[it,iz,1] = maskedvals[iz,:,:].min()
     10743                        rstatvarvals[it,iz,2] = maskedvals[iz,:,:].max()
     10744                        rstatvarvals[it,iz,3] = maskedvals[iz,:,:].mean()
    1074610745                        rstatvarvals[it,iz,4] = maskedvals2[iz,:,:].mean()
    1074710746                        rstatvarvals[it,iz,5] = np.sqrt(rstatvarvals[it,iz,4] -      \
     
    1075110750
    1075210751# variable box values
    10753             newvar = objofile.createVariable(varn + 'box', 'f4', ('time','z','y','x'),\
     10752            newvar = objofile.createVariable(vn + 'box', 'f4', ('time','z','y','x'),\
    1075410753              fill_value=fillValue)
    1075510754            if searchInlist(varobj.ncattrs(),'standard_name'):
    1075610755                vsname = varobj.getncattr('standard_name')
    1075710756            else:
    10758                 vsname = variables_values(varn)[1]
     10757                vsname = variables_values(vn)[1]
    1075910758            if searchInlist(varobj.ncattrs(),'long_name'):
    1076010759                vlname = varobj.getncattr('long_name')
    1076110760            else:
    10762                 vlname = variables_values(varn)[4].replace('|',' ')
     10761                vlname = variables_values(vn)[4].replace('|',' ')
    1076310762            if searchInlist(varobj.ncattrs(),'units'):
    1076410763                vunits = varobj.getncattr('units')
    1076510764            else:
    10766                 vunits = variables_values(varn)[5].replace('|',' ')
     10765                vunits = variables_values(vn)[5].replace('|',' ')
    1076710766
    1076810767            newattr = basicvardef(newvar, vsname, vlname, vunits)
     
    1077110770
    1077210771# center of the trajectory
    10773             newvar = objofile.createVariable('trj_' + varn, 'f', ('time','z'),       \
     10772            newvar = objofile.createVariable('trj_' + vn, 'f', ('time','z'),       \
    1077410773              fill_value=fillValue)
    1077510774            newattr = basicvardef(newvar, 'trj_' + vsname, 'value along the ' +      \
    10776               'trajectory of '+ varn, vunits)
     10775              'trajectory of '+ vn, vunits)
    1077710776            newvar[:] = statvarvals[:,:,0]
    1077810777
     
    1078010779            ist = 0
    1078110780            for statn in statnames:
    10782                 newvar = objofile.createVariable(statn + '_' + varn,'f',('time','z'),\
     10781                newvar = objofile.createVariable(statn + '_' + vn,'f',('time','z'),  \
    1078310782                  fill_value=fillValue)
    1078410783                newattr = basicvardef(newvar, statn + '_' + vsname, vstlname[ist] +  \
    10785                   ' the box ('+str(boxs)+'x'+str(boxs)+') of ' + varn, vunits)
     10784                  ' the box ('+str(boxs)+'x'+str(boxs)+') of ' + vn, vunits)
    1078610785                newvar[:] = statvarvals[:,:,ist+1]
    1078710786#                newattr = set_attributek(newvar,'_FillValue',fillValue,'npfloat')
     
    1078910788       
    1079010789# variable circle values
    10791             newvar = objofile.createVariable(varn + 'circle','f4',('time','z','yr',  \
     10790            newvar = objofile.createVariable(vn + 'circle','f4',('time','z','yr',    \
    1079210791              'xr'), fill_value=fillValue)
    1079310792            if searchInlist(varobj.ncattrs(),'standard_name'):
    1079410793                vsname = varobj.getncattr('standard_name')
    1079510794            else:
    10796                 vsname = variables_values(varn)[1]
     10795                vsname = variables_values(vn)[1]
    1079710796            if searchInlist(varobj.ncattrs(),'long_name'):
    1079810797                vlname = varobj.getncattr('long_name')
    1079910798            else:
    10800                 vlname = variables_values(varn)[4].replace('|',' ')
     10799                vlname = variables_values(vn)[4].replace('|',' ')
    1080110800            if searchInlist(varobj.ncattrs(),'units'):
    1080210801                vunits = varobj.getncattr('units')
    1080310802            else:
    10804                 vunits = variables_values(varn)[5].replace('|',' ')
     10803                vunits = variables_values(vn)[5].replace('|',' ')
    1080510804
    1080610805            newattr = basicvardef(newvar, vsname, vlname, vunits)
     
    1081110810            ist = 0
    1081210811            for statn in cstatnames:
    10813                 newvar = objofile.createVariable(statn + '_' + varn,'f',('time','z'),\
     10812                newvar = objofile.createVariable(statn + '_' + vn,'f',('time','z'),\
    1081410813                  fill_value=fillValue)
    1081510814                newattr = basicvardef(newvar, statn + '_' + vsname, vstlname[ist] +  \
    10816                   ' the circle of radius ('+ str(circler)+') of ' + varn, vunits)
     10815                  ' the circle of radius ('+ str(circler)+') of ' + vn, vunits)
    1081710816                newvar[:] = rstatvarvals[:,:,ist+1]
    1081810817#                newattr = set_attributek(newvar,'_FillValue',fillValue,'npfloat')
     
    1097310972
    1097410973# variable box values
    10975             newvar = objofile.createVariable(varn + 'box', 'f4', ('time', 'y', 'x'), \
     10974            newvar = objofile.createVariable(vn + 'box', 'f4', ('time', 'y', 'x'), \
    1097610975              fill_value=fillValue)
    1097710976            if searchInlist(varobj.ncattrs(),'standard_name'):
    1097810977                vsname = varobj.getncattr('standard_name')
    1097910978            else:
    10980                 vsname = variables_values(varn)[1]
     10979                vsname = variables_values(vn)[1]
    1098110980            if searchInlist(varobj.ncattrs(),'long_name'):
    1098210981                vlname = varobj.getncattr('long_name')
    1098310982            else:
    10984                 vlname = variables_values(varn)[4].replace('|',' ')
     10983                vlname = variables_values(vn)[4].replace('|',' ')
    1098510984            if searchInlist(varobj.ncattrs(),'units'):
    1098610985                vunits = varobj.getncattr('units')
    1098710986            else:
    10988                 vunits = variables_values(varn)[5].replace('|',' ')
     10987                vunits = variables_values(vn)[5].replace('|',' ')
    1098910988
    1099010989            newattr = basicvardef(newvar, vsname, vlname, vunits)
     
    1099310992
    1099410993# center of the trajectory
    10995             newvar = objofile.createVariable('trj_' + varn, 'f', ('time'),           \
     10994            newvar = objofile.createVariable('trj_' + vn, 'f', ('time'),           \
    1099610995              fill_value=fillValue)
    1099710996            newattr = basicvardef(newvar, 'trj_' + vsname, 'value along the ' +      \
    10998               'trajectory of '+ varn, vunits)
     10997              'trajectory of '+ vn, vunits)
    1099910998            newvar[:] = statvarvals[:,0]
    1100010999
     
    1100211001            ist = 0
    1100311002            for statn in statnames:
    11004                 newvar = objofile.createVariable(statn + '_' + varn, 'f', ('time'),  \
     11003                newvar = objofile.createVariable(statn + '_' + vn, 'f', ('time'),    \
    1100511004                  fill_value=fillValue)
    1100611005                newattr = basicvardef(newvar, statn + '_' + vsname, vstlname[ist] +  \
    11007                   ' the box ('+str(boxs)+'x'+str(boxs)+') of ' + varn, vunits)
     11006                  ' the box ('+str(boxs)+'x'+str(boxs)+') of ' + vn, vunits)
    1100811007                newvar[:] = statvarvals[:,ist+1]
    1100911008#                newattr = set_attributek(newvar,'_FillValue',fillValue,'npfloat')
     
    1101111010       
    1101211011# variable circle values
    11013             newvar = objofile.createVariable(varn + 'circle','f4',('time','yr','xr'),\
     11012            newvar = objofile.createVariable(vn + 'circle','f4',('time','yr','xr'),\
    1101411013              fill_value=fillValue)
    1101511014            if searchInlist(varobj.ncattrs(),'standard_name'):
    1101611015                vsname = varobj.getncattr('standard_name')
    1101711016            else:
    11018                 vsname = variables_values(varn)[1]
     11017                vsname = variables_values(vn)[1]
    1101911018            if searchInlist(varobj.ncattrs(),'long_name'):
    1102011019                vlname = varobj.getncattr('long_name')
    1102111020            else:
    11022                 vlname = variables_values(varn)[4].replace('|',' ')
     11021                vlname = variables_values(vn)[4].replace('|',' ')
    1102311022            if searchInlist(varobj.ncattrs(),'units'):
    1102411023                vunits = varobj.getncattr('units')
    1102511024            else:
    11026                 vunits = variables_values(varn)[5].replace('|',' ')
     11025                vunits = variables_values(vn)[5].replace('|',' ')
    1102711026
    1102811027            newattr = basicvardef(newvar, vsname, vlname, vunits)
     
    1103311032            ist = 0
    1103411033            for statn in cstatnames:
    11035                 newvar = objofile.createVariable(statn + '_' + varn, 'f', ('time'),  \
     11034                newvar = objofile.createVariable(statn + '_' + vn, 'f', ('time'),  \
    1103611035                  fill_value=fillValue)
    1103711036                newattr = basicvardef(newvar, statn + '_' + vsname, vstlname[ist] +  \
    11038                   ' the circle of radius ('+ str(circler)+') of ' + varn, vunits)
     11037                  ' the circle of radius ('+ str(circler)+') of ' + vn, vunits)
    1103911038                newvar[:] = rstatvarvals[:,ist+1]
    1104011039#                newattr = set_attributek(newvar,'_FillValue',fillValue,'npfloat')
Note: See TracChangeset for help on using the changeset viewer.