Changeset 206


Ignore:
Timestamp:
05/09/14 16:56:34 (5 years ago)
Author:
mjuckes
Message:

debugged ncq3

Location:
CCCC/trunk/ceda_cc
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • CCCC/trunk/ceda_cc/c4.py

    r204 r206  
    255255      return 
    256256 
     257    fltype = None 
    257258    argu = [] 
    258259    while len(args) > 0: 
    259260      next = args.pop(0) 
    260261      if next == '-f': 
     262        print '###########',args[0] 
    261263        flist = [args.pop(0),] 
    262264        self.logByFile = False 
     265        fltype = '-f' 
    263266      elif next == '--log': 
    264267        x = args.pop(0) 
     
    306309      self.commandHints( argsIn ) 
    307310 
    308     if self.project == 'CMIP5': 
     311    if self.project == 'CMIP5' and fltype != '-f': 
    309312      fl0 = [] 
    310313      for f in flist: 
  • CCCC/trunk/ceda_cc/file_utils.py

    r205 r206  
    1515 
    1616installedSupportedNetcdf = [] 
    17 ##ll = [] 
     17ll = [] 
    1818 
    1919for x in supportedNetcdf: 
     
    7676      self.loadNc__Scientific(fpath) 
    7777    else: 
    78       raise baseException( 'No supported netcdf module assigned' ) 
    79  
    80   def loadNc_ncq(self,fpath): 
     78      self.loadNc__ncq(fpath) 
     79      ##raise baseException( 'No supported netcdf module assigned' ) 
     80 
     81  def loadNc__ncq(self,fpath): 
    8182    self.nc0 = ncq3.open( fpath ) 
    8283    self.nc0.getDigest() 
    8384    self.nc0.info() 
    8485    self.nc = ncq3.Browse( self.nc0.digest ) 
    85     for a in self.nc._ga: 
     86    for a in self.nc._gal: 
    8687       self.ga[a.name] = a.value 
    8788    for v in self.nc._vdict.keys(): 
    88       thisv = self.nc._vdict[v] 
     89      thisv = self.nc._vdict[v][0] 
    8990      if v not in self.nc._ddict.keys(): 
    9091        self.va[v] = {} 
    91         for a in self.nc._ll[thisv[0].id]: 
     92        for a in self.nc._ll[thisv.id]: 
    9293          self.va[v][a.name] = a.value 
    9394        self.va[v]['_type'] = tstr( thisv.type ) 
     
    100101        self.da[v] = {} 
    101102        thisa = self.nc._ddict[v] 
    102         for a in self.nc._ll[thisv[0].id]: 
     103        for a in self.nc._ll[thisv.id]: 
    103104          self.da[v][a.name] = a.value 
    104105        self.da[v]['_type'] = tstr( thisv.type ) 
  • CCCC/trunk/ceda_cc/ncq3.py

    r205 r206  
    6262      NC_DOUBLE:c_double } 
    6363 
     64ncmappings.tdict2 = { NC_BYTE:"byte", 
     65      NC_SHORT:"short", 
     66      NC_INT:"int", 
     67      NC_LONG:"long", 
     68      NC_FLOAT:"float", 
     69      NC_DOUBLE:"double" } 
     70 
    6471NC_MAX_NAME = 256 
    6572 
     
    114121    ti = -2 
    115122    for a in self.nc.attributes: 
    116       print a.id, a.vid, a.name, len(self._ll[a.vid]) 
    117123      if a.vid != -1: 
    118124        assert a.id == len(self._ll[a.vid]), 'Unexpected attribute id: %s -- %s' % (str(a),str(self._ll[a.vid]) ) 
     
    198204              data = (c_double*len)() 
    199205              err = libnetcdf.nc_get_var_double(self.id, i, data) 
    200               self.vars.append( Variable( name.value, 0, i, type.value, natts.value, ndims.value, list(dimids), data[:] ) ) 
     206              self.vars.append( Variable( name.value, 0, i, ncmappings.tdict2[type.value], natts.value, ndims.value, list(dimids), data[:] ) ) 
    201207            else: 
    202               self.vars.append( Variable( name.value, 0, i, type.value, natts.value, ndims.value, list(dimids), None ) ) 
     208              self.vars.append( Variable( name.value, 0, i, ncmappings.tdict2[type.value], natts.value, ndims.value, list(dimids), None ) ) 
    203209          else: 
    204210            self.vars.append( VarInfo( name.value, 0, i, type.value, natts.value, ndims.value, list(dimids) ) ) 
     
    255261      tt = ncmappings.tdict.get( type, None ) 
    256262      if tt == None: raise NCError("unknown data type") 
     263      t2 = ncmappings.tdict2.get( type, None ) 
    257264      if len > 1: 
    258265        data = (tt*len)() 
    259266        err = libnetcdf.nc_get_att(self.id, vid, c_char_p(name), data) 
    260267        if err != 0: raise NCError( 'Error reading attribute value %s, type:%s' % (name,type) ) 
    261         return Attribute( name, 0, vid, aid, type, len, data ) 
     268        return Attribute( name, 0, vid, aid, t2, len, data ) 
    262269      else: 
    263270        data = tt() 
    264271        err = libnetcdf.nc_get_att(self.id, vid, c_char_p(name), byref(data)) 
    265272        if err != 0: raise NCError( 'Error reading attribute value %s, type:%s' % (name,type) ) 
    266         return Attribute( name, 0, vid, aid, type, len, data.value ) 
     273        print name, data.value, t2, type, float(data.value) 
     274        if type == 5: 
     275          dv = c_float( data.value ).value 
     276        else: 
     277          dv = data.value 
     278        return Attribute( name, 0, vid, aid, t2, len, dv ) 
    267279 
    268280## end of extension ## 
  • CCCC/trunk/ceda_cc/utils_c4.py

    r201 r206  
    539539      ok &= self.test(  da['time'].has_key( 'calendar' ), 'Time: required attribute calendar missing', part=True ) 
    540540 
    541       ok &= self.test( da['time']['_type'] == "float64", 'Time: data type not float64', part=True ) 
     541      ok &= self.test( da['time']['_type'] in ["float64","double"], 'Time: data type not float64 [%s]' % da['time']['_type'], part=True ) 
    542542        
    543543      if ok: 
Note: See TracChangeset for help on using the changeset viewer.