-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to specify per-shot wavelength #667
Comments
On 24/05/2019 18:36, Aaron S. Brewster wrote:
At XFELs, each shot has a different wavelength. How can we specify
this in NeXus? Looking the DIALS code that reads NeXus data, we are
assuming that if incident_wavelength is an array, than each entry in
that array is a wavelength for a different shot. 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."
So what's the right way to do this?
Nice question. I would assume that one can always play the [n_points,
whatever] trick and treat a shape [1, n_wavelengths] as identical to a
shape [n_wavelengths].
In your case incident_wavelength could have the shape [n_shots,
n_wavelengths] however if each shot has different number of wavelengths
I'm lost.
This is my point of view and not an authoritative answer. Other opinions
welcome.
|
Follow the example of NXcanSAS. Look at |
Existing keys in NXmx:
CodeCamp proposal: Modify these to have extra dimensionality to support per-shot wavelength. 4 use cases (n: number of shots, m: number of wavelengths in a spectrum):
Additional proposal: deprecate incident_wavelength_spectrum. This field was part of the original NXmx spec, but has no doc string and it's unclear if it's been used before. |
From further discussion at CodeCamp 2020, the above proposal is replaced with the incoming pull request that insteads adds extra dimensionality to incident_wavelength, deprecates incident_wavelength_weight and incident_wavelength_spectrum, and adds incident_wavelength_axes to specify the axes names for incident_wavelength. |
There is no reason to deprecate incident_wavelength_weight or
incident_wavelength_spectrum at this time. First we need
the agreed new presentation with worked examples. Then we need to put it
in use for a while. Once it is successfully in use
and we are sure mapping from old use cases to the new one is working well,
then we should consider deprecating
the use cases that are no longer being used. I suspect the simple
synchrotron case of a few discrete wavelengths
with stable relative weights would continue to best be served by an
incident_wavelength array and incident_wavelength_weight array, but time
will tell.
…On Wed, Jan 22, 2020 at 12:34 PM Aaron S. Brewster ***@***.***> wrote:
From further discussion at CodeCamp 2020, the above proposal is replaced
with the incoming pull request that insteads adds extra dimensionality to
incident_wavelength, deprecates incident_wavelength_weight and
incident_wavelength_spectrum, and adds incident_wavelength_axes to specify
the axes names for incident_wavelength.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#667?email_source=notifications&email_token=ABB6EAKSXQT5OUMQI3BNDJ3Q7B7T5A5CNFSM4HPRBGD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJUOHVY#issuecomment-577299415>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABB6EALVTZGOICJPHARK4NLQ7B7T5ANCNFSM4HPRBGDQ>
.
|
Thanks Herbert, I un-deprecated them, but I noted incident_wavelength_weight limited to 1D (single spectrum only) and clarified the language around the rest of the spec. #706 is ready for review again. |
New pull request (better!) in #717. |
At XFELs, each shot has a different wavelength. How can we specify this in NeXus? Looking the DIALS code that reads NeXus data, we are assuming that if incident_wavelength is an array, than each entry in that array is a wavelength for a different shot. 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."
So what's the right way to do this?
Current problems in the documentation:
http://download.nexusformat.org/doc/html/classes/applications/NXmx.html
http://download.nexusformat.org/doc/html/classes/base_classes/NXbeam.html
I think I could specify per-shot wavelength using the NXdata field of NXbeam or using incident_wavelength_spectrum, but the latter seems wrong since I'm not recording a spectrum.
Thoughts?
The text was updated successfully, but these errors were encountered: