Ignore:
Timestamp:
Sep 12, 2016 6:30:40 PM (7 years ago)
Author:
toby
Message:

implement 3 dimensional HDF images

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/imports/G2img_HDF5.py

    r2284 r2465  
    3636            self.UseReader = False
    3737            print('HDF5 Reader skipped because h5py library is not installed')
     38            import os,sys
     39            os.path.split(sys.executable)[0]
     40            conda = os.path.join(os.path.split(sys.executable)[0],'conda')
     41            if os.path.exists(conda):
     42                print('To fix this use command:\n\t'+conda+' install h5py hdf5')
    3843        super(self.__class__,self).__init__( # fancy way to self-reference
    3944                                             extensionlist=('.hdf5','.hd5','.h5','.hdf'),
     
    6671                self.buffer['init'] = True
    6772                self.Comments = self.visit(fp)
     73                if imagenum > len(self.buffer['imagemap']):
     74                    self.errors = 'No valid images found in file'
     75                    return False
     76               
    6877            self.Data,self.Npix,self.Image = self.readDataset(fp,imagenum)
    69             if self.Npix == 0 or not self.Comments:
     78            if self.Npix == 0:
     79                self.errors = 'No valid images found in file'
    7080                return False
    7181            self.LoadImage(ParentFrame,filename,imagenum)
     
    95105                    dims = dset.shape
    96106                    if len(dims) == 4:
    97                         self.buffer['imagemap'] += [
    98                             (dset.name,i) for i in range(dims[1])]
     107                        self.buffer['imagemap'] += [(dset.name,i) for i in range(dims[1])]
     108                    elif len(dims) == 3:
     109                        self.buffer['imagemap'] += [(dset.name,i) for i in range(dims[0])]
    99110                    elif len(dims) == 2:
    100111                        self.buffer['imagemap'] += [(dset.name,None)]
    101         if GSASIIpath.GetConfigValue('debug'): print 'visit'
     112                    else:
     113                        print('Skipping entry '+str(dset.name)+'. Shape is '+str(dims))
     114        #if GSASIIpath.GetConfigValue('debug'): print 'visit'
    102115        self.buffer['imagemap'] = []
    103116        fp.visititems(func)
     
    111124        if num is None:
    112125            image = dset[()]
     126        elif len(dset.shape) == 4:
     127            image = dset[0,num,...]
     128        elif len(dset.shape) == 3:
     129            image = dset[num,...]
    113130        else:
    114             image = dset[0,num,...]
     131            msg = 'Unexpected image dimensions '+name
     132            print(msg)
     133            raise Exception(msg)
    115134        sizexy = list(image.shape)
    116135        Npix = sizexy[0]*sizexy[1]
Note: See TracChangeset for help on using the changeset viewer.