scan_info module¶
A set of classes used to describe a phantom dataset.
Broadly, the hierarchy of classes here is as follows:
- A Study is comprised of a set of ScanSessions, each examining the same sample test tube.
- A ScanSession is comprised of a set of SingleScans of (different regions of) the sample.
- A sample test tube contains a set of Phantoms.
- Each phantom has an infill Pattern.
-
class
scan_info.AlternatingPattern(pattern_0, pattern_1)¶ Bases:
objectAn infill pattern that changes from layer to layer.
Parameters: pattern_1 (pattern_0,) – The two patterns that alternate. -
get_geometry_generators()¶ A dictionary of functions that describe the infill geometry.
For alternating patterns, only the crossing angle has a consistent definition, which is based on the directions of the underlying infill patterns.
-
-
class
scan_info.ConcentricArcPattern(origin)¶ Bases:
objectAn infill pattern composed of concentric arcs.
This pattern represents bending fibres in the brain.
Parameters: origin (tuple of float) – The x and y coordinates of the arcs’ common centre, relative to the centroid of the phantom’s cross section. -
get_geometry_generators()¶ A dictionary of functions that describe the infill geometry.
For concentric arc infill, there is a constant crossing angle (0), but the fibre direction (tangent to each arc) changes and there is an arc radius that changes in the phantom.
-
-
class
scan_info.EmptyPattern¶ Bases:
objectA placeholder infill pattern for empty slices.
-
get_geometry_generators()¶
-
-
class
scan_info.ParallelLinePattern(cura_angle)¶ Bases:
objectAn infill pattern composed only of parallel lines.
Parameters: cura_angle (float) – The “direction” of the lines, as specified in cura, in degrees. -
get_geometry_generators()¶ A dictionary of functions that describe the infill geometry.
For parallel line infill, the fibre direction and crossing angle are both constant because there is no orientation dispersion of any kind.
-
-
class
scan_info.Phantom(hotend_temp, print_speed, layer_thickness, infill_density, infill_pattern)¶ Bases:
objectDescription of a phantom’s design and print parameters.
This class has no intrinsic functionality, but contains a full description of a phantom’s design and print process.
Parameters: - hotend_temp (float) – The temperature, in degrees Celsius, at which the phantom was 3D printed.
- print_speed (float) – The speed, in mm/s, at which the phantom was 3D printed.
- layer_thickness (float) – The thickness, in mm, of each of the phantom’s layers.
- infill_density (float) – The infill density, as a percentage, with which the phantom was printed.
- infill_pattern (Pattern) – The infill pattern with which the phantom was printed.
-
class
scan_info.ScanSession(date, scans)¶ Bases:
objectA description of a single day of scans covering a set of phantoms.
Parameters: - date (datetime.date) – The date of the scan session.
- scans (list of SingleScan) – The set of scans that were conducted.
-
class
scan_info.SingleScan(tube_slice)¶ Bases:
objectA single scan covering some subset of a set of phantoms.
There should be one DWI that corresponds to each scan.
Parameters: tube_slice (slice) – The slice of a list of phantoms that was covered in the scan.
-
class
scan_info.Study(name, tube, sessions)¶ Bases:
objectA data class fully documenting a study using one set of phantoms.
A “study,” in this context, refers to a series of scans of the same set of phantoms.
Parameters: - name (str) – A name for the study.
- tube (list of Phantom) – A list containing each phantom in the set that was scanned.
- sessions (list of ScanSession) – A list containing each session of phantom scans.
-
class
scan_info.WaterSlice¶ Bases:
objectA placeholder for a scan slice containing only water.