Loading pysen/inout/scans.py +19 −15 Original line number Diff line number Diff line Loading @@ -175,36 +175,40 @@ class EchoScan(BaseScan): self.info['base'], t, len(p), nphases) return ntaus, nphases def get_phase_step(self, phase_step, max_delta=1.0): def get_phase_step(self, npha): "get average phase step and round it to a degree" phasesens = self.info.get('phasesens') nphases = self.info.get('nphases') act_phase_step = [] for tau in self.data.values(): phases = np.asarray([ _pha['phase'] for _pha in tau ]) phases = phases[:nphases] dpha = phases[1:]-phases[:-1] act_phase_step.append(list(dpha*phasesens)) phases = phases[:npha] dpha = (phases[1:]-phases[:-1])*phasesens act_phase_step.extend(dpha) act_phase_step = np.asarray(act_phase_step) avg_phase_step = np.average(act_phase_step) avg_phase_step = round(avg_phase_step,0) if phase_step is None: self.log.debug("get_phase_step: actual %s", act_phase_step) self.log.debug("get_phase_step: average %s", avg_phase_step) return avg_phase_step if abs(avg_phase_step-phase_step)>max_delta: self.log.warning("%s: used phase step %g (deg), but actual is %g (deg)", self.info['base'], phase_step, avg_phase_step) return phase_step def read_nexus(self, nxsfile, **kwargs): """read nexus file""" phase_step = kwargs.pop('phase_step', None) max_delta = kwargs.pop('max_delta', 1.0) if not super().read_nexus(nxsfile, scan_type='echo', **kwargs): return False ntaus, nphases = self.get_taus_and_phases() avg_step = self.get_phase_step(nphases) if phase_step is None: phase_step = round(avg_step,0) else: if abs(avg_step-phase_step)>max_delta: self.log.warning("%s: used phase step %g (deg), but actual is %g (deg)", self.info['base'], phase_step, avg_step) self.info['nphases'] = nphases self.info['phase_step'] = self.get_phase_step(phase_step) self.info['phase_step'] = phase_step # post processing self.log.info('%s: found %s tau(s), %d phases/tau, phase_step=%g (deg)', self.info['base'], ntaus, nphases, self.info['phase_step']) Loading pysen/revision.py +2 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,8 @@ PySEN revision module """ import sys __version__ = "2.0" __release__ = "b8" __date__ = "Feb 24, 2025" __release__ = "b9" __date__ = "Feb 29, 2025" def version(full=False): "get pysen version number" Loading Loading
pysen/inout/scans.py +19 −15 Original line number Diff line number Diff line Loading @@ -175,36 +175,40 @@ class EchoScan(BaseScan): self.info['base'], t, len(p), nphases) return ntaus, nphases def get_phase_step(self, phase_step, max_delta=1.0): def get_phase_step(self, npha): "get average phase step and round it to a degree" phasesens = self.info.get('phasesens') nphases = self.info.get('nphases') act_phase_step = [] for tau in self.data.values(): phases = np.asarray([ _pha['phase'] for _pha in tau ]) phases = phases[:nphases] dpha = phases[1:]-phases[:-1] act_phase_step.append(list(dpha*phasesens)) phases = phases[:npha] dpha = (phases[1:]-phases[:-1])*phasesens act_phase_step.extend(dpha) act_phase_step = np.asarray(act_phase_step) avg_phase_step = np.average(act_phase_step) avg_phase_step = round(avg_phase_step,0) if phase_step is None: self.log.debug("get_phase_step: actual %s", act_phase_step) self.log.debug("get_phase_step: average %s", avg_phase_step) return avg_phase_step if abs(avg_phase_step-phase_step)>max_delta: self.log.warning("%s: used phase step %g (deg), but actual is %g (deg)", self.info['base'], phase_step, avg_phase_step) return phase_step def read_nexus(self, nxsfile, **kwargs): """read nexus file""" phase_step = kwargs.pop('phase_step', None) max_delta = kwargs.pop('max_delta', 1.0) if not super().read_nexus(nxsfile, scan_type='echo', **kwargs): return False ntaus, nphases = self.get_taus_and_phases() avg_step = self.get_phase_step(nphases) if phase_step is None: phase_step = round(avg_step,0) else: if abs(avg_step-phase_step)>max_delta: self.log.warning("%s: used phase step %g (deg), but actual is %g (deg)", self.info['base'], phase_step, avg_step) self.info['nphases'] = nphases self.info['phase_step'] = self.get_phase_step(phase_step) self.info['phase_step'] = phase_step # post processing self.log.info('%s: found %s tau(s), %d phases/tau, phase_step=%g (deg)', self.info['base'], ntaus, nphases, self.info['phase_step']) Loading
pysen/revision.py +2 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,8 @@ PySEN revision module """ import sys __version__ = "2.0" __release__ = "b8" __date__ = "Feb 24, 2025" __release__ = "b9" __date__ = "Feb 29, 2025" def version(full=False): "get pysen version number" Loading