Multi-Axis Parallel Model#
The MultiAxisParallelModel class implements a geometry and reconstruction model for parallel beam but with the ability to rotate in azimuth and tilt in elevation.
Therefore, parallel beam laminography is a special case of this geometry when there is a constant tilt for all views.
This class inherits all behaviors and attributes of the Tomography Model.
It also implements multi-axis parallel-beam direct reconstruction methods such as direct_recon and fbp_recon.
For multi-axis parallel beam geometry, the default detector channel spacing is delta_det_channel is 1 ALU,
and the voxels are 3D cubes with spacing delta_voxel = delta_det_channel.
However, these parameters can be changed by the user using the TomographyModel.set_params() method.
See the API docs for the TomographyModel class for details on a wide range
of functions that can be implemented using the MultiAxisParallelModel.
Constructor#
- class mbirjax.MultiAxisParallelModel(sinogram_shape, angles)[source]#
Bases:
TomographyModelParallel beam geometry allowing for a per-view elevation (tilt) angle.
- This class extends ParallelBeamModel to support a 2-axis rotation geometry:
Azimuth (Theta): Rotation around the object’s Z-axis (standard tomography rotation, analogous to angles in ParallelBeamModel).
Elevation (Phi): Tilt of the ray vector out of the XY plane (extension beyond single-axis ParallelBeamModel).
When elevation = 0, this model is mathematically equivalent to ParallelBeamModel (mirroring its behavior exactly).
- Novelty/Extension:
Parallel beam laminography is a special case of this geometry.
Introduces split vertical/horizontal fan projectors (mirrors ConeBeamModel and TranslationModel).
Supports arbitrary elevation without assuming slice independence (generalization of ParallelBeamModel).
Directional velocity-weighted ramp filter in direct_recon (extension of standard ramp in ParallelBeamModel).
- Parameters:
sinogram_shape (tuple) – (num_views, num_det_rows, num_det_channels)
angles (jnp.ndarray) – (num_views,2) array. - angles[:,0] = Azimuth (radians, analogous to ParallelBeamModel) - angles[:,1] = Elevation (radians, unique extension)