data_read#

Module containing functions to read metadata and raw data from measurement directory.

class artof.data_read.Acquisition(general=<factory>, lensmode=<factory>, detector=<factory>, analyzer=<factory>)#

Metadata class containing all metadata for current measurement.

Parameters:
analyzer: Analyzer#
detector: Detector#
general: General#
lensmode: Lensmode#
class artof.data_read.Analyzer(elementSet='', lensMode='', passEnergy=0.0)#

Dataclass for analyzer metadata.

Parameters:
  • elementSet (str)

  • lensMode (str)

  • passEnergy (float)

elementSet: str = ''#
lensMode: str = ''#
passEnergy: float = 0.0#
class artof.data_read.Detector(transformVectorSize=0, transformMaxY=0, transformXRef=0, transformXVector=<factory>, transformYVector=<factory>, transformXMatrix=<factory>, transformYMatrix=<factory>, x0=0, y0=0, t0=0, t0Tolerance=0, tdcResolution=0.0, spatialResolution=0, spatialDiameter=0, xDelayTimeMin=0, xDelayTimeMax=0, yDelayTimeMin=0, yDelayTimeMax=0, zDelayTimeMin=0, zDelayTimeMax=0)#

Dataclass for detector metadata.

Parameters:
  • transformVectorSize (int)

  • transformMaxY (int)

  • transformXRef (int)

  • transformXVector (ndarray)

  • transformYVector (ndarray)

  • transformXMatrix (ndarray)

  • transformYMatrix (ndarray)

  • x0 (int)

  • y0 (int)

  • t0 (int)

  • t0Tolerance (int)

  • tdcResolution (float)

  • spatialResolution (int)

  • spatialDiameter (int)

  • xDelayTimeMin (int)

  • xDelayTimeMax (int)

  • yDelayTimeMin (int)

  • yDelayTimeMax (int)

  • zDelayTimeMin (int)

  • zDelayTimeMax (int)

spatialDiameter: int = 0#
spatialResolution: int = 0#
t0: int = 0#
t0Tolerance: int = 0#
tdcResolution: float = 0.0#
transformMaxY: int = 0#
transformVectorSize: int = 0#
transformXMatrix: ndarray#
transformXRef: int = 0#
transformXVector: ndarray#
transformYMatrix: ndarray#
transformYVector: ndarray#
x0: int = 0#
xDelayTimeMax: int = 0#
xDelayTimeMin: int = 0#
y0: int = 0#
yDelayTimeMax: int = 0#
yDelayTimeMin: int = 0#
zDelayTimeMax: int = 0#
zDelayTimeMin: int = 0#
class artof.data_read.DetectorConfig(timestamp=datetime.datetime(1, 1, 1, 0, 0), DLDDeadTime=0, DLDFilterMax=0, DLDFilterMin=0, DetectorID=0, GroupMode='', XYTFormat='', XYTFormatProtect=False, YFilterMax=0, YFilterMin=0, dllVersion='', tdcChannelMCP=0, tdcChannelTRIGGER=0, tdcChannelX1=0, tdcChannelX2=0, tdcChannelY1=0, tdcChannelY2=0, tdcChannelZ1=0, tdcChannelZ2=0)#

Dataclass for detector configuration metadata.

Parameters:
  • timestamp (datetime)

  • DLDDeadTime (int)

  • DLDFilterMax (int)

  • DLDFilterMin (int)

  • DetectorID (int)

  • GroupMode (str)

  • XYTFormat (str)

  • XYTFormatProtect (bool)

  • YFilterMax (int)

  • YFilterMin (int)

  • dllVersion (str)

  • tdcChannelMCP (int)

  • tdcChannelTRIGGER (int)

  • tdcChannelX1 (int)

  • tdcChannelX2 (int)

  • tdcChannelY1 (int)

  • tdcChannelY2 (int)

  • tdcChannelZ1 (int)

  • tdcChannelZ2 (int)

DLDDeadTime: int = 0#
DLDFilterMax: int = 0#
DLDFilterMin: int = 0#
DetectorID: int = 0#
GroupMode: str = ''#
MCPDeadTime = 0#
XFilterMax = 0#
XFilterMin = 0#
XYTFormat: str = ''#
XYTFormatProtect: bool = False#
YFilterMax: int = 0#
YFilterMin: int = 0#
dllVersion: str = ''#
tdcChannelMCP: int = 0#
tdcChannelTRIGGER: int = 0#
tdcChannelX1: int = 0#
tdcChannelX2: int = 0#
tdcChannelY1: int = 0#
tdcChannelY2: int = 0#
tdcChannelZ1: int = 0#
tdcChannelZ2: int = 0#
timestamp: datetime = datetime.datetime(1, 1, 1, 0, 0)#
class artof.data_read.DetectorSetup(start=<factory>, finish=<factory>)#

Dataclass for detector setup metadata (from detector.txt file).

Parameters:
finish: DetectorConfig#
start: DetectorConfig#
class artof.data_read.ElementConfig(timestamp=datetime.datetime(1, 1, 1, 0, 0), Acceleration_Element=0.0, DBIAS=0.0, DLDAH=0.0, DLDR=0.0, DLDS=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0, L5=0.0, MCP=0.0)#

Dataclass for element configuration metadata.

Parameters:
  • timestamp (datetime)

  • Acceleration_Element (float)

  • DBIAS (float)

  • DLDAH (float)

  • DLDR (float)

  • DLDS (float)

  • L1 (float)

  • L2 (float)

  • L3 (float)

  • L4 (float)

  • L5 (float)

  • MCP (float)

Acceleration_Element: float = 0.0#
DBIAS: float = 0.0#
DLDAH: float = 0.0#
DLDR: float = 0.0#
DLDS: float = 0.0#
L1: float = 0.0#
L2: float = 0.0#
L3: float = 0.0#
L4: float = 0.0#
L5: float = 0.0#
MCP: float = 0.0#
timestamp: datetime = datetime.datetime(1, 1, 1, 0, 0)#
class artof.data_read.Elements(start=<factory>, finish=<factory>)#

Dataclass for elements metadata (from elements.txt file).

Parameters:
finish: ElementConfig#
start: ElementConfig#
class artof.data_read.Extra(start=<factory>, finish=<factory>)#

Dataclass for extra metadata (from extra.txt file).

Parameters:
  • start (dict)

  • finish (dict)

finish: dict#
start: dict#
class artof.data_read.General(version='', acquisitionStarted=datetime.datetime(1, 1, 1, 0, 0), spectrumBeginEnergy=0.0, spectrumEndEnergy=0.0, spectrumChannelWidthEnergy=0.0, lensLowEdgeEnergyStep=0.0, lensDwellType='', lensDwellTime=0, lensIterations=0, lensSteps=0, userSpectrumEndEnergy=0.0, userLensLowEdgeEnergyStep=0.0, acquisitionMode='', centerEnergy=0.0, xytFormat='', conversionLibraryName='', conversionLibraryVersion='')#

Dataclass for general metadata.

Parameters:
  • version (str)

  • acquisitionStarted (datetime)

  • spectrumBeginEnergy (float)

  • spectrumEndEnergy (float)

  • spectrumChannelWidthEnergy (float)

  • lensLowEdgeEnergyStep (float)

  • lensDwellType (str)

  • lensDwellTime (int)

  • lensIterations (int)

  • lensSteps (int)

  • userSpectrumEndEnergy (float)

  • userLensLowEdgeEnergyStep (float)

  • acquisitionMode (str)

  • centerEnergy (float)

  • xytFormat (str)

  • conversionLibraryName (str)

  • conversionLibraryVersion (str)

acquisitionMode: str = ''#
acquisitionStarted: datetime = datetime.datetime(1, 1, 1, 0, 0)#
centerEnergy: float = 0.0#
conversionLibraryName: str = ''#
conversionLibraryVersion: str = ''#
lensDwellTime: int = 0#
lensDwellType: str = ''#
lensIterations: int = 0#
lensLowEdgeEnergyStep: float = 0.0#
lensSteps: int = 0#
spectrumBeginEnergy: float = 0.0#
spectrumChannelWidthEnergy: float = 0.0#
spectrumEndEnergy: float = 0.0#
userLensLowEdgeEnergyStep: float = 0.0#
userSpectrumEndEnergy: float = 0.0#
version: str = ''#
xytFormat: str = ''#
class artof.data_read.Lensmode(lensK=0.0, vectorSize=0, maxTheta=0.0, eKinRef=0, tofVector=<factory>, radiusVector=<factory>, energyMatrix=<factory>, thetaMatrix=<factory>)#

Dataclass for lensmode metadata.

Parameters:
  • lensK (float)

  • vectorSize (int)

  • maxTheta (float)

  • eKinRef (int)

  • tofVector (ndarray)

  • radiusVector (ndarray)

  • energyMatrix (ndarray)

  • thetaMatrix (ndarray)

eKinRef: int = 0#
energyMatrix: ndarray#
lensK: float = 0.0#
maxTheta: float = 0.0#
radiusVector: ndarray#
thetaMatrix: ndarray#
tofVector: ndarray#
vectorSize: int = 0#
class artof.data_read.Metadata(acquisition=<factory>, detector=<factory>, elements=<factory>, extra=<factory>, timing=<factory>)#

Dataclass for all metadata.

Parameters:
acquisition: Acquisition#
detector: DetectorSetup#
elements: Elements#
extra: Extra#
timing: Timing#
class artof.data_read.Timing(start=<factory>, finish=<factory>)#

Dataclass for timing metadata (from timing.txt file).

Parameters:
finish: TimingData#
start: TimingData#
class artof.data_read.TimingData(timestamp=datetime.datetime(1, 1, 1, 0, 0), MasterPeriod=0.0, PulsePeriodEstimate=0, TriggerPeriod=0.0)#

Dataclass for timing data.

Parameters:
  • timestamp (datetime)

  • MasterPeriod (float)

  • PulsePeriodEstimate (int)

  • TriggerPeriod (float)

MasterPeriod: float = 0.0#
PulsePeriodEstimate: int = 0#
TriggerPeriod: float = 0.0#
timestamp: datetime = datetime.datetime(1, 1, 1, 0, 0)#
artof.data_read.empty_float_array()#

Create empty float array.

Returns:

Empty float array.

Return type:

ndarray

artof.data_read.get_aquisition_df(acquisition, pars, run_name=None)#

Get selected keys from acquisition metadata as pandas DataFrame.

Parameters:
  • metadata – Metadata object containing all metadata.

  • pars (list) – List of keys to be extracted from metadata (when ‘None’ all metadata will be returned)

  • run_name (str) – Name of current run to be displayed in first column, optional.

  • acquisition (Acquisition)

Returns:

DataFrame containing all requested metadata.

Return type:

DataFrame

artof.data_read.load_counts(path, it, step)#

Count number of events in given lens iteration and step assuming int32 enconding.

Parameters:
  • path (str) – Path to run directory.

  • it (int) – Current lens iteration.

  • step (int) – Current lens step.

Returns:

Number of events in given lens iteration and step.

Return type:

int

artof.data_read.load_file(path, it, step)#

Load raw data from file and transform into data points with 3 values.

Parameters:
  • path (str) – Path to run directory.

  • it (int) – Current lens iteration.

  • step (int) – Current lens step.

Returns:

2D list containing three int32 values per row.

Return type:

ndarray

artof.data_read.load_metadata(file, metadata_object, datetime_format)#

Read any metadata from a given file and return it as a dataclass object. Unknown sections or attributes will be skipped with a warning.

Parameters:
  • file (str) – Path to metadata file.

  • metadata_object (Callable[[], T]) – Callable that returns an empty instance of the metadata dataclass.

  • datetime_format (str) – Format for datetime parsing.

Returns:

An instance of the metadata dataclass containing metadata from the file.

Return type:

T

artof.data_read.parse_type(dclass, par_name, value, datetime_format, file, raise_value_error=False)#

Parse string read from file to given type. Possible non-trivial conversions are int, float, datetime, list.

Parameters:
  • dclass (dataclass) – Dataclass containing the given parameter.

  • par_name (str) – Name of parameter.

  • value (any) – Value to be set for parameter.

  • datetime_format (str) – Format for datetime parsing.

  • raise_value_error (bool) – Whether to raise a ValueError if parsing fails (default: False). If False, a warning will be printed and the value will not be set.

  • file (str)

Returns:

Parsed parameter.

Return type:

any

artof.data_read.read_acquisition_cfg(path)#

Read metadata for given run from acquisition.cfg file.

Parameters:

path (str) – Path to run directory.

Returns:

Metadata object containing all info from acquisition.cfg file.

Return type:

Acquisition

artof.data_read.read_metadata(path)#

Read all metadata from given run directory.

Parameters:

path (str) – Path to run directory.

Returns:

Metadata object containing all metadata from run directory.

Return type:

Metadata