DiamondLightSource / DiamondLightSource/mx-bluesky
Record readback x,y,z values of panda gridscans in nexus
- Dominant language
- Python
- Stars
- 4
- Forks
- 5
- Avg merge
- 1d 30m
- Merged PRs (30d)
- 2
Description
Following the panda gridscans we will end up with an hdf file of motor positions. We should put these into the nexus file for downstream applications to potentially use.
Following discussion on https://diamondlightsource.slack.com/archives/G017HTC55M1/p1729861842852669 the following format was decided upon:
* The current `/entry/sample/transformations/sam_{x,y,z}` are changed to instead contain readback values as VDS links from the panda hdf files
* The angle transforms are kept the same as we do not record readbacks for these
* The `depends_on` chain for `sam_{x,y,z}` is unchanged (which means `sam_z` depends on `omega`, which is actually still setpoints but that's fine)
* We add in a new transformation for each of `sam_{x,y,z}_set` next to the readbacks that holds what we were previously writing
* The new transformations will have the same attributes except they will follow a `depends_on` hierarchy based on `{x,y,z}_set`s (except `sam_z` as this will still depend on `omega`, which will have setpoints in)
* We add a variant (https://manual.nexusformat.org/datarules.html#variants) on `sam{x,y,z}` linking to `@variant=sam{x,y,z}_set`
Note that the data coming out of the panda may currently be in encoder counts but we want it in `um`. Ideally this conversion should be done in the panda when it is writing the data out
## Acceptance Criteria
- Panda readback data is put into the nexus file in the above format
- There are tests on this
Contributor guide
Assessment
This issue has not been assessed yet.