bluesky / databroker

Unified API pulling data from multiple sources
https://blueskyproject.io/databroker
BSD 3-Clause "New" or "Revised" License
33 stars 45 forks source link

Fixed definition of xarray dimensionality during build configuration #793

Closed jmaruland closed 7 months ago

jmaruland commented 7 months ago

This PR fixes an error identified while trying to read an array inside an xarray.Dataset with a dimension size greater that 2

Description

This error was identified and tracked while trying to read some data from BlueSky runs for the Data Security project at SRX.

Motivation and Context

It was identified that thexs_flour array was returning an error while data was requested through the ,read() method in its parent node. This means that these two examples were failing:

c['srx']['raw'][152589]['stream0']['data'].read()
c['srx']['raw'][152589]['stream0']['data'].read('xs_fluor')

Initially, it was thought the problem was on the client side but the error was tracked all the way to the server side and it was identified that the error was being saved with the document at the moment this one was built. It was also identified that part of this error is generated during the definition of some area detectors in a different repo (https://github.com/NSLS-II/nslsii/blob/master/nslsii/areadetector/xspress3.py#L139-L143) The changes in this PR solve this conflict by making the definition of the xarray dimensions more robust but it is recommended to fix the original problem in this second repo.