def on_box_log_level(self): level_selected = self.box_log_level.currentText() self.geo_log_level.setValue(level_selected) logger.info('on_box_log_level - selected level: ' + self.geo_log_level.value(), self.name) #self.box_txt.setText( logger.getLogContent() ) self.set_command_window()
def on_but_roi_img_nda(self): logger.info('Select file with ndarray for image', __name__) msg = 'Ok - continue to select file with ndarray\nCancel - use ndarray of ones' status = gu.confirm_or_cancel_dialog_box(parent=self, text=msg, title='Sele') if not status : self.fname_roi_img_nda.setValue('') self.edi_roi_img_nda.setText('') else : self.set_file_name(self.edi_roi_img_nda, self.fname_roi_img_nda, mode='open')
def on_but_geo(self): #logger.info('Start geo', __name__) resp = gu.confirm_or_cancel_dialog_box(parent=self, text='Please confirm or cancel command', title='Confirm or cancel') if resp : cmd = self.get_command() logger.info('Start app by the command: %s' % cmd, __name__) os.system(cmd) else : logger.info('Command is canceled', __name__)
def on_but_roi_convert(self): self.setStatus(1, 'Convert image to ndarray') mcbits = self.sensor_mask_cbits.value() gfname = self.fname_geometry.value() ifname = self.fname_roi_mask_img.value() ofname = self.fname_roi_mask_nda.value() tfname = self.fname_roi_mask_nda_tst.value() msg = '\n Convert ROI mask image: %s\n to ndarray: %s\n using geometry: %s' % \ ( ifname, ofname, gfname ) logger.info(msg, __name__) geometry = GeometryAccess(gfname, 0) iX, iY = geometry.get_pixel_coord_indexes() msg = 'Pixel index array iX, iY shapes: %s, %s' % (str( iX.shape), str(iY.shape)) logger.info(msg, __name__) ifext = os.path.splitext(ifname)[1] ofext = os.path.splitext(ofname)[1] mask_roi = np.load(ifname) if ifext == '.npy' else np.loadtxt( ifname, dtype=np.uint16) mask_nda = np.array([mask_roi[r, c] for r, c in zip(iX, iY)]) # 155 msec if mcbits: mask_nda *= geometry.get_pixel_mask(mbits=mcbits) img_mask_test = img_from_pixel_arrays(iX, iY, W=mask_nda) if ofext == '.npy': np.save(ofname, mask_nda) else: mask_nda.shape = [iX.size / iX.shape[-1], iX.shape[-1]] logger.info( 'Mask ndarray is re-shape for saving in txt to 2-d: %s' % str(mask_nda.shape), __name__) np.savetxt(ofname, mask_nda, fmt='%d', delimiter=' ') logger.info('Mask ndarray is saved in the file %s' % ofname, __name__) self.setStatus(1, 'Test: reconstruct image from mask ndarray...') tfext = os.path.splitext(tfname)[1] if tfext == '.npy': np.save(tfname, img_mask_test) else: np.savetxt(tfname, img_mask_test, fmt='%d', delimiter=' ') logger.info( 'Test-image generated from mask ndarray is saved in file %s' % tfname, __name__) self.setStatus(0)
def on_but_roi_img_nda(self): logger.info('Select file with ndarray for image', __name__) msg = 'Ok - continue to select file with ndarray\nCancel - use ndarray of ones' status = gu.confirm_or_cancel_dialog_box(parent=self, text=msg, title='Sele') if not status: self.fname_roi_img_nda.setValue('') self.edi_roi_img_nda.setText('') else: self.set_file_name(self.edi_roi_img_nda, self.fname_roi_img_nda, mode='open')
def on_but_view(self): logger.info('on_but_view', __name__) try : cp.guifilebrowser.close() except : list_of_fnames = [ self.fname_geo_in.value() \ , self.fname_geo_out.value() \ , self.fname_geo_img_nda.value() \ ] cp.guifilebrowser = GUIFileBrowser(None, list_of_fnames, list_of_fnames[0]) cp.guifilebrowser.move(self.pos().__add__(QtCore.QPoint(880,40))) # open window with offset w.r.t. parent cp.guifilebrowser.show()
def on_but_roi_convert (self): self.setStatus(1, 'Convert image to ndarray') mcbits = self.sensor_mask_cbits.value() gfname = self.fname_geometry.value() ifname = self.fname_roi_mask_img.value() ofname = self.fname_roi_mask_nda.value() tfname = self.fname_roi_mask_nda_tst.value() msg = '\n Convert ROI mask image: %s\n to ndarray: %s\n using geometry: %s' % \ ( ifname, ofname, gfname ) logger.info(msg, __name__) geometry = GeometryAccess(gfname, 0) iX, iY = geometry.get_pixel_coord_indexes() msg = 'Pixel index array iX, iY shapes: %s, %s' % (str(iX.shape), str(iY.shape)) logger.info(msg, __name__) ifext = os.path.splitext(ifname)[1] ofext = os.path.splitext(ofname)[1] mask_roi = np.load(ifname) if ifext == '.npy' else np.loadtxt(ifname, dtype=np.uint16) mask_nda = np.array( [mask_roi[r,c] for r,c in zip(iX, iY)] ) # 155 msec if mcbits : mask_nda *= geometry.get_pixel_mask(mbits=mcbits) img_mask_test = img_from_pixel_arrays(iX, iY, W=mask_nda) if ofext == '.npy' : np.save(ofname, mask_nda) else : mask_nda.shape = [iX.size/iX.shape[-1],iX.shape[-1]] logger.info('Mask ndarray is re-shape for saving in txt to 2-d: %s' % str(mask_nda.shape), __name__) np.savetxt(ofname, mask_nda, fmt='%d', delimiter=' ') logger.info('Mask ndarray is saved in the file %s' % ofname, __name__) self.setStatus(1, 'Test: reconstruct image from mask ndarray...') tfext = os.path.splitext(tfname)[1] if tfext == '.npy' : np.save(tfname, img_mask_test) else : np.savetxt(tfname, img_mask_test, fmt='%d', delimiter=' ') logger.info('Test-image generated from mask ndarray is saved in file %s' % tfname, __name__) self.setStatus(0)
def test_log(): # set level: 'debug','info','warning','error','critical' log.setLevel('warning') # print messages of all levels: 1,2,4,8,16 for 'debug','info',... log.setPrintBits(0377) log.debug('This is a test message 1', __name__) log.info('This is a test message 2', __name__) log.warning('This is a test message 3', __name__) log.error('This is a test message 4', __name__) log.critical('This is a test message 5', __name__) log.critical('This is a test message 6') print 'getLogContent():\n', log.getLogContent() print 'getLogContentTotal():\n', log.getLogContentTotal()
def select_file_for_plot(self): list = [ self.fname_roi_img.value() \ , self.fname_roi_mask_img.value() \ , self.fname_roi_mask_nda.value() \ , self.fname_roi_mask_nda_tst.value() \ ] fname = gu.selectFromListInPopupMenu(list) if fname is None : return None if not os.path.exists(fname) : logger.warning('File %s does not exist. There is nothing to plot...' % fname, __name__) return None logger.info('Selected file for plot: %s' % fname, __name__) return fname
def select_file_for_plot(self): list = [ self.fname_roi_img.value() \ , self.fname_roi_mask_img.value() \ , self.fname_roi_mask_nda.value() \ , self.fname_roi_mask_nda_tst.value() \ ] fname = gu.selectFromListInPopupMenu(list) if fname is None: return None if not os.path.exists(fname): logger.warning( 'File %s does not exist. There is nothing to plot...' % fname, __name__) return None logger.info('Selected file for plot: %s' % fname, __name__) return fname
def reco_image_from_ndarray(self, gfname, afname): #mcbits = self.sensor_mask_cbits.value() msg = 'Reconstruct image from\n geometry: %s\n and ndarray: %s' % \ ( gfname, afname ) logger.info(msg, __name__) geometry = GeometryAccess(gfname, 0) iX, iY = geometry.get_pixel_coord_indexes() afext = '' if afname is None else os.path.splitext(afname)[1] nda = np.ones(iX.shape, dtype=np.uint16) if afname is None else \ np.load(afname) if afext == '.npy' else \ np.loadtxt(afname) #, dtype=np.uint16) nda.shape = iX.shape #if mcbits : nda *= geometry.get_pixel_mask(mbits=mcbits) return img_from_pixel_arrays(iX, iY, W=nda)
def reco_image_from_ndarray (self, gfname, afname): #mcbits = self.sensor_mask_cbits.value() msg = 'Reconstruct image from\n geometry: %s\n and ndarray: %s' % \ ( gfname, afname ) logger.info(msg, __name__) geometry = GeometryAccess(gfname, 0) iX, iY = geometry.get_pixel_coord_indexes() afext = '' if afname is None else os.path.splitext(afname)[1] nda = np.ones(iX.shape, dtype=np.uint16) if afname is None else \ np.load(afname) if afext == '.npy' else \ np.loadtxt(afname) #, dtype=np.uint16) nda.shape = iX.shape #if mcbits : nda *= geometry.get_pixel_mask(mbits=mcbits) return img_from_pixel_arrays(iX, iY, W=nda)
def set_file_name(self, edi, par, mode='save', filter='*.txt *.npy *.dat *.data\nAll files (*)'): #logger.debug('set_file_name', __name__) self.setStatus(1, 'Waiting for input of the file name...') path = str( edi.displayText() ) dname, fname = os.path.split(path) msg = 'Current dir: %s file: %s' % (dname, fname) logger.info(msg, __name__) path = str( QtGui.QFileDialog.getSaveFileName(self, 'Save file', path, filter=filter) ) \ if mode == 'save' else \ str( QtGui.QFileDialog.getOpenFileName(self, 'Open file', path, filter=filter) ) dname, fname = os.path.split(path) if dname == '' or fname == '' : logger.info('Input directiry name or file name is empty... use default values', __name__) return else : edi.setText(path) par.setValue(path) logger.info('Selected file:\n' + path, __name__) self.setStatus(0)
def set_file_name(self, edi, par, mode='save', filter='*.txt *.npy *.dat *.data\nAll files (*)'): #logger.debug('set_file_name', __name__) self.setStatus(1, 'Waiting for input of the file name...') path = str(edi.displayText()) dname, fname = os.path.split(path) msg = 'Current dir: %s file: %s' % (dname, fname) logger.info(msg, __name__) path = str( QtGui.QFileDialog.getSaveFileName(self, 'Save file', path, filter=filter) ) \ if mode == 'save' else \ str( QtGui.QFileDialog.getOpenFileName(self, 'Open file', path, filter=filter) ) dname, fname = os.path.split(path) if dname == '' or fname == '': logger.info( 'Input directiry name or file name is empty... use default values', __name__) return else: edi.setText(path) par.setValue(path) logger.info('Selected file:\n' + path, __name__) self.setStatus(0)
def on_but_reco_image(self): self.setStatus(1, 'Reconstruct image from ndarray') gfname = self.fname_geometry.value() afname = self.fname_roi_img_nda.value() ofname = self.fname_roi_img.value() msg = 'Reconstruct image from\n geometry: %s\n ndarray: %s\n and save it in: %s' % \ ( gfname, afname, ofname ) img = self.reco_image_from_ndarray(gfname, afname) ofext = '' if ofname is None else os.path.splitext(ofname)[1] if ofext == '.npy': np.save(ofname, img) else: np.savetxt(ofname, img, fmt='%d', delimiter=' ') msg = 'Image is saved in the file %s' % ofname logger.info(msg, __name__) self.setStatus(0)
def on_but_reco_image (self): self.setStatus(1, 'Reconstruct image from ndarray') gfname = self.fname_geometry.value() afname = self.fname_roi_img_nda.value() ofname = self.fname_roi_img.value() msg = 'Reconstruct image from\n geometry: %s\n ndarray: %s\n and save it in: %s' % \ ( gfname, afname, ofname ) img = self.reco_image_from_ndarray(gfname, afname) ofext = '' if ofname is None else os.path.splitext(ofname)[1] if ofext == '.npy' : np.save(ofname, img) else : np.savetxt(ofname, img, fmt='%d', delimiter=' ') msg = 'Image is saved in the file %s' % ofname logger.info(msg, __name__) self.setStatus(0)
def on_but_geo_img_nda(self): logger.info('Select file with ndarray for image', __name__) self.set_file_name(self.edi_geo_img_nda, self.fname_geo_img_nda, mode='open')
def on_but_plot(self): logger.info('TBD: on_but_plot', __name__)
def on_but_roi_mask_nda(self): logger.info('Set/select the file for mask ndarray', __name__) self.set_file_name(self.edi_roi_mask_nda, self.fname_roi_mask_nda)
def on_but_roi_mask_img(self): logger.info('Set/select the file for image of the mask', __name__) self.set_file_name(self.edi_roi_mask_img, self.fname_roi_mask_img)
def on_but_roi_mask_nda(self): logger.info('Set/select the file for mask ndarray', __name__) self.set_file_name(self.edi_roi_mask_nda, self.fname_roi_mask_nda)
def on_but_roi_img_nda(self): logger.info('Select file with ndarray for image', __name__) self.set_file_name(self.edi_roi_img_nda, self.fname_roi_img_nda, mode='open')
def on_but_geometry(self): logger.info('Select the "geometry" file', __name__) self.set_file_name(self.edi_geometry, self.fname_geometry, mode='open')
def on_edi_mask_cbits(self): str_value = str( self.edi_mask_cbits.displayText() ) self.sensor_mask_cbits.setValue(int(str_value)) logger.info('Set sensor mask control bitword: %s' % str_value, __name__ )
def set_command_window(self): cmd = self.get_command() logger.info('command: %s' % cmd, __name__) self.edi_geo.clear() self.edi_geo.setText(cmd)
def on_but_geometry(self): logger.info('Select the "geometry" file', __name__) self.set_file_name(self.edi_geometry, self.fname_geometry, mode='open')
def on_but_roi_img(self): logger.info('Set/select the file with image', __name__) #prefix = self.fname_prefix.value() #filter = 'Text files (' + prefix + '*.txt ' + prefix + '*.dat)\nAll files (*)' self.set_file_name(self.edi_roi_img, self.fname_roi_img) #, filter)
def on_but_geo_out(self): logger.info('Select the "geometry" output file', __name__) self.set_file_name(self.edi_geo_out, self.fname_geo_out, mode='save')
def on_but_roi_img(self): logger.info('Set/select the file with image', __name__) #prefix = self.fname_prefix.value() #filter = 'Text files (' + prefix + '*.txt ' + prefix + '*.dat)\nAll files (*)' self.set_file_name(self.edi_roi_img, self.fname_roi_img) #, filter)
def on_edi_mask_cbits(self): str_value = str(self.edi_mask_cbits.displayText()) self.sensor_mask_cbits.setValue(float(str_value)) logger.info('Set sensor mask control bitword: %s' % str_value, __name__)
def on_but_roi_mask_img(self): logger.info('Set/select the file for image of the mask', __name__) self.set_file_name(self.edi_roi_mask_img, self.fname_roi_mask_img)