Source code for islatu.metadata
"""
This module contains the Metadata class, returned by parser methods in the
islatu.io module. This class provides a consistent way to refer to metadata
returned by different detectors/instruments, and also contains a dictionary
of all of the metadata as scraped from the parsed file.
"""
from abc import abstractmethod
import numpy as np
[docs]class Metadata:
"""
An ABC for classes that store metadata parsed from data files. This defines
the properties that must be implemented by parsing classes.
"""
def __init__(self, local_path):
self.local_path = local_path
@property
@abstractmethod
def probe_energy(self):
"""
This must be overridden.
"""
raise NotImplementedError()
@property
@abstractmethod
def default_axis(self) -> np.ndarray:
"""
Returns a numpy array of data associated with the default axis, where
"default axis" should be understood in the NeXus sense to mean the
experiment's dependent variable.
"""
raise NotImplementedError()
@property
@abstractmethod
def default_axis_name(self) -> str:
"""
Returns the name of the default axis, as it was recorded in the data
file stored at local_path.
"""
raise NotImplementedError()
@property
@abstractmethod
def default_axis_type(self) -> str:
"""
Returns what type of default axis we have. Options are 'q', 'th' or
'tth'.
"""
raise NotImplementedError()
@property
@abstractmethod
def transmission(self):
"""
Proportional to the fraction of probe particles allowed by an attenuator
to strike the sample.
"""
raise NotImplementedError()
@property
@abstractmethod
def detector_distance(self):
"""
Returns the distance between sample and detector.
"""
raise NotImplementedError()