Changeset 1846 in lmdz_wrf


Ignore:
Timestamp:
Mar 23, 2018, 12:57:53 AM (7 years ago)
Author:
lfita
Message:

Working on 'CFmorzization'

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var.py

    r1845 r1846  
    1818## e.g. # nc_var.py -o WRF_to_newCF -f wrfout_d01_1995-01-01_00\:00\:00 -S 'XLONG:XLAT:Times:19491201000000:minutes' -v QVAPOR,T2,Q2
    1919## e.g. # nc_var.py -o reconstruct_matrix_from_vector -f cruncep_halfdeg_1958.nc -S 'nav_lon:nav_lat:-90.:-7.:-67.:15.:latlon:0.5:0.5:0.05' -v all
    20 ## e.g. # nc_var.py -o CFmorzization -S 'X|west_east|XLONG,Y|south_north|XLAT,T|Times|WRFtime:GlobalAttr1995.inf:proj1995.inf' -f ~/PY/wrfout_d01_1995-01-01_00\:00\:00 -v QFX
     20## e.g. # nc_var.py -o CFmorzization -S 'X|west_east|XLONG,Y|south_north|XLAT,T|Times|WRFtime,Z|bottom_top|ZNU:GlobalAttr1995.inf:proj1995.inf' -f ~/PY/wrfout_d01_1995-01-01_00\:00\:00 -v QFX
    2121
    2222## e.g. ccrc468-17 # ./nc_var.py -v time -f 123/CCRC_NARCliM_Sydney_All_1990-1999_pr10max.nc -o out -S 1:-1
  • trunk/tools/nc_var_tools.py

    r1845 r1846  
    2270722707                members of the CMIP5 list of forcing agents are not necessarily forcing agents of RCM (besides implicitly
    2270822708                in driving_experimnt)
    22709               rcm_version_ID [value] (<free text string>; valid characters only indicates model modifs during the project
     22709              rcm_version_id [value] (<free text string>; valid characters only indicates model modifs during the project
    2271022710                e.g.: parameterizations, small upgrades)
    2271122711              project_id [value] (single value)
     
    2274422744      'experiment', 'contact', 'product', 'Conventions', 'creation_date','frequency',\
    2274522745      'driving_model_id', 'driving_model_ensemble_member', 'driving_experiment_name',\
    22746       'driving_experiment', 'rcm_version_ID', 'project_id', 'CORDEX_domain',         \
     22746      'driving_experiment', 'rcm_version_id', 'project_id', 'CORDEX_domain',         \
    2274722747      'tracking_id', 'basetime', 'calendar', 'grid']
    2274822748
     
    2285522855            oaxisv = tvals
    2285622856     
    22857 
    2285822857        # CF values of axis
    2285922858        CFdimvalues = gen.CFcorValues(axn)
     
    2287622875            axisv = oaxisv[:]
    2287722876            if CFdimvalues['length'] != -1:CFdimvalues['length'] = oaxisv.shape[0]
    22878             CFvardimvalues.append[dimn]
     22877            CFvardimvalues.append(dimn)
    2287922878        elif len(oaxisv.shape) == CFdimvalues['maxrank'] + 1:
    2288022879            print warnmsg
     
    2288922888                if dn == dimTn: varslice.append(0)
    2289022889                else:
    22891                     CFvardimvalues.append(dn)
     22890                    CFvardimvalues.append(dimn)
    2289222891                    varslice.append(slice(0,len(onc.dimensions[dn])))
    2289322892                    if dn == dimn and CFdimvalues['length'] != -1:
     
    2291222911            dimt = len(axisv)
    2291322912            CFitime = axisv[0]
    22914             CFetime = axisv[dimt]
    22915             tunits = oaxisv.units
    22916             tcal = oaxisv.calendar
    22917             Sinit=datetimeStr_conversion(str(CFitime),'cftime,'+tunits,'Y-m-dTH:M:SZ')
    22918             Sendt=datetimeStr_conversion(str(CFetime),'cftime,'+tunits,'Y-m-dTH:M:SZ')
    22919             secfreq = CFtime_freq(axisv[0], axisv[1], tunits)
     22913            CFetime = axisv[dimt-1]
     22914            if vardimn != 'WRFtime':
     22915                tunits = oaxisv.units
     22916                tcal = oaxisv.calendar
     22917            else:
     22918                tunits = urefvals
     22919                tcal = 'standard'
     22920            Sinit = gen.datetimeStr_conversion(str(CFitime), 'cfTime,'+tunits,       \
     22921              'Y-m-dTH:M:SZ')
     22922            Sendt = gen.datetimeStr_conversion(str(CFetime), 'cfTime,'+tunits,       \
     22923              'Y-m-dTH:M:SZ')
     22924            secfreq = gen.CFtime_freq(axisv[0], axisv[1], tunits)
    2292022925            # Labelling frequency
    2292122926            if np.mod(secfreq, 100 * 365 * 24 * 3600.) == 0.:
     
    2293322938            else: Sfreq = 'UNKNOWN'
    2293422939
     22940    print 'Values for axes ________'
     22941    print CFdimvals
     22942    print 'Values for variables-axes ________'
     22943    print CFaxisvardimvals
     22944
    2293522945    # Processing variables in file
    2293622946    ##
    22937     for vn in varns:
     22947    for vn in Varns:
    2293822948        # getting CF information
    2293922949        varinf = gen.variables_values(vn)
     
    2295822968            axisv = axisinf[axn]
    2295922969            dimn = axisv[0]
    22960             if gen.searchInfile(ovar.dimensions, dimn):
    22961                 varaxes.append[axn]
     22970            if gen.searchInlist(ovar.dimensions, dimn):
     22971                varaxes.append(axn)
    2296222972                CFvardims.append(CFdimvals[axn]['dimn'])
    2296322973               
    22964         filen = gattr['institude_id'] + '_' + cfvarn + '_' + gattr['CORDEX_domain'] +\
     22974        filen = gattr['institute_id'] + '_' + cfvarn + '_' + gattr['CORDEX_domain'] +\
    2296522975          '_' + gattr['driving_model_id'] + '_' + gattr['driving_experiment_name'] + \
    2296622976          '_' + gattr['driving_model_ensemble_member'] + '_' + gattr['model_id'] +   \
     
    2297222982        for axn in varaxes:
    2297322983            dvals = CFdimvals[axn]
    22974             newdim = onewnc.createDimension(dvals['dimn'], dvals['legnth'])
     22984            newdim = onewnc.createDimension(dvals['dimn'], dvals['length'])
    2297522985
    2297622986        # Definition only of that variables-coordinates from the axes in the variable
    2297722987        for axn in varaxes:
    2297822988            dvals = CFdimvals[axn]
     22989            print 'Lluis: ', CFaxisvardimvals[axn]
    2297922990            newvar = onewnc.createVariable(dvals['dimn'], 'f8',                      \
    22980               tuple(CFaxesdimvarvals[axn]))
     22991              tuple(CFaxisvardimvals[axn]))
    2298122992            basicvardef(newvar, dvals['stdn'], dvals['longname'], dvals['units'])
    2298222993            for ivn in dvals.keys():
Note: See TracChangeset for help on using the changeset viewer.