diff --git a/src/instamatic/experiments/fast_adt/experiment.py b/src/instamatic/experiments/fast_adt/experiment.py index ea87ffb2..af642a1c 100644 --- a/src/instamatic/experiments/fast_adt/experiment.py +++ b/src/instamatic/experiments/fast_adt/experiment.py @@ -137,7 +137,9 @@ def buffer(self) -> list[tuple[int, np.ndarray, dict]]: @property def has_beamshifts(self) -> bool: - return {'beamshift_x', 'beamshift_y'}.issubset(self.table.columns) + columns = ['beamshift_x', 'beamshift_y'] + columns_exist = set(columns).issubset(self.table.columns) + return columns_exist and not self.table[columns].isna().any().any() @property def osc_angle(self) -> float: @@ -497,6 +499,8 @@ def pathing_save_to_files(self) -> None: def collect_run(self, run: Run) -> None: """Collect `run.steps` and place them in `self.steps` Queue.""" + if run.has_beamshifts: + self.ctrl.beamshift.set(*run.table[['beamshift_x', 'beamshift_y']].iloc[0]) with self.ctrl.beam.unblanked(delay=0.2): if run.continuous: self._collect_scans(run=run)