You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Establish Single Point of Truth (SPOT) read/write rules between NeXus, DataCats, and Tiled. #389
Part of #373 Backend Integration/ Experiment Manifest / Post Collection Tagging/ Pocessed Data
Implement a standardized data hierarchy defining where data reads and writes occur among NeXus, DataCats, and Tile
Goals
Acceptance criteria : What journeys should the user be able to complete to consider your feature done
Be as specific as you can, check them off once they work. Add more if you find more requirements during development. Issue should only be considered done after all of them are checked
Unified Data Querying: The UI, analysis scripts, and workflows retrieve consistent, verified run metadata from a SPOT.
Tasks
base on the goals, deduce the tasks required. check them off once they're done
Caution
We need to know where to read raw data and where to write processed data including tagging.
Pipeline Standardization: Restructure data pipeline readers/writers around this standard
A NeXus writer is being developed that sits behind Tiled: you ask Tiled to write the NeXus file you want, rather than writing it directly (being developed by core).
Working assumption is that workflow and processing pipeline outputs also go through this NeXus writer. Until that exists, processing outputs are written to the dataset's HDF5 file. The same applies to data tagging.
Open questions
Coordinate frame and offset metadata: see the persistence note in Reference Frame Coordinate Transformations #379. What needs storing is a correction model plus its inputs at a point in time, not a single matrix, and we need to confirm whether Tiled holds that (likely).
Device readback for devices come from PVWS as in VISR
Data and images come from Tiled (data displayed via Davidia client, maybe images displayed by some other display, not yet evaluated).
If data transform needs to happen then there needs to be a layer that sits below or bolted onto the Davidia server which applies transform to data coming from Tiled - unknown needs to be evaluated.
Live data potentially coming from Tiled websocket through Davidia server/client? - unknown.
Processing status to come from Workflows websocket (not currently available on supergraph websocket).
Writing metadata (inc data tagging through nexus writer - currently being developed by Core).
1. Device readback for devices come from PVWS as in VISR
Not ViSR, but currently I15-1. We're using the package in the atlas monorepo for this, and getting readback for various things (synchrotron current, sample loaded on robot, hutch interlock status, etc.). This should be very easy to adopt into p99 by following the instructions & example in the README.
2. Data and images come from Tiled (data displayed via Davidia client, maybe images displayed by some other display, not yet evaluated).
I don't know if this has been accomplished yet, but I believe this is the intended behaviour for Tiled.
3. If data transform needs to happen then there needs to be a layer that sits below or bolted onto the Davidia server which applies transform to data coming from Tiled - unknown needs to be evaluated.
Yes, this should likely be the same "maths as a service" idea which serves all acquisition which needs it.
4. Live data potentially coming from Tiled websocket through Davidia server/client? - unknown.
Potentially similar to 2? Reliant on ensuring Tiled + Davidia is performant enough to handle serving live data quickly enough.
5. Processing status to come from Workflows websocket (not currently available on supergraph websocket).
This is correct, though is liable to change in the near future.
6. Writing metadata (inc data tagging through nexus writer - currently being developed by Core).
Yes, though I'm not sure of timescales for this. There has recently been active discussion on this in the athena-components slack channel.
Activity
DanPorter commentedon Sep 16, 2026
My current understanding is:
I have raised this in various forums multiple times and most recently with the architect, so will add more details as I find them out.
NKatti2011 commentedon Sep 16, 2026
Below include notes from meeting from @EmsArnold.
Decision
Mechanism
Open questions
NKatti2011 commentedon Sep 16, 2026
Recommended can you confirm @EmsArnold?:
EmsArnold commentedon Sep 16, 2026
Not ViSR, but currently I15-1. We're using the package in the atlas monorepo for this, and getting readback for various things (synchrotron current, sample loaded on robot, hutch interlock status, etc.). This should be very easy to adopt into p99 by following the instructions & example in the README.
I don't know if this has been accomplished yet, but I believe this is the intended behaviour for Tiled.
Yes, this should likely be the same "maths as a service" idea which serves all acquisition which needs it.
Potentially similar to 2? Reliant on ensuring Tiled + Davidia is performant enough to handle serving live data quickly enough.
This is correct, though is liable to change in the near future.
Yes, though I'm not sure of timescales for this. There has recently been active discussion on this in the athena-components slack channel.
NKatti2011 commentedon Sep 16, 2026
Thanks @EmsArnold for the clarity and info :)