code: def read_nc(self,filename,**kwargs):
          '''
          data reader based on :class:`altimetry.tools.nctools.nc` object.
          
          .. note:: THIS can be VERY powerful!
          '''
          
          #Set filename
          self._filename = filename
          
          remove_existing = kwargs.get('remove_existing',True)
          
          #Read data from NetCDF
          obj=nctools.nc(verbose=self.verbose,limit=self.limit,use_local_dims=True)
          outStr=obj.read(filename,**kwargs)
          
          #Remove attributes already existing in data object
          for a in self.__dict__.keys():
              if outStr.has_key(a) and not a.startswith('_') :
                  if remove_existing :
                      outStr.pop(a)
                      self.message(2, 'Attribute {0} already exists - removing it (set remove_existing to False instead)'.format(a))
          
          return outStf read_nc(self,filename,**kwargs):
          '''
          data reader based on :class:`altimetry.tools.nctools.nc` object.
          
          .. note:: THIS can be VERY powerful!
          '''
          
          #Set filename
          self._filename = filename
          
          remove_existing = kwargs.get('remove_existing',True)
          
          #Read data from NetCDF
          obj=nctools.nc(verbose=self.verbose,limit=self.limit,use_local_dims=True)
          outStr=obj.read(filename,**kwargs)
          
          #Remove attributes already existing in data object
          for a in self.__dict__.keys():
              if outStr.has_key(a) and not a.startswith('_') :
                  if remove_existing :
                      outStr.pop(a)
                      self.message(2, 'Attribute {0} already exists - removing it (set remove_existing to False instead)'.format(a))
          
          return outStr
docs: data reader based on :class:`altimetry.tools.nctools.nc` object.
          
          .. note:: THIS can be VERY powerful!