def onPlotOnlyTimer(self, e): if self.terminated: self.stop_run() else: if self.results_file is not None and os.path.isfile( self.results_file): st = time.time() with open(self.results_file, 'r') as rf: rf.seek(self.bookmark) split_info = [ i.replace('\n', '').split(' ') for i in rf.readlines() ] self.bookmark = rf.tell() if self.args.reorder: idx_offset = len(self.spotfinding_info) new_info = [[ split_info.index(i) + idx_offset, int(i[1]), i[2], i[3], tuple(i[4:10]) ] if len(i) > 5 else [ split_info.index(i) + idx_offset, int(i[1]), i[2], misc.makenone(i[3]), misc.makenone(i[4]) ] for i in split_info] else: new_info = [ [int(i[0]), int(i[1]), i[2], i[3], tuple(i[4:10])] if len(i) > 5 else [ int(i[0]), int(i[1]), i[2], misc.makenone(i[3]), misc.makenone(i[4]) ] for i in split_info ] if len(new_info) > 0: self.msg = 'Tracking new images in {} ...'.format( self.results_file) self.spotfinding_info.extend(new_info) if len(self.spotfinding_info) > 0: indexed = [ i for i in self.spotfinding_info if i[4] is not None ] self.tracker_panel.idx_count_txt.SetLabel( str(len(indexed))) self.plot_results() else: self.msg = 'Waiting for new images in {} ...'.format( self.results_file) else: self.msg = 'Waiting for new run to initiate...' self.update_spinner()
def onProcTimer(self, e): if os.path.isfile(self.results_file): with open(self.results_file, 'r') as rf: rf.seek(self.bookmark) split_info = [ i.replace('\n', '').split(' ') for i in rf.readlines() ] self.bookmark = rf.tell() if self.reorder: idx_offset = len(self.spotfinding_info) new_info = [[ split_info.index(i) + idx_offset, int(i[1]), i[2], i[3], tuple(i[4:10]) ] if len(i) > 5 else [ split_info.index(i) + idx_offset, int(i[1]), i[2], misc.makenone(i[3]), misc.makenone(i[4]) ] for i in split_info] else: new_info = [[int(i[0]), int(i[1]), i[2], i[3], tuple(i[4:10])] if len(i) > 5 else [ int(i[0]), int(i[1]), i[2], misc.makenone(i[3]), misc.makenone(i[4]) ] for i in split_info] if len(new_info) > 0: self.spotfinding_info.extend(new_info) if len(self.spotfinding_info) > 0: self.msg = 'Tracking new images in {} ...'.format( self.results_file) else: self.msg = 'Waiting for new images in {} ...'.format( self.results_file) else: self.msg = 'Waiting for new run to initiate...' info = [self.msg, self.spotfinding_info, self.cluster_info] evt = SpotFinderOneDone(tp_EVT_SPFDONE, -1, info=info) wx.PostEvent(self.parent, evt)