CircularDetector¶
- class odl.tomo.geometry.detector.CircularDetector(partition, axis, radius, check_bounds=True)[source]¶
- Bases: - Detector- A 1D detector on a circle section in 2D space. - The circular section that corresponds to the angular partition is rotated to be aligned with a given axis and shifted to cross the origin. Note, the partition angle increases in the clockwise direction, by analogy to flat detectors. - Attributes:
- axis
- Fixed axis along which this detector is aligned. 
- check_bounds
- If - True, methods computing vectors check input arguments.
- grid
- Sampling grid of the parameters. 
- ndim
- Number of dimensions of the parameters (= surface dimension). 
- params
- Surface parameter set of this detector. 
- partition
- Partition of the detector parameter set into subsets. 
- radius
- Curvature radius of the detector. 
- rotation_matrix
- Rotation matrix that is used to align the detector with a given axis. 
- shape
- Number of subsets (pixels) of the detector per axis. 
- size
- Total number of pixels. 
- space_ndim
- Number of dimensions of the embedding space. 
- translation
- A vector used to shift the detector towards the origin. 
 
 - Methods - surface(param)- Return the detector surface point corresponding to - param.- surface_deriv(param)- Return the surface derivative at - param.- surface_measure(param)- Return the arc length measure at - param.- surface_normal(param)- Unit vector perpendicular to the detector surface at - param.- __init__(partition, axis, radius, check_bounds=True)[source]¶
- Initialize a new instance. - Parameters:
- partition1-dim. RectPartition
- Partition of the parameter interval, corresponding to the angular sections along the line. 
- axisarray-like, shape(2,)
- Fixed axis along which this detector is aligned. 
- radiusnonnegative float
- Radius of the circle. 
- check_boundsbool, optional
- If - True, methods computing vectors check input arguments. Checks are vectorized and add only a small overhead.
 
- partition1-dim. 
 - Examples - Initialize a detector with circle radius 2 and extending to 90 degrees on both sides of the origin (a half circle). - >>> part = odl.uniform_partition(-np.pi / 2, np.pi / 2, 10) >>> det = CircularDetector(part, axis=[1, 0], radius=2) >>> det.axis array([ 1., 0.]) >>> det.radius 2.0 >>> np.allclose(det.surface_normal(0), [0, -1]) True