def extractImage(self): """Extract the raw image data""" import os from ctypes import cdll, c_char_p extract_csk = cdll.LoadLibrary(os.path.dirname(__file__)+'/csk.so') # Prepare and run the C-based extractor #check if the input is a string. if so put it into one element list if(isinstance(self.hdf5FileList,str)): self.hdf5FileList = [self.hdf5FileList] for i in range(len(self.hdf5FileList)): #need to create a new instance every time self.frame = Frame() self.frame.configure() appendStr = '_' + str(i) # if more than one file to contatenate that create different outputs # but suffixing _i if(len(self.hdf5FileList) == 1): appendStr = '' outputNow = self.output + appendStr self.hdf5 = self.hdf5FileList[i] inFile_c = c_char_p(bytes(self.hdf5,'utf-8')) outFile_c = c_char_p(bytes(outputNow,'utf-8')) extract_csk.extract_csk(inFile_c,outFile_c) # Now, populate the metadata try: fp = h5py.File(self.hdf5,'r') except Exception as strerror: self.logger.error("IOError: %s\n" % strerror) return self.populateMetadata(file=fp) self.populateImage(outputNow) self._populateExtras(fp) fp.close() self.frameList.append(self.frame) createAuxFile(self.frame,outputNow + '.aux') self._imageFileList = self.hdf5FileList return tkfunc(self)
def extractImage(self): """Extract the raw image data""" self.parse() self._populateExtras() self.populateImage() createAuxFile(self.frame, self.rawFile + '.aux')