[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
, installjupyterlab
withconda install jupyterlab
- if testing with
- install
imars3d
withpip install -e ,
- To test the web app, use
panel serve pipelinedemo.py
at the repo root, then click on the link - To test the jupyter widget, create a new notebook and type
%run pipelinedemo.py
, followed bywizard
to 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
.