Changeset 921 in lmdz_wrf for trunk/tools


Ignore:
Timestamp:
Jun 21, 2016, 4:14:42 PM (8 years ago)
Author:
lfita
Message:

Adding last:' -9 and first:' 0 values in 'DataSetSection?'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r918 r921  
    56415641        [beg],[end],[int]: beginning, end and interval along the dimension-axis
    56425642          [end] = -1, values until the end
     5643          [beg] = -9, last value
    56435644      filen= netCDF with the data-set
    56445645      DataSetSection('time,3,15,1','test.nc')
     
    56715672        else:
    56725673            if dims == dimn:
    5673                 if begv > len(objdim):
    5674                     print errormsg
    5675                     print '  ' + fname + ': beginning value' ,begv,                  \
    5676                       'is larger than dimension (', len(objdim), ')!!!!'
    5677                     quit(-1)
    5678                 if endv > len(objdim):
    5679                     print errormsg
    5680                     print '  ' + fname + ': endining value' ,endv,                   \
    5681                       'is larger than dimension (', len(objdim), ')!!!!'
    5682                     quit(-1)
    5683 
    5684                 if endv == -1: endv = len(objdim)
    5685                 dimsize = (endv - begv + 1)/intv - 1
     5674                if begv != -9 and begv != 0:
     5675                    if begv > len(objdim):
     5676                        print errormsg
     5677                        print '  ' + fname + ': beginning value' ,begv,              \
     5678                          'is larger than dimension (', len(objdim), ')!!!!'
     5679                        quit(-1)
     5680                    if endv > len(objdim):
     5681                        print errormsg
     5682                        print '  ' + fname + ': endining value' ,endv,               \
     5683                          'is larger than dimension (', len(objdim), ')!!!!'
     5684                        quit(-1)
     5685
     5686                    if endv == -1: endv = len(objdim)
     5687                    dimsize = (endv - begv + 1)/intv - 1
     5688                else:
     5689                    dimsize == 0                       
     5690                    if begv == 0:
     5691                        begv = 0
     5692                        endv = 0
     5693                        intv = 0
     5694                    elif begv == -9:
     5695                        begv = len(objdim)
     5696                        endv = len(objdim)
     5697                        intv = 0
     5698
    56865699            else:
    56875700                dimsize = len(objdim)
    56885701
    56895702        print '    ' + fname + ': adding dimension: ' + dims + ' size:',dimsize
    5690         dim = ncoobj.createDimension(dims, dimsize)
     5703        if dimsize != 0:
     5704            if begv != -9 and begv != 0:
     5705               dim = ncoobj.createDimension(dims, dimsize)
     5706            else:
     5707               if dims != dimn:
     5708                   dim = ncoobj.createDimension(dims, dimsize)
    56915709
    56925710    ncoobj.sync()
     
    57015719        if not gen.searchInlist(list(vardims),dimn):
    57025720            varvals = varobj[:]
     5721            filevardims = list(vardims)
    57035722        else:
    57045723            varslice = []
     5724            filevardims = []
    57055725            for dimname in varobj.dimensions:
    57065726                if dimname == dimn:
    5707                     varslice.append(slice(begv,endv,intv))
     5727                    if begv != -9 and begv != 0:
     5728                        varslice.append(slice(begv,endv,intv))
     5729                        filevardims.append(dimname)
     5730                    else:
     5731                        if begv == -9:
     5732                            varslice.append(len(nciobj.dimensions[dimn])-1)
     5733                        elif begv == 0:
     5734                            varslice.append(0)
     5735
    57085736                else:
    57095737                    Ldim = len(nciobj.dimensions[dimname])
    57105738                    varslice.append(slice(0,Ldim))
     5739                    filevardims.append(dimname)
    57115740
    57125741            varvals = varobj[tuple(varslice)]
     
    57215750        vartype = varobj.dtype
    57225751
    5723         newvar = ncoobj.createVariable(varns, vartype, vardims, fill_value=varfil)
     5752        newvar = ncoobj.createVariable(varns, vartype, tuple(filevardims),           \
     5753          fill_value=varfil)
    57245754        newvar[:] = varvals
    57255755
Note: See TracChangeset for help on using the changeset viewer.