Skip to content
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

Polarized SANS metadata: refactor SaveNXcanSAS to support multiple variants of the algorithm #38503

Open
rbauststfc opened this issue Dec 12, 2024 · 0 comments
Assignees
Labels
ISIS Team: LSS Issue and pull requests managed by the LSS subteam at ISIS SANS Issues and pull requests related to SANS
Milestone

Comments

@rbauststfc
Copy link
Contributor

Part of #36147. See the design and requirements documents that are linked on that issue for more context.

To support saving of polarized SANS data we will need to save all of the metadata that we currently include in the NXcanSAS file, plus a fairly long list of additional metadata that is specific to polarized experiments. We could add additional parameters to the SaveNXcanSAS algorithm in order to achieve this, however this makes the algorithm less easy to use for scientists who are saving non-polarized SANS data. It is also not a sustainable approach for the long-term if more SANS techniques were added that required their own metadata. We have therefore agreed that we will add a new SavePolarizedNXcanSAS algorithm that will save the "standard" SANS NXcanSAS metadata plus the polarized SANS metadata.

In order to support this, we need to refactor SaveNXcanSAS into a design that meets the following requirements:

  • Ensure that the code that saves the "standard" SANS metadata is available to be used across multiple algorithms without any code duplication and in a way that is testable.
  • Linked to the above, updates to the "standard" SANS metadata should automatically apply to other NXcanSAS save algorithms without needing to update each of them individually.
  • Code for saving technique-specific metadata should still be structured in a way that allows it to be reused across other NXcanSAS save algorithms, just in case we have future techniques that need to mix and match from the available metadata.

I've put together an initial suggestion that could be considered, but I'm sure could be improved!

Possible SaveNXcanSAS refactor.docx

Note that this issue is purely for the refactor of SaveNXcanSAS. The implementation of the new SavePolarizedNXcanSAS will be done afterwards under a separate issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ISIS Team: LSS Issue and pull requests managed by the LSS subteam at ISIS SANS Issues and pull requests related to SANS
Projects
Status: Backlog
Status: Ready for Development
Development

No branches or pull requests

2 participants