HardMatter_Projects - SasView/sasview GitHub Wiki

SasView Hard Matter Project Plan - DRAFT

Contributor Camp XIV


Handle Qz properly (Roadmap section I and III)

  • Decide how to handle data that does not report Qz
    • Suggestion: first look for a wavelength in metada. If it exists, convert Qx Qy to Qx,Qy,Qz (only works for SS sources). If not assume Qz=0 but provide warning as appropriate.
  • Ensure data object caries Qz and sigma Qz
  • Make sasmodels accept Qz properly
  • Ensure that Data math properly handles Qz
  • For plotting in 2D, project Z back to zero (as already done effectively)
  • Work with plotting refactor team to provide tools for 3D plotting (below)

Fitting 1D cuts of Anisotropic Data (Roadmap Section I)

  • Agree on method. Recommended using existing 2D and fitting only to restricted q range? What about resolution issues? Will this be fast enough? Are there other methods?
  • Design work
  • Implement (may require touching every model that can show anistropic data and/or updating appropriate sasmodel kernels)

Upgrade Slicer functionality (Roadmap Section III)

  • Design discussion
  • Sascalc
    • Refactor manipulations.py
    • Add ROI statistics class (sum, average, other?)
    • Add ROI centroid calculator, including peak intensity
    • export peak intensities in a standard format
  • GUI
    • Add “base class” for multiple ROI selection
    • Possible light refactoring?
    • Batch processing:
      • Discuss/design workflows
      • Design implementation to work with existing slicer batch processor
      • Implement

Upgrade Data Math (Roadmap Section III)

  • Decide elements: add/sub/mul/div of 2 data sets or 1 data set and one scalar.
  • Decide how to handle 2 data sets where qs are not identical
  • Define how to build more extensive math by easy combination of above.
  • qx,qy,qz to hkl conversion - probably a new module?
  • Implement

Create SAND perspective (Roadmap Section III)

  • Initial Design
  • Create sasgui perspective
    • Implement design
    • Implement Parametric plotting which will need to interact with:
      • Math
      • New data objects with metadata
      • Sasmodels for peaks?
      • Slicers *New plotting
  • Create sascalc perspective
    • Implement design

Visualization upgrades (Roadmap Section III)

  • Work with plotting refactor group
  • Add a few smoothing options to 2D plot options (Matplotlib has several built in)
  • Define other plotting options needed and implement
  • Determine how to add 3D visualization. Matplotlib has the capability but is not fast?
  • Produce prototypes to test ideas
  • Parametric plotting (using trends?)
    • Access to metadata “axes”
    • Define “autonomous workflows” (what do they look like)

Polarized beam workflow (Roadmap Section I)

  • Design work to produce at camp
    • Storyboarding visuals for various use cases
    • Choice of entry - part of fitting? Or does it have to be a separate fitting perspective? Preferably not for sustainability but …
    • Outline of modules that need to be written or edited.

GSC refactor: simplify user interface and allow for easier extensions (Roadmap Section II) - Cross-domain project

  • Design work to produce at camp
    • What are the separation points? e.g. creating real space model vs calculations? different methods of calculating? different communities (e.g. proteins in solution vs colloid vs magnetic materials)? How would parameterization of real space models fit? etc
    • Storyboarding visuals for various use cases: how does the GUI and choices present to the user?
    • design standard interfaces (API) for the pieces to communicate
⚠️ **GitHub.com Fallback** ⚠️