User Guide
There are 3 basic entry-points for imars3d
Command line interface
The backend can be invoked using the information in imars3d.backend
Autoreduction
Autoreduction is triggered by the data workflow system that powers https://monitor.sns.gov.
A simplified version of what happens, is that the system will run the python script using mantidpython wrapper to select a conda environment to activate (denoted in the script using CONDA_NAME
then run
/HFIR/CG1D/shared/autoreduce/reduce_CG1D.py /path/to/file /HFIR/CG1D/proposal/shared/autoreduce
The script will decide if the CT measurement is complete, and run autoreconstruction if appropriate.
reduce_CG1D.py
is stored in this repository, but needs to be copied into place by hand.
Jupyter notebook
Start a Jupyter notebook with the kernel that has imars3d
properly installed.
In the first cell, execute the following command to load the necessary extension.
import panel as pn
import holoview as hv
from imars3d.ui.main import MainWindow
pn.extension(
"vtk", # for the 3D viewer
"terminal", # or the console
"jsoneditor", # for config viewer
nthreads=0, # default to use infinite
notifications=True, # allow panel notification banner to pop-up
)
hv.extension("bokeh") # use default plotting backend bokeh
Wait for the kernel to return to idle (the extension loading time varies depending on the system). Then execute the following command to create the main window
main_window = MainWindow()
There are four ways to render the main window:
Direct render with
main_window
.Wrap app in a
panel
layout, i.e.pn.panel(main_window)
.Set the app to be servable, i.e.
main_window.servable()
.Start a bokeh server and render the app in a separate tab, i.e.
main_window.show()
.
For the last method, make sure you are allowed to use additional ports on the system to avoid access error.