mantidimaging.core.io.instrument_log module

class mantidimaging.core.io.instrument_log.InstrumentLog(lines: list[str], source_file: Path)[source]

Bases: object

Multiformat instrument log reader

New parsers can be implemented by subclassing InstrumentLogParser

counts() → Counts[source]
data: dict[LogColumn, list[float | int]]
get_column(key: LogColumn) → list[float][source]
has_projection_angles() → bool[source]
length: int
parse() → None[source]
parser: Type[InstrumentLogParser]
parsers: ClassVar[list[Type[InstrumentLogParser]]] = [<class 'mantidimaging.core.io.instrument_log_implmentations.LegacySpectraLogParser'>, <class 'mantidimaging.core.io.instrument_log_implmentations.LegacyIMATLogFile'>]
projection_angles() → ProjectionAngles[source]
projection_numbers() → array[source]
raise_if_angle_missing(image_filenames: list[str]) → None[source]
classmethod register_parser(parser: Type[InstrumentLogParser]) → None[source]
class mantidimaging.core.io.instrument_log.InstrumentLogParser(lines: list[str])[source]

Bases: ABC

Base class for parsers

cleaned_lines() → list[str][source]
abstract classmethod match(lines: list[str], filename: str) → bool[source]

Check if the name and content of the file is likely to be readable by this parser.

abstract parse() → dict[LogColumn, list[float | int]][source]

Parse the log file

exception mantidimaging.core.io.instrument_log.InvalidLog[source]

Bases: RuntimeError

class mantidimaging.core.io.instrument_log.LogColumn(value)[source]

Bases: Enum

An enumeration.

COUNTS_AFTER = 6
COUNTS_BEFORE = 5
IMAGE_TYPE_IMAGE_COUNTER = 2
PROJECTION_ANGLE = 4
PROJECTION_NUMBER = 3
SPECTRUM_COUNTS = 8
TIMESTAMP = 1
TIME_OF_FLIGHT = 7
exception mantidimaging.core.io.instrument_log.NoParserFound[source]

Bases: RuntimeError