APS 26-IDΒΆ
This section contains a script to read the X-radia XRM tomography dataset and reconstruct it with tomoPy.
Download file: rec_aps_26id.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
TomoPy example script to reconstruct the xrm tomography data from
the original stack of xrm. To use rename the xrm data as
radios/image_00000.xrm and flats/ref_00000.xrm
"""
from __future__ import print_function
import tomopy
import dxchange
if __name__ == '__main__':
# Set path to the micro-CT data to reconstruct.
fname = 'data_dir/'
proj_start = 0
proj_end = 1800
flat_start = 0
flat_end = 100
ind_tomo = range(proj_start, proj_end)
ind_flat = range(flat_start, flat_end)
# Select the sinogram range to reconstruct.
start = 0
end = 16
# Read the APS 26-ID raw data.
proj, flat, metadata = dxchange.read_aps_26id(fname, ind_tomo, ind_flat,
sino=(start, end))
# make the darks
dark = np.zeros((1, proj.shape[1], proj.shape[2]))
# Set data collection angles as equally spaced between 0-180 degrees.
theta = tomopy.angles(proj.shape[0])
# Flat-field correction of raw data.
proj = tomopy.normalize(proj, flat, dark)
# Find rotation center.
rot_center = tomopy.find_center(proj, theta, init=1024,
ind=0, tol=0.5)
print("Center of rotation: ", rot_center)
proj = tomopy.minus_log(proj)
# Reconstruct object using Gridrec algorithm.
rec = tomopy.recon(proj, theta, center=rot_center, algorithm='gridrec')
# Mask each reconstructed slice with a circle.
rec = tomopy.circ_mask(rec, axis=0, ratio=0.95)
# Write data as stack of TIFs.
dxchange.write_tiff_stack(rec, fname='recon_dir/recon')
|