Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 'snaking' toggle to axes of grid_scan_wp/other acquisitions #48

Open
DLafayetteII opened this issue Mar 1, 2023 · 5 comments
Open
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@DLafayetteII
Copy link
Contributor

DLafayetteII commented Mar 1, 2023

I see in the start.json that my grid_scan_wp acquisitions have a snaking attribute for each scanned variable. It appears that toggling the snaking attribute is not available through the GUI. Can this checkbox be added to the interface for each axis of grid_scan_wp ?

Motivation: I have recently been manually queuing scans that are slices of what could be a 2D scan, in order to snake one of my axes. I snake to 1) save time with slow motors, and 2) randomize some of the slow noise by sampling the space in opposing directions.

@DLafayetteII DLafayetteII added enhancement New feature or request help wanted Extra attention is needed labels Mar 1, 2023
@ddkohler
Copy link
Contributor

ddkohler commented Mar 1, 2023

While we wait for the gui to be updated, consider using a script to call the bluesky plan e.g.
https://github.com/wright-group/wright-plans
(check out the readme to get started)
You can just pass snaking as an argument in the script call to the plan.

@ksunden
Copy link
Member

ksunden commented Mar 1, 2023

Note that some updates may be necessary to the wt5 writer as well to get the data in the expected grid.

In the shorter term, this can be done as a post processing step, as the data is all there and underlying bluesky will correctly manage the actual motor motion.

It's also possible I thought this far ahead when originally writing the wt5 writer and it just works, but something to watch for

@ksunden
Copy link
Member

ksunden commented Mar 1, 2023

Are you interested in the simpler case of it's a Boolean toggle for all snaking, or the more flexible but requires more thought option for each axis individually?

@DLafayetteII
Copy link
Contributor Author

I assumed we would already support the individual assignment since I see that snaking = ['False', 'False']. Individual assignment better for its flexibility (like when one motor has severe backlash and slow correction), but my current use I would snake both axes, so one Boolean would be great.

@ksunden
Copy link
Member

ksunden commented Mar 1, 2023

The underlying mechanism supports both, but it is more complicated UI to add (not impossible, or even overly hard, just requires more thought and effort than adding a boolean checkbox, which is pretty trivial)

Note that snaking only actually matters for inner axes, so for a 2D scan, there is no difference in behavior between a checkbox and a multiselect, it only matters for 3D+.

It's also possible to get the best of both worlds by doing something like:

  • Snake all (check checks all, uncheck unchecks all, third state for mixed, collapsible section)
    • Snake outer axis (greyed out because it is nonsense)
    • snake inner axis 1
    • snake inner axis 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants