Skip to content

[IMG243] reconstruction wizard prototype with holoviz stack

Zhang, Chen requested to merge panel_wizard_dev into next

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, install jupyterlab with conda install jupyterlab
  • install imars3d with pip 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 by wizard 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.

Merge request reports