Data Format in piva
This section discusses what it means for a data file to be recognizable and
readable by piva.
Problem of Multiple File Formats
Within the ARPES community, it is common for each beamline and lab to use their own file formats and conventions. Consequently, handling these different files requires a dedicated script that converts them into a common format.
In piva, this task is managed by the
data_loaders module, which implements specific
Dataloaders for files from various sources and returns a standardized
Dataset object.
The Dataset defines a data structure consistently used
within piva and is understandable by all other piva modules.
Dataset structure
The file format used internally by piva is a simple structured object
inheriting from the pydantic.BaseModel object. [1]
The following table provides an overview of the data structure definition:
attribute
type
description
data *
np.ndarrayAcquired data of dimension (l, m, n). Oriented as: l-scanned axis, m- analyzer axis, n-energy axis. When scan is a single cut (data are 2D), first dimension is equal to
data[0, :, :] = np.array([0]).xscale *
np.ndarrayAxis along the scanned direction, has length l. Units depend on the scan type. When scan type is a single cut (2D), it is set to
np.array([1]).yscale *
np.ndarrayAxis along the analyzer slit, has length m. Most likely in [deg].
zscale *
np.ndarrayAxis along the energy direction, has length m. Most likely in [eV].
ekin
np.ndarray|NoneEnergy axis in kinetic energy scale (if default scale is in binding energy).
kxscale
np.ndarray|NoneMomentum axis (saved after conversion) along the scanned direction.
kyscale
np.ndarray|NoneMomentum axis (saved after conversion) along the analyzer direction.
x
float|Nonex position of the manipulator.
y
float|Noney position of the manipulator.
z
float|Nonez position of the manipulator.
theta
float|Nonetheta angle of the manipulator; often referred as polar.
phi
float|Nonephi angle of the manipulator; often referred as azimuth.
tilt
float|Nonetilt angle of the manipulator.
temp
float|NoneTemperature during the experiment.
pressure
float|NonePressure during the experiment.
hv
float|NonePhoton energy used during the experiment.
wf
float|NoneWork function of the analyzer.
Ef
float|NoneCorrection for the Fermi level.
polarization
str|NonePhoton polarization.
PE
int|NonePass energy of the analyzer.
exit_slit
float|NoneExit (vertical) slit of the beamline; responsible for energy resolution.
FE
float|NoneFront end of the beamline.
scan_type
str|NoneType of the measurement (e.g. cut, tilt scan, hv scan).
scan_dim
list|NoneIf scan other than cut, scanned dimensions as list: [start, stop, step].
acq_mode
str|NoneData acquisition mode.
lens_mode
str|NoneLens mode of the analyzer.
ana_slit
str|NoneSlit opening of the analyzer.
defl_angle
float|NoneApplied deflection angle.
n_sweeps
int|NoneNumber of sweeps.
DT
int|NoneAnalyzer dwell time during data acquisition, most likely in [miliseconds].
data_provenance
Dataset logbook; contains information about original file and keeps track of functions called on the data.
Not all attributes are present or required for piva to display data.
Attributes that are mandatory for the functioning of the DataViewers are
marked with an asterisk (*). However, much of the other information is needed
for processing routines, such as angle-to-k-space conversion.