docs(omny): note unconditional 0-deg reference projection follow-up
CI for csaxs_bec / test (push) Successful in 2m19s
CI for csaxs_bec / test (push) Successful in 2m19s
Not implemented for omny yet -- captures the same feature just added to Flomni/LamNI so the intent isn't lost. Omny still needs its own retraction- capability check and tomo_scan() entry point located before this can land. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132KBoxsovfcMNRGJhS1Pbw
This commit is contained in:
1 parent
0a12d4892f
commit
306b93cc07
1 file changed
+40
+40
@@ -0,0 +1,40 @@
|
||||
# TODO: unconditional 0-degree reference projection at tomogram start
|
||||
|
||||
Status: **not implemented for omny.** Discussed 2026-09-19; implemented for
|
||||
Flomni and LamNI the same day (see their `tomo_scan()` in `flomni.py`/
|
||||
`lamni.py` — search for "Unconditional single 0-degree reference
|
||||
projection").
|
||||
|
||||
## What was implemented elsewhere
|
||||
|
||||
At the very start of a new tomogram (not on resume), both Flomni and LamNI
|
||||
now unconditionally take one real 0-degree projection — `self._tomo_scan_at_angle(0, 1)`
|
||||
— independent of the `zero_deg_reference_at_each_subtomo` /
|
||||
`golden_projections_at_0_deg_for_damage_estimation` flags. It's real data
|
||||
(included in reconstruction, logged under `subtomo_number=1`), not a
|
||||
reference-only/flat-field frame — this was an explicit choice: the point is
|
||||
an immediate radiation-damage baseline that exists even when the periodic
|
||||
damage-estimation flags are off, not a normalization frame.
|
||||
|
||||
Flomni additionally takes 10 flat-field/empty frames at 0° before this
|
||||
(`collect_empty_frames()` — sample retracted out of the beam via `fsamx`
|
||||
shifted by `fovx/2`, excluded from reconstruction). **LamNI does not get an
|
||||
equivalent** — confirmed 2026-09-19 that LamNI has no way to retract the
|
||||
sample out of the beam at all, so only the 0-degree projection was added
|
||||
there, no flat-field step.
|
||||
|
||||
## What's needed for omny
|
||||
|
||||
1. **Confirm whether omny can retract the sample out of the beam at all**
|
||||
(same open question as LamNI, not yet checked for omny specifically) —
|
||||
determines whether an empty-frames/flat-field step is even possible here,
|
||||
or whether omny should only get the 0-degree-projection part like LamNI.
|
||||
2. Locate omny's `tomo_scan()` equivalent (or whatever its tomogram-start
|
||||
entry point is) and its own `_tomo_scan_at_angle`-equivalent method, and
|
||||
add the same unconditional call in its "new scan" branch, following the
|
||||
same placement pattern used in `flomni.py`/`lamni.py`.
|
||||
3. Decide the logged `subtomo_number` / whether omny's tomo-type numbering
|
||||
matches flomni/lamni's convention closely enough to reuse `1` directly.
|
||||
|
||||
Not investigated yet — this note exists so the intent isn't lost, not
|
||||
because the omny-side work has been scoped in detail.
|
||||
Reference in new issue
Block a user