Description of MX wedged and inverse beam scans
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by inspecting the LineGenerator, ArrayGenerator, ZipGenerator, and CompoundGenerator APIs and their existing tests or examples. Clarify the desired concise representation for wedged and inverse-beam scans, then define completion as generating the documented omega, x, and y sequences with tests covering both scan forms.
Written by the indexing model from the issue text.
Description
MX offers two main forms of "line" scan - Helical and Wedged.
Helical is straight forward, omega is continuously rotated while the sample stages move between positions.
E.g. scan axis values are:
x = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
y = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
omega = [0, 20, 40, 60, 80, 100]
xy_g = LineGenerator(['y', 'x'], 'mm', [0, 0], [1, 1], 6)
omega_g = LineGenerator('omega', 'deg', 0, 100 5)
g = ZipGenerator([xy_g, omega_g])
cg = CompoundGenerator([g], [], [])
Wedged is more tricky.
Omega performs part of its rotation and different x, y positions. That is, the full rotation is broken up into stages, performed at different points.
omega = [0, 10, 20, 30, 40, 50, 60, 70, 80]
x = [0, 0, 0, 1, 1, 1, 2, 2, 2]
y = [0, 0, 0, 1, 1, 1, 2, 2, 2]
The first wedge happens at "(0, 0)", the next part at "(1, 1)".
We don't have a good way of describing such scans. We could specify the full x, y arrays as an ArrayGenerator and zip them with omega, but that is inelegant, and far from concise.
MX also has the concept of Inverse Beam data collections:
omega = [0, 1, 2, 3, 4, 180, 181, 182, 183, 184, 5, 6, 7, 8, 9, 185, 186, 187, 188, 189, ...]
Here omega performs a full rotation, but again broken up into wedges that are "flipped" between a rotation started at 0 and a rotation started at 180.
- Dominant language
- Python
- Stars
- 6
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DiamondLightSource/scanpointgenerator
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
All issues in DiamondLightSource/scanpointgenerator
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
modelcontextprotocol/python-sdk#3648 ·
Maintainers usually reply within 1 day
-
docs good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
VenetoStato/giorgio#6 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 70/100
EclipseFdn/open-vsx.org#13831 ·
Maintainers usually reply within 1 day
-
feature request
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 2 days