Skip to content

feat: motor stacking, auto-exclude, refined stitching#98

Open
FIrgolitsch wants to merge 3 commits intopr-a-build-toolingfrom
pr-e-motor-stacking
Open

feat: motor stacking, auto-exclude, refined stitching#98
FIrgolitsch wants to merge 3 commits intopr-a-build-toolingfrom
pr-e-motor-stacking

Conversation

@FIrgolitsch
Copy link
Copy Markdown
Contributor

@FIrgolitsch FIrgolitsch commented Apr 1, 2026

PR #98 — Motor Stacking & Refined Stitching

Adds motor-based slice stacking and the refined 3D stitching used by the new reconstruction workflow. Two commits: initial feature drop and a follow-up that smooths drift, adds a per-slice reliability flag, and tightens the auto-exclude logic.

New library modules

  • linumpy/stitching/motor.py — motor-only stacking. Adds a transform_source column (motor / registered / motor+refined), a per-slice reliable flag, drift smoothing (bounded low-pass on cumulative motor z), and drift / sigma limits used to gate auto-exclude.
  • linumpy/stitching/stacking.py — enhanced stacking with confidence gating, z-consistency enforcement between neighbouring slice pairs, and configurable drift limits.

New scripts

  • linum_stack_motor_only.py — motor-only stacking CLI
  • linum_stack_slices_motor.py — motor-first stacking with optional registration refinement, drift smoothing, rehoming-aware reset (consumes linum_detect_rehoming output from PR feat: utility modules, preprocessing improvements, galvo correction #97)
  • linum_stitch_motor_only.py — motor-only stitch driver
  • linum_stitch_3d_refined.py — refined 3D stitching (motor + registration + z-consistency)
  • linum_auto_exclude_slices.py — automatic slice exclusion based on drift / sigma / reliability

Updated scripts

  • linum_stack_slices_3d.py, linum_stack_slices.py, linum_stitch_3d.py — integrated with the new modules
  • linum_align_mosaics_3d_from_shifts.py — consumes the new transform_source column

Tests

  • linumpy/tests/test_stitching_motor.py, test_stitching_stacking.py

Dependencies

@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch from c3092e2 to a82b899 Compare April 17, 2026 22:07
@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch 2 times, most recently from 7a4c344 to 24fa7d7 Compare April 17, 2026 22:15
@FIrgolitsch FIrgolitsch changed the base branch from main to pr-c-utility-preprocessing April 17, 2026 22:22
@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch from 24fa7d7 to dc806fe Compare April 23, 2026 19:43
@FIrgolitsch FIrgolitsch changed the base branch from pr-c-utility-preprocessing to pr-a-build-tooling April 23, 2026 19:57
@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch from dc806fe to 8f1637e Compare April 23, 2026 21:09
@FIrgolitsch FIrgolitsch force-pushed the pr-a-build-tooling branch 2 times, most recently from 82b44be to ce8e35d Compare April 23, 2026 21:23
@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch from 8f1637e to 7a4dd66 Compare April 23, 2026 21:23
@FIrgolitsch FIrgolitsch force-pushed the pr-e-motor-stacking branch from 7a4dd66 to e939493 Compare April 23, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant