From 43aa84ac0e181a09b124fbd42ff2e115b426c3fa Mon Sep 17 00:00:00 2001 From: x12sa Date: Wed, 16 Sep 2026 11:40:29 +0200 Subject: [PATCH] docs(omny): note that scilog_last_ptycho_scans still needs porting flomni and LamNI both have scilog_last_ptycho_scans plus its projection-timing-log infrastructure; OMNY has neither, only the older per-subtomo write_to_scilog/_write_subtomo_to_scilog. Flag it as a TODO (same style as the existing filter/eye-check and tomo_reconstruct TODOs in this folder) so it isn't lost, and note that the step-size field just added to flomni/lamni's version should be included from the start when this gets ported. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01CpPtD7tCRwRZZnREhWcJi8 --- .../AI_docs/TODO_scilog_last_ptycho_scans.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 csaxs_bec/bec_ipython_client/plugins/omny/AI_docs/TODO_scilog_last_ptycho_scans.md diff --git a/csaxs_bec/bec_ipython_client/plugins/omny/AI_docs/TODO_scilog_last_ptycho_scans.md b/csaxs_bec/bec_ipython_client/plugins/omny/AI_docs/TODO_scilog_last_ptycho_scans.md new file mode 100644 index 00000000..abf0ad76 --- /dev/null +++ b/csaxs_bec/bec_ipython_client/plugins/omny/AI_docs/TODO_scilog_last_ptycho_scans.md @@ -0,0 +1,44 @@ +# TODO: OMNY is missing the scilog_last_ptycho_scans command (and its timing-log infrastructure) that flomni/LamNI have + +Found while adding a step-size field to flomni's and LamNI's +`scilog_last_ptycho_scans` per-scan summary line (branch +`fixes/flomni_beamtime_2`). OMNY has no equivalent at all, not even the +older/pre-step-size version — porting it is a bigger job than the two-line +fixes just made to flomni/lamni, so it's flagged here instead of attempted +opportunistically. + +## 1. scilog_last_ptycho_scans + timing-log infrastructure (new feature, not yet on OMNY at all) + +flomni (`flomni.py`) and LamNI (`lamni.py`) both have a full +timing-instrumented pipeline behind `scilog_last_ptycho_scans(number_of_scans=1)`: + +- `_TIMING_LOG_DIR`/`_PROJECTION_TIMING_LOG` — an append-only JSONL log of + per-projection timing records, one written per completed projection via + `_log_projection_timing(...)` (flomni.py:3180, lamni.py:966), called from + each setup's per-angle tomo-scan loop (flomni.py:2578/3502, lamni.py:1611). +- `_read_last_timing_records(number_of_scans)` (flomni.py:3265, lamni.py:1051) + — reads back the last N records from that log. +- `scilog_last_ptycho_scans(number_of_scans=1)` (flomni.py:3291, lamni.py:1077) + — prompts for a free-text comment, builds one summary line per record (scan + number(s), FOV, step size, exposure, duration), and sends it via each + setup's tolerant scilog-write helper (`Flomni._scilog_write`, flomni.py:2993; + `LamNI.write_to_scilog`, lamni.py:928). + +OMNY (`omny.py`) only has the much older `write_to_scilog(content, tags=None)` +(omny.py:855) and `_write_subtomo_to_scilog(subtomo_number)` (omny.py:916) — a +per-subtomo one-liner, not a "last N scans" summary command — and no timing +log, no duration measurement, and no `scilog_last_ptycho_scans` at all. +`OMNY.tomo_scan()`/`_tomo_scan_at_angle()` (omny.py:1005/966) would be the +natural hook point for a `_log_projection_timing`-style call, mirroring where +flomni/lamni call theirs. + +Porting this means: adding the timing-log write call to OMNY's per-angle +loop, then copying `_read_last_timing_records`/`scilog_last_ptycho_scans` +across (with OMNY-specific field names in place of `fovx`/`fovy` or +`lamni_piezo_range_x`/`y` — whatever OMNY's equivalent scan-size parameter is +called). Remember to include the `step {value} um` field in the per-scan +line from the start (already added to flomni's and lamni's versions, keyed +off `tomo_shellstep`) rather than needing a second follow-up fix like this +one. + +Not scoped/designed further here — just flagging it so it isn't lost.