Resolve "Implement data stitching"
Going to do my best to document everything here. This adds a demo curve stitching tool for use after running a reduction workflow. The following changes/features are included.
- Addition of drtsans to the project for performing in-place stitching.
- New "Stitching" tab that becomes available after a reduction has succeeded.
- User can plot output 1D data and select overlap intervals directly from those plots via the mouse pointer. A new area can be selected by dragging outside of the existing selection (red box). The selected area can be translated by dragging inside of the existing selection. The selected area can be resized with the mouse wheel. If more precise control over the interval is desired, the user should use the text boxes below each chart to set exact values.
- User can select different Q-ranges to stitch. They can also provide a path to a file with data, though without any way to autocomplete/help a user select paths this isn't very useful for now (it should work, though, if you have the file locally and give the full path to it).
- User can select which axes are log-scale. This is using Vega's symlog to handle negative values.
- User can see the newly stitched curve below the overlap selectors.
- User can send the stitched curve to Galaxy by clicking the button the stitched curve.
This turned out to be a lot of work, it's basically a separate tool trapped inside of the SANS GUI! I'm aware of the following issues, but would prefer to work on them in separate issues since I think I've already done way too much for a single issue here.
- If there are multiple samples in the reduction run, only the first one is supported for this tab.
- It's not exporting to the analysis cluster when syncing to Galaxy. This one at least should be quite easy to implement since we're already doing this in other places.
Anything else that is odd is probably a bug, so let me know!
Closes #21 (closed)