CircularDetector

class odl.applications.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.

__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.

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