fix angle reversal at start with start angle pecified
All checks were successful
CI for csaxs_bec / test (push) Successful in 1m59s

This commit is contained in:
x12sa
2026-03-17 14:42:52 +01:00
parent 58cd6bdaf7
commit dcde0e783e
2 changed files with 41 additions and 13 deletions

View File

@@ -1559,7 +1559,7 @@ class Flomni(
self._write_subtomo_to_scilog(subtomo_number)
if start_angle is not None:
print(f"Sub tomo scan with start angle {angle} requested.")
print(f"Sub tomo scan with start angle {start_angle} requested.")
if start_angle is None:
if subtomo_number == 1:
@@ -1582,16 +1582,35 @@ class Flomni(
# _tomo_shift_angles (potential global variable)
_tomo_shift_angles = 0
angle_end = start_angle + 180
angles = np.linspace(
start_angle + _tomo_shift_angles,
angle_end,
num=int(180 / self.tomo_angle_stepsize) + 1,
endpoint=True,
)
# reverse even sub-tomograms
if not (subtomo_number % 2):
angles = np.flip(angles)
# compute number of projections
N = int(180 / self.tomo_angle_stepsize) + 1
start = start_angle + _tomo_shift_angles
if subtomo_number % 2: # odd subtomos → forward direction
# clamp end angle to max allowed
max_allowed_angle = 180.05 + self.tomo_angle_stepsize
proposed_end = start + 180
angle_end = min(proposed_end, max_allowed_angle)
angles = np.linspace(
start,
angle_end,
num=N,
endpoint=True,
)
else: # even subtomos → reverse direction
# go FROM start_angle down toward 0
min_allowed_angle = 0
proposed_end = start - 180
angle_end = max(proposed_end, min_allowed_angle)
angles = np.linspace(
start,
angle_end,
num=N,
endpoint=True,
)
for angle in angles:
self.progress["subtomo"] = subtomo_number
self.progress["subtomo_projection"] = np.where(angles == angle)[0][0]
@@ -1866,7 +1885,7 @@ class Flomni(
def _write_tomo_scan_number(self, scan_number: int, angle: float, subtomo_number: int) -> None:
tomo_scan_numbers_file = os.path.expanduser(
"~/tomography_scannumbers.txt"
"~/data/raw/logs/tomography_scannumbers.txt"
)
with open(tomo_scan_numbers_file, "a+") as out_file:
# pylint: disable=undefined-variable

View File

@@ -210,7 +210,16 @@ class flomniGuiTools:
main_progress_ring.set_value(progress)
subtomo_progress_ring.set_value(subtomo_progress)
text = f"Progress report:\n Tomo type: {self.progress['tomo_type']}\n Projection: {self.progress['projection']:.0f}\n Total projections expected {self.progress['total_projections']}\n Angle: {self.progress['angle']}\n Current subtomo: {self.progress['subtomo']}\n Current projection within subtomo: {self.progress['subtomo_projection']}\n Total projections per subtomo: {int(self.progress['subtomo_total_projections'])}"
text = (
f"Progress report:\n"
f" Tomo type: {self.progress['tomo_type']}\n"
f" Projection: {self.progress['projection']:.0f}\n"
f" Total projections expected {self.progress['total_projections']:.1f}\n"
f" Angle: {self.progress['angle']:.1f}\n"
f" Current subtomo: {self.progress['subtomo']}\n"
f" Current projection within subtomo: {self.progress['subtomo_projection']}\n"
f" Total projections per subtomo: {int(self.progress['subtomo_total_projections'])}"
)
self.progressbar.set_center_label(text)