Lorentz data

Lorentz data#

This example uses raw data from the TomoBank archive.

../../../_images/sino_tomo088.jpg

Fig. 18 Dark/flat-field-corrected sinogram of the Lorentz data set.#

../../../_images/recon_tomo088.jpg

Fig. 19 Reconstructed slice using the FBP method.#

Download the Lorentz data set. It is hosted using the Globus file management system, which requires authentication. You can sign in using GitHub credentials.

After downloading the dataset, confirm that tomo_00088.h5 is available, then run one of the pipelines below.

TomoPy (CPU) pipeline#

This pipeline uses TomoPy on the CPU, so TomoPy must be installed. See Processing libraries. Copy the pipeline into a YAML file and run HTTomo.

Standard 180 degrees pipeline using TomoPy (CPU) for tomo_00088.h5 dataset
- method: standard_tomo
  module_path: httomo.data.hdf.loaders
  parameters:
    data_path: /exchange/data
    image_key_path: null
    rotation_angles:
      user_defined:
        start_angle: 0
        stop_angle: 179.876
        angles_total: 1500
    preview:
      detector_y:
        start: 500
        stop: 510
    darks:
      file: input_data
      image_key_path: null
      data_path: /exchange/data_dark
    flats:
      file: input_data
      image_key_path: null
      data_path: /exchange/data_white
    continuous_scan_subset: null
- method: normalize
  module_path: tomopy.prep.normalize
  parameters:
    cutoff: null
    averaging: mean
- method: find_center_vo
  module_path: tomopy.recon.rotation
  parameters:
    ind: mid
    smin: -50
    smax: 50
    srad: 6
    step: 0.25
    ratio: 0.5
    drop: 20
  id: centering
  side_outputs:
    cor: centre_of_rotation
- method: remove_all_stripe
  module_path: tomopy.prep.stripe
  parameters:
    snr: 3
    la_size: 61
    sm_size: 21
    dim: 1
- method: minus_log
  module_path: tomopy.prep.normalize
  parameters: {}
- method: recon
  module_path: tomopy.recon.algorithm
  parameters:
    center: ${{centering.side_outputs.centre_of_rotation}}
    sinogram_order: false
    algorithm: gridrec
    init_recon: null
- method: calculate_stats
  module_path: httomo.methods
  parameters: {}
  id: statistics
  side_outputs:
    glob_stats: glob_stats
- method: rescale_to_int
  module_path: httomolib.misc.rescale
  parameters:
    perc_range_min: 0.0
    perc_range_max: 100.0
    bits: 8
    glob_stats: ${{statistics.side_outputs.glob_stats}}
- method: save_to_images
  module_path: httomolib.misc.images
  parameters:
    subfolder_name: images
    axis: auto
    file_format: tif
    asynchronous: true

GPU pipeline#

If a CUDA-enabled GPU is available, the same dataset can be processed using GPU-accelerated libraries. This can significantly reduce processing time for suitable pipelines. Run the pipeline below in the same way as the CPU example.

GPU-enabled processing for tomo_00088.h5 dataset
- method: standard_tomo
  module_path: httomo.data.hdf.loaders
  parameters:
    data_path: /exchange/data
    image_key_path: null
    rotation_angles:
      user_defined:
        start_angle: 0
        stop_angle: 179.876
        angles_total: 1500
    preview:
      detector_y:
        start: 500
        stop: 510
    darks:
      file: input_data
      image_key_path: null
      data_path: /exchange/data_dark
    flats:
      file: input_data
      image_key_path: null
      data_path: /exchange/data_white
    continuous_scan_subset: null
- method: dark_flat_field_correction
  module_path: httomolibgpu.prep.normalize
  parameters:
    flats_multiplier: 1.0
    darks_multiplier: 1.0
    upper_bound: null
    lower_bound: null
- method: find_center_vo
  module_path: httomolibgpu.recon.rotation
  parameters:
    ind: mid
    average_radius: 0
    cor_initialisation_value: null
    smin: -50
    smax: 50
    srad: 6.0
    step: 0.5
    ratio: 0.5
    drop: 20
  id: centering
  side_outputs:
    cor: centre_of_rotation
- method: remove_all_stripe
  module_path: httomolibgpu.prep.stripe
  parameters:
    snr: 3.0
    la_size: 61
    sm_size: 21
    dim: 1
    normalize: false
- method: minus_log
  module_path: httomolibgpu.prep.normalize
  parameters: {}
- method: FBP3d_tomobar
  module_path: httomolibgpu.recon.algorithm
  parameters:
    center: ${{centering.side_outputs.centre_of_rotation}}
    detector_pad: false
    filter_freq_cutoff: 0.35
    recon_size: null
    recon_mask_radius: 0.95
- method: calculate_stats
  module_path: httomo.methods
  parameters: {}
  id: statistics
  side_outputs:
    glob_stats: glob_stats
- method: rescale_to_int
  module_path: httomolib.misc.rescale
  parameters:
    perc_range_min: 0.0
    perc_range_max: 100.0
    bits: 8
    glob_stats: ${{statistics.side_outputs.glob_stats}}
- method: save_to_images
  module_path: httomolib.misc.images
  parameters:
    subfolder_name: images
    axis: auto
    file_format: tif
    asynchronous: true