The current Datastore implementation is based on numpy arrays. With the planned move to scipp, we should refactor Datastore to use scipp.DataGroup (and DataArray where appropriate).
Benefits:
- Native support for uncertainties and masks (useful for excluded regions)
- Cleaner grouping of related arrays (measured, calculated, background, etc.)
- Better consistency with other EasyScience components that are moving to scipp
This was touched on in #88 (review), but needs a dedicated discussion and design decision.
Open questions:
- Should we map each array (e.g., measured intensities) directly to DataArray entries in the DataGroup?
- Should recalculated fields (e.g., calculated intensities, background, d_spacing, etc.) also be stored in the DataGroup, or always computed on demand?
- Is the overall datastore.py structure (BaseDatastore, PowderDatastore, SingleCrystalDatastore) still sufficient, or do we anticipate larger design changes?
The current Datastore implementation is based on numpy arrays. With the planned move to scipp, we should refactor Datastore to use scipp.DataGroup (and DataArray where appropriate).
Benefits:
This was touched on in #88 (review), but needs a dedicated discussion and design decision.
Open questions: