cctbx / dxtbx

Diffraction Experiment Toolbox
BSD 3-Clause "New" or "Revised" License
2 stars 18 forks source link

nexus.py uses incident_wavelength incorrectly #31

Open phyy-nx opened 5 years ago

phyy-nx commented 5 years ago

Our code for reading NeXus files looks at incident_wavelength and if it's array, assumes that each value corresponds to a different image: https://github.com/dials/dxtbx/blob/master/format/nexus.py#L933-L938

However, I think we are mis-interpreting incident_wavelength: http://download.nexusformat.org/doc/html/classes/applications/NXmx.html "In the case of a polychromatic beam this is an array of the wavelengths with the relative weights in incident_wavelength_weight."

I have an opened an issue in NeXus about how to specify a per-shot wavelength (nexusformat/definitions#667). In the meantime, do we have NeXus file created either for XFELs or for Eiger that use incident_wavelength as an array?

For XFELs the answer is no. We are using mean energies and specifying only one: https://github.com/cctbx/cctbx_project/blob/master/xfel/euxfel/agipd_cxigeom2nexus.py#L101 https://github.com/cctbx/cctbx_project/blob/master/xfel/swissfel/jf16m_cxigeom2nexus.py#L104 So for XFELs, however nexusformat/definitions#667 gets resolved, it won't affect existing files.

graeme-winter commented 5 years ago

In principle, data from VMXi[1] is polychromatic (i.e. pink beam from DMM) so we could in principle mock an example data set from there with some knowledge of the beam properties - I will give this a go and let you know.

[1] https://www.diamond.ac.uk/Instruments/Mx/VMXi.html

phyy-nx commented 4 years ago

Pull request to update NeXus to support spectra over time is in review now: nexusformat/definitions#706

phyy-nx commented 4 years ago

Update, the above pull request was redone as nexusformat/definitions#717 and is now merged. Ready to implement nexus.py to the new spec.

dagewa commented 1 year ago

@phyy-nx Is this still an issue, or can it be closed?