From baa6be88f3b2c358ae50056e06ea58702ea26eb3 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 27 Mar 2020 22:10:44 +0000 Subject: [PATCH] first iteration reformatting --- slic/scans/scanner.py | 46 +++++++++++++------------- slic/scans/scansimple.py | 71 +++++++++++++++++++++------------------- 2 files changed, 61 insertions(+), 56 deletions(-) diff --git a/slic/scans/scanner.py b/slic/scans/scanner.py index a8a602bcc..7fef6844c 100644 --- a/slic/scans/scanner.py +++ b/slic/scans/scanner.py @@ -4,49 +4,51 @@ from .scansimple import ScanSimple class Scanner: - def __init__(self,data_base_dir='',scan_info_dir='',default_counters=[],checker=None,scan_directories=False): + + def __init__(self, data_base_dir="", scan_info_dir="", default_counters=[], checker=None, scan_directories=False): self.data_base_dir = data_base_dir self.scan_info_dir = scan_info_dir self._default_counters = default_counters self.checker = checker self._scan_directories = scan_directories - def ascan(self,adjustable,start_pos,end_pos,N_intervals,N_pulses,file_name=None,start_immediately=True, step_info = None): - positions = np.linspace(start_pos,end_pos,N_intervals+1) + def ascan(self, adjustable, start_pos, end_pos, N_intervals, N_pulses, file_name=None, start_immediately=True, step_info=None): + positions = np.linspace(start_pos, end_pos, N_intervals + 1) values = [[tp] for tp in positions] - s = ScanSimple([adjustable],values,self._default_counters,file_name,Npulses=N_pulses,basepath=self.data_base_dir,scan_info_dir=self.scan_info_dir,checker=self.checker,scan_directories=self._scan_directories) - if start_immediately: - s.scanAll(step_info=step_info) - return s - - def a2scan(self,adjustable0,start0_pos,end0_pos,adjustable1,start1_pos,end1_pos,_intervals,N_pulses,file_name=None,start_immediately=True, step_info = None): - positions0 = np.linspace(start0_pos,end0_pos,N_intervals+1) - positions1 = np.linspace(start1_pos,end1_pos,N_intervals+1) - values = [[tp0,tp1] for tp0,tp1 in zip(positions0,position1)] - s = ScanSimple([adjustable0, adjustable1],values,self._default_counters,file_name,Npulses=N_pulses,basepath=self.data_base_dir,scan_info_dir=self.scan_info_dir,checker=self.checker,scan_directories=self._scan_directories) + s = ScanSimple([adjustable], values, self._default_counters, file_name, Npulses=N_pulses, basepath=self.data_base_dir, scan_info_dir=self.scan_info_dir, checker=self.checker, scan_directories=self._scan_directories) if start_immediately: s.scanAll(step_info=step_info) return s - def rscan(self,adjustable,start_pos,end_pos,N_intervals,N_pulses,file_name=None,start_immediately=True): - positions = np.linspace(start_pos,end_pos,N_intervals+1) + def a2scan(self, adjustable0, start0_pos, end0_pos, adjustable1, start1_pos, end1_pos, N_intervals, N_pulses, file_name=None, start_immediately=True, step_info=None): + positions0 = np.linspace(start0_pos, end0_pos, N_intervals + 1) + positions1 = np.linspace(start1_pos, end1_pos, N_intervals + 1) + values = [[tp0, tp1] for tp0, tp1 in zip(positions0, position1)] + s = ScanSimple([adjustable0, adjustable1], values, self._default_counters, file_name, Npulses=N_pulses, basepath=self.data_base_dir, scan_info_dir=self.scan_info_dir, checker=self.checker, scan_directories=self._scan_directories) + if start_immediately: + s.scanAll(step_info=step_info) + return s + + def rscan(self, adjustable, start_pos, end_pos, N_intervals, N_pulses, file_name=None, start_immediately=True): + positions = np.linspace(start_pos, end_pos, N_intervals + 1) current = adjustable.get_current_value() - values = [[tp+current] for tp in positions] - s = ScanSimple([adjustable],values,self._default_counters,file_name,Npulses=N_pulses,basepath=self.data_base_dir,scan_info_dir=self.scan_info_dir,checker=self.checker,scan_directories=self._scan_directories) + values = [[tp + current] for tp in positions] + s = ScanSimple([adjustable], values, self._default_counters, file_name, Npulses=N_pulses, basepath=self.data_base_dir, scan_info_dir=self.scan_info_dir, checker=self.checker, scan_directories=self._scan_directories) if start_immediately: s.scanAll() return s - def dscan(self,*args,**kwargs): - print('Warning: dscan will be deprecated for rscan unless someone explains what it stands for in spec!') - return self.rscan(*args,**kwargs) + def dscan(self, *args, **kwargs): + print("Warning: dscan will be deprecated for rscan unless someone explains what it stands for in spec!") + return self.rscan(*args, **kwargs) - def ascanList(self,adjustable,posList,N_pulses,file_name=None,start_immediately=True, step_info = None): + def ascanList(self, adjustable, posList, N_pulses, file_name=None, start_immediately=True, step_info=None): positions = posList.astype(np.float) values = [[tp] for tp in positions] - s = ScanSimple([adjustable],values,self._default_counters,file_name,Npulses=N_pulses,basepath=self.data_base_dir,scan_info_dir=self.scan_info_dir,checker=self.checker,scan_directories=self._scan_directories) + s = ScanSimple([adjustable], values, self._default_counters, file_name, Npulses=N_pulses, basepath=self.data_base_dir, scan_info_dir=self.scan_info_dir, checker=self.checker, scan_directories=self._scan_directories) if start_immediately: s.scanAll(step_info=step_info) return s + diff --git a/slic/scans/scansimple.py b/slic/scans/scansimple.py index 8a9d6ec00..349f8fb85 100644 --- a/slic/scans/scansimple.py +++ b/slic/scans/scansimple.py @@ -4,7 +4,8 @@ import traceback class ScanSimple: - def __init__(self,adjustables,values,counterCallers,fina,Npulses=100,basepath='',scan_info_dir='',checker=None,scan_directories=False): + + def __init__(self, adjustables, values, counterCallers, fina, Npulses=100, basepath="", scan_info_dir="", checker=None, scan_directories=False): self.Nsteps = len(values) self.pulses_per_step = Npulses self.adjustables = adjustables @@ -17,47 +18,47 @@ class ScanSimple: self.basepath = basepath self.scan_info_dir = scan_info_dir self.scan_info = { - 'scan_parameters': { - 'name': [ta.name for ta in adjustables], - 'Id': [ta.Id for ta in adjustables] + "scan_parameters": { + "name": [ta.name for ta in adjustables], + "Id": [ta.Id for ta in adjustables] }, - 'scan_values_all': values, - 'scan_values': [], - 'scan_readbacks': [], - 'scan_files': [], - 'scan_step_info': [] + "scan_values_all": values, + "scan_values": [], + "scan_readbacks": [], + "scan_files": [], + "scan_step_info": [] } - self.scan_info_filename = os.path.join(self.scan_info_dir,fina) - self.scan_info_filename += '_scan_info.json' + self.scan_info_filename = os.path.join(self.scan_info_dir, fina) + self.scan_info_filename += "_scan_info.json" self._scan_directories = scan_directories self.checker = checker self.initial_values = [] for adj in self.adjustables: tv = adj.get_current_value() self.initial_values.append(adj.get_current_value()) - print('Initial value of %s : %g'%(adj.name,tv)) + print("Initial value of %s : %g" % (adj.name, tv)) - def get_filename(self,stepNo,Ndigits=4): - fina = os.path.join(self.basepath,self.fina) + def get_filename(self, stepNo, Ndigits=4): + fina = os.path.join(self.basepath, self.fina) if self._scan_directories: - fina = os.path.join(fina,self.fina) - fina += '_step%04d'%stepNo + fina = os.path.join(fina, self.fina) + fina += "_step%04d" % stepNo return fina - def doNextStep(self,step_info=None,verbose=True): + def doNextStep(self, step_info=None, verbose=True): if self.checker: while not self.checker.check(): - print('Condition checker is not happy, waiting for OK conditions.') + print("Condition checker is not happy, waiting for OK conditions.") self.checker.sleep() - if not len(self.values_todo)>0: + if not len(self.values_todo) > 0: return False values_step = self.values_todo[0] if verbose: - print('Starting scan step %d of %d'%(self.nextStep+1,len(self.values_todo)+len(self.values_done))) + print("Starting scan step %d of %d" % (self.nextStep + 1, len(self.values_todo) + len(self.values_done))) ms = [] fina = self.get_filename(self.nextStep) - for adj,tv in zip(self.adjustables,values_step): + for adj, tv in zip(self.adjustables, values_step): ms.append(adj.changeTo(tv)) for tm in ms: tm.wait() @@ -65,17 +66,18 @@ class ScanSimple: for adj in self.adjustables: readbacks_step.append(adj.get_current_value()) if verbose: - print('Moved variables, now starting acquisition') + print("Moved variables, now starting acquisition") filenames = [] acs = [] for ctr in self.counterCallers: - acq = ctr.acquire(file_name=fina,Npulses=self.pulses_per_step) + acq = ctr.acquire(file_name=fina, Npulses=self.pulses_per_step) filenames.extend(acq.file_names) acs.append(acq) for ta in acs: ta.wait() if verbose: - print('Done with acquisition') + print("Done with acquisition") + if self.checker: if not self.checker.check(): return True @@ -85,20 +87,20 @@ class ScanSimple: tstepinfo = step_info self.values_done.append(self.values_todo.pop(0)) self.readbacks.append(readbacks_step) - self.appendScanInfo(values_step,readbacks_step,step_files=filenames,step_info=tstepinfo) + self.appendScanInfo(values_step, readbacks_step, step_files=filenames, step_info=tstepinfo) self.writeScanInfo() - self.nextStep +=1 + self.nextStep += 1 return True - def appendScanInfo(self,values_step,readbacks_step,step_files=None,step_info=None): - self.scan_info['scan_values'].append(values_step) - self.scan_info['scan_readbacks'].append(readbacks_step) - self.scan_info['scan_files'].append(step_files) - self.scan_info['scan_step_info'].append(step_info) + def appendScanInfo(self, values_step, readbacks_step, step_files=None, step_info=None): + self.scan_info["scan_values"].append(values_step) + self.scan_info["scan_readbacks"].append(readbacks_step) + self.scan_info["scan_files"].append(step_files) + self.scan_info["scan_step_info"].append(step_info) def writeScanInfo(self): - with open(self.scan_info_filename,'w') as f: - json.dump(self.scan_info,f,indent=4,sort_keys=True) + with open(self.scan_info_filename, "w") as f: + json.dump(self.scan_info, f, indent=4, sort_keys=True) def scanAll(self, step_info=None): done = False @@ -114,8 +116,9 @@ class ScanSimple: def changeToInitialValues(self): c = [] - for adj,iv in zip(self.adjustables,self.initial_values): + for adj, iv in zip(self.adjustables, self.initial_values): c.append(adj.changeTo(iv)) return c +