Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

SAVU documentation is found here

Imaging data is stored as an H5 file

Automatic reconstruction

During your beamtime, a Savu process lists will be automatically run after each scan completes. This will usually be discussed with you during your beamtime.

Savu lists are usually stored in:

<visit folder>/xml/tomography/Savu

An example of the standard lists we use:

image-20240802-092219.png

Each list is named with each process that is being applied. for example

full_fd_rr_vo_pag_AST_tiff.nxs

will run:

  1. Full reconstruction

  2. Flat/Darkfield correction

  3. Ring removal

  4. Vo centering (Nghia Vo’s centering method)

  5. Paganin filter

  6. Astra reconstruction

  7. Output tiff files

The result of autoprocessing goes into the Processed folder and will look like:

image-20240802-092525.png

The result of the autoprocess will be named with Savu (indicating its a Savu process), the file name and the process list that was applied. The inside of this folder looks like:

image-20240802-092708.png

The nxs file will give you a simple way to visualise all the output data. If you prefer then the reconstructed data lives in the file with astra_recon_gpu.h5 or as individual tiffs in the folder labeled TiffSaver*.

The run_log folder contains some log files and a copy of the process list that was run.


Manual reconstruction

If you are not happy with your reconstructions you can always send them off manually with your own configured process lists. This guide is for manual reconstructions using Diamond workstations.

To load Savu on Wilson:

  1. Open terminal

  2. Config the process list to make sure you are happy. BL scientist may do this for you.

  3. To submit savu jobs to the cluster use:

ssh wilson
module load savu/4.2-slurm
savu_mpi <IN_FILE> <PROCESS_LIST> <OUT_FOLDER> -d <TMP_FOLDER> -p k11

This will leave you with a terminal that can submit savu jobs to DIAD’s nodes on the cluster.

To configure your SAVU process lists. In a new terminal

module load savu
// Will load savu in cwd and allow you to create processlists. You cannot submit to cluster using this module. 
// This should be done in a normal terminal, do not ssh into wilson

savu_config - i xxxxx.nxs 
// Where "xxxx.nxs" is the path of your process list (ie. 3x_fd_vo_AST_tiff.nxs). 
// This command will open up the savu config with this process list. 
// You can omit -i xxxx.nxs to open config with an empty list. You will then need to populate savu with each process

You can then use these commands to create and edit the process lists.

list

disp -a
// This will display each process module and the parameters that you can change. 
// Use -avv for more detailed information.

fg /ctrl + z
// Will bring savu config to foreground / Send config to background to allow you to run savu_mpi in the same terminal window

add RemoveAllRings 2
// will add the module RemoveAllRings to position 2 in the process list. If no number is included it will add to the end.

rem 2
// will remove module at position 2 in the list

An example process list is shown here:

 1) NxtomoLoader                                                                               
--basic----------------------------------------------------------------------------------------
    1)              preview : [:, 300, :]
    2)            data_path : /entry/imaging/data
    3)                 dark : [None, None, 1.0]
    4)                 flat : [None, None, 1.0]
--intermediate---------------------------------------------------------------------------------
    5)                 name : tomo
    6)       image_key_path : /entry/instrument/imaging/image_key
    7)               angles : None
    8)             3d_to_4d : False
    9)         ignore_flats : None
 2) DezingerGpu                                                                                
--basic----------------------------------------------------------------------------------------
    1)          kernel_size : 2
    2)           outlier_mu : 0.1
--datasets-------------------------------------------------------------------------------------
    3)          in_datasets : []
    4)         out_datasets : []
 3) DarkFlatFieldCorrection                                                                    
--basic----------------------------------------------------------------------------------------
    1)              pattern : PROJECTION
--intermediate---------------------------------------------------------------------------------
    2)          lower_bound : None
    3)          upper_bound : None
    4)      warn_proportion : 0.05
--datasets-------------------------------------------------------------------------------------
    5)          in_datasets : []
    6)         out_datasets : []
 4) PaganinFilter                                                                              
--basic----------------------------------------------------------------------------------------
    1)                Ratio : 0.5
    2)               Energy : 22.0
    3)             Distance : 0.14875
    4)           Resolution : 0.54
--intermediate---------------------------------------------------------------------------------
    5)         Padtopbottom : 100
    6)         Padleftright : 100
    7)            Padmethod : edge
    8)            increment : 0.0
--datasets-------------------------------------------------------------------------------------
    9)          in_datasets : []
   10)         out_datasets : []
 5) RemoveLargeRings                                                                           
--basic----------------------------------------------------------------------------------------
    1)                 size : 71
    2)                  snr : 10.0
--datasets-------------------------------------------------------------------------------------
    3)          in_datasets : []
    4)         out_datasets : []
 ***OFF*** 6) RemoveAllRings                                                                   
--basic----------------------------------------------------------------------------------------
    1)              sm_size : 31
    2)              la_size : 71
    3)                  snr : 100.0
--datasets-------------------------------------------------------------------------------------
    4)          in_datasets : []
    5)         out_datasets : []
 ***OFF*** 7) VoCentering                                                                      
--basic----------------------------------------------------------------------------------------
    1)              preview : []
    2)          search_area : [-50, 50]
--intermediate---------------------------------------------------------------------------------
    3)          start_pixel : None
    4)                ratio : 0.5
    5)        search_radius : 6
    6)                 step : 0.5
    7) datasets_to_populate : []
--advanced-------------------------------------------------------------------------------------
    8)     broadcast_method : median
    9)             row_drop : 20
   10)       average_radius : 5
--datasets-------------------------------------------------------------------------------------
   11)          in_datasets : []
   12)         out_datasets : [cor_preview, cor_broadcast]
 8) AstraReconGpu                                                                              
--basic----------------------------------------------------------------------------------------
    1)   centre_of_rotation : 1295.0
    2)            algorithm : FBP_CUDA
--intermediate---------------------------------------------------------------------------------
    3)             init_vol : None
    4)                  log : False
    5)              preview : []
    6)           force_zero : [None, None]
    7)                ratio : 0.95
    8)            vol_shape : fixed
    9)            outer_pad : False
   10)           centre_pad : False
   11)           FBP_filter : ram-lak
--advanced-------------------------------------------------------------------------------------
   12)             log_func : np.nan_to_num(-np.log(sino))
--datasets-------------------------------------------------------------------------------------
   13)          in_datasets : []
   14)         out_datasets : []
***********************************************************************************************

  • No labels