[IMG243] reconstruction wizard prototype with holoviz stack
This PR introduces prototype widgets that provide interactive reconstruction with iMars3Dv2, along with minor bug fixes for rotation and tilt filter.
How to test
- create a clean conda environment with
conda env create -n imars3d-dev -f conda_environment.yml - install dev dependencies with
conda env update -n imars3d-dev -f conda_development.yml- if testing with
Jupyter, installjupyterlabwithconda install jupyterlab
- if testing with
- install
imars3dwithpip install -e , - To test the web app, use
panel serve pipelinedemo.pyat the repo root, then click on the link - To test the jupyter widget, create a new notebook and type
%run pipelinedemo.py, followed bywizardto start the pipeline widget inside a new cell.
Known issue
- the HFIR and SNS mount must be visible from the testing machine
- alternatively the search path must be modified so that the first page (metadata) can find the downloaded raw data
- the interactive widget based on holoview can slow to response, especially when the input data is large
- the numpy data array are copied between different steps within the pipeline, increasing total memory usage
- the following filters can lead to 100% CPU usage indefinitely, most likely due to multi-threading issues from either jupyter, holoviz or both.
- denoise: bilateral method
- tilt correction
- the tilt correction widget will require additional work
- a lot of code duplication among widgets, therefore subsequent refactoring is necessary
- no auto tests are provided for the widgets, only manual tests at the moment
- using all correction filters will lead to incorrect reconstruction results, most likely due to incompatibility of the input args and the testing data
IPTS-25777, ironman.