Skip to content
Snippets Groups Projects
Commit cf43464e authored by Lukas Pielsticker's avatar Lukas Pielsticker
Browse files

update pynxtools + plugins, use new MPES example

parent 83ac7a03
No related branches found
No related tags found
1 merge request!2139Update pynxtools + plugins, use new MPES example
Pipeline #222176 failed
...@@ -2,7 +2,7 @@ git+https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database.git@f3 ...@@ -2,7 +2,7 @@ git+https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database.git@f3
git+https://github.com/FAIRmat-NFDI/nomad-porous-materials.git@522f4a3208077f534f1c5e886527ee2104283d0b git+https://github.com/FAIRmat-NFDI/nomad-porous-materials.git@522f4a3208077f534f1c5e886527ee2104283d0b
git+https://github.com/FAIRmat-NFDI/nomad-aitoolkit.git@b203f8eb28dc4b6771a39d5c5b7ad3d9d8583ac8 git+https://github.com/FAIRmat-NFDI/nomad-aitoolkit.git@b203f8eb28dc4b6771a39d5c5b7ad3d9d8583ac8
nomad-simulations==0.0.1 nomad-simulations==0.0.1
pynxtools[convert]==0.5.0 pynxtools[convert]==0.7.0
nomad-schema-plugin-run>=1.0.1 nomad-schema-plugin-run>=1.0.1
nomad-schema-plugin-simulation-workflow>=1.0.1 nomad-schema-plugin-simulation-workflow>=1.0.1
nomad-normalizer-plugin-bandstructure>=1.0 nomad-normalizer-plugin-bandstructure>=1.0
......
This diff is collapsed.
%% Cell type:markdown id: tags:
# Convert measurement angles to k-space
In this example, we will use the NeXus format to automatically detect and read the angles from an ARPES measurement and do a k-space conversion with pyArpes.
%% Cell type:code id: tags:
``` python
import warnings
warnings.filterwarnings("ignore")
import numpy as np
from arpes.io import load_data
from arpes.endstations.plugin.nexus import NeXusEndstation
from arpes.utilities.conversion import convert_to_kspace
%matplotlib inline
```
%% Cell type:markdown id: tags:
# Download data
First we need to automatically download the data from [Nomad](https://nomad-lab.eu/prod/v1/api/v1/entries/xV9yMspIyXMfia6nNw3NIbnlZ91H/raw/Scan1496.nxs).
%% Cell type:code id: tags:
``` python
! curl -o Scan1496.nxs https://nomad-lab.eu/prod/v1/api/v1/entries/xV9yMspIyXMfia6nNw3NIbnlZ91H/raw/Scan1496.nxs
```
%% Cell type:markdown id: tags:
## Load data
%% Cell type:code id: tags:
``` python
Scan1496 = load_data("Scan1496.nxs", location=NeXusEndstation)
```
%% Cell type:markdown id: tags:
Apply rotational offset from experimental geometry
%% Cell type:code id: tags:
``` python
Scan1496.S.apply_offsets({
"chi": 19/180*np.pi,
})
```
%% Cell type:markdown id: tags:
Subtract photon energy
%% Cell type:code id: tags:
``` python
Scan1496_shifted = Scan1496
Scan1496_shifted['eV'] = Scan1496_shifted['eV'] - Scan1496.attrs["hv"].magnitude
```
%% Cell type:markdown id: tags:
We read all metadata from the nexus file into xarray attributes for easy programmatic access.
%% Cell type:code id: tags:
``` python
Scan1496_shifted.attrs
```
%% Cell type:markdown id: tags:
We can easily readout interesting values including their units, e.g., the incident photon energy of the beam:
%% Cell type:code id: tags:
``` python
Scan1496_shifted.attrs['instrument/beam_probe/incident_energy']
```
%% Cell type:markdown id: tags:
## Generate Fermi surface
%% Cell type:code id: tags:
``` python
fsmap = Scan1496_shifted.S.generic_fermi_surface(0)
fsmap.S.plot()
```
%% Cell type:markdown id: tags:
## Convert into k-space
%% Cell type:code id: tags:
``` python
fsmap_converted = convert_to_kspace(
fsmap,
kx=np.linspace(-.6, .6, 400),
ky=np.linspace(-1.2, 1.2, 400),
)
```
%% Cell type:code id: tags:
``` python
fsmap_converted.T.plot()
```
%% Cell type:code id: tags:
``` python
Scan1496_converted = convert_to_kspace(
Scan1496,
kx=np.linspace(-.6, .6, 400),
ky=np.linspace(-1.2, 1.2, 400),
)
```
%% Cell type:code id: tags:
``` python
Scan1496_converted.S.generic_fermi_surface(0).T.plot()
```
%% Cell type:code id: tags:
``` python
Scan1496.loc[{"eV":slice(1, 1.2)}].sum(dim="eV").S.plot()
```
%% Cell type:code id: tags:
``` python
Scan1496_converted.loc[{"eV":slice(1, 1.2)}].sum(dim="eV").S.plot()
```
%% Cell type:code id: tags:
``` python
```
{
"/@default": "entry",
"/ENTRY[entry]/@default": "data",
"/ENTRY[entry]/title": "@attrs:metadata/entry_title",
"/ENTRY[entry]/start_time": "@attrs:metadata/timing/acquisition_start",
"/ENTRY[entry]/experiment_institution": "Fritz Haber Institute - Max Planck Society",
"/ENTRY[entry]/experiment_facility": "Time Resolved ARPES",
"/ENTRY[entry]/experiment_laboratory": "Clean Room 4",
"/ENTRY/entry_identifier": {
"identifier":"@attrs:metadata/entry_identifier"
},
"/ENTRY[entry]/end_time": "@attrs:metadata/timing/acquisition_stop",
"/ENTRY[entry]/duration": "@attrs:metadata/timing/acquisition_duration",
"/ENTRY[entry]/duration/@units": "s",
"/ENTRY[entry]/collection_time": "@attrs:metadata/timing/collection_time",
"/ENTRY[entry]/collection_time/@units": "s",
"/ENTRY[entry]/USER[user]": {
"name": "@attrs:metadata/user0/name",
"role": "@attrs:metadata/user0/role",
"affiliation": "@attrs:metadata/user0/affiliation",
"address": "@attrs:metadata/user0/address",
"email": "@attrs:metadata/user0/email"
},
"/ENTRY[entry]/INSTRUMENT[instrument]": {
"name": "Time-of-flight momentum microscope equipped delay line detector, at the endstation of the high rep-rate HHG source at FHI",
"name/@short_name": "TR-ARPES @ FHI",
"energy_resolution": {
"resolution": 140.0,
"resolution/@units": "meV",
"physical_quantity": "energy",
"type": "estimated"
},
"RESOLUTION[temporal_resolution]": {
"resolution": 35.0,
"resolution/@units": "fs",
"physical_quantity": "time",
"type": "estimated"
},
"RESOLUTION[momentum_resolution]": {
"resolution": "@attrs:metadata/instrument/analyzer/momentum_resolution",
"resolution/@units": "1/angstrom",
"physical_quantity": "momentum",
"type": "estimated"
},
"pressure_gauge": {
"name": "sample_chamber_pressure",
"measurement": "pressure",
"value": "@attrs:metadata/file/trARPES:XGS600:PressureAC:P_RD",
"value/@units": "mbar"
},
"ELECTRONANALYSER[electronanalyser]": {
"description": "SPECS Metis 1000 Momentum Microscope",
"device_information": {
"vendor": "SPECS GmbH",
"model": "Metis 1000 Momentum Microscope"
},
"fast_axes": [
"kx",
"ky",
"E"
],
"slow_axes": "@attrs:metadata/instrument/analyzer/slow_axes",
"energy_resolution": {
"resolution": 110.0,
"resolution/@units": "meV",
"physical_quantity": "energy",
"type": "estimated"
},
"momentum_resolution": {
"resolution": "@attrs:metadata/instrument/analyzer/momentum_resolution",
"resolution/@units": "1/angstrom",
"physical_quantity": "momentum",
"type": "estimated"
},
"spatial_resolution": {
"resolution": "@attrs:metadata/instrument/analyzer/spatial_resolution",
"resolution/@units": "µm",
"physical_quantity": "length",
"type": "estimated"
},
"depends_on": "/entry/instrument/electronanalyser/transformations/trans_z",
"TRANSFORMATIONS[transformations]": {
"AXISNAME[trans_z]": 4.0,
"AXISNAME[trans_z]/@depends_on": "rot_y",
"AXISNAME[trans_z]/@transformation_type": "translation",
"AXISNAME[trans_z]/@units": "mm",
"AXISNAME[trans_z]/@vector": [
0,
0,
1
],
"AXISNAME[rot_y]": -115.0,
"AXISNAME[rot_y]/@depends_on": ".",
"AXISNAME[rot_y]/@transformation_type": "rotation",
"AXISNAME[rot_y]/@units": "degrees",
"AXISNAME[rot_y]/@vector": [
0,
1,
0
]
}
}
},
"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/COLLECTIONCOLUMN[collectioncolumn]": {
"projection": "@attrs:metadata/instrument/analyzer/projection",
"scheme": "momentum dispersive",
"lens_mode": "@attrs:metadata/instrument/analyzer/lens_mode",
"extractor_voltage": "@attrs:metadata/file/KTOF:Lens:Extr:V",
"extractor_voltage/@units": "V",
"extractor_current": "@attrs:metadata/file/KTOF:Lens:Extr:I",
"extractor_current/@units": "µA",
"working_distance": 4.0,
"working_distance/@units": "mm",
"LENS_EM[lens_*{A,B,C,D,E,F,G,H,I,UCA,UFA,Foc}]": {
"name": "*",
"voltage": "@attrs:metadata/file/KTOF:Lens:*:V",
"voltage/@units": "V"
},
"field_aperture": {
"shape": "@attrs:metadata/instrument/analyzer/fa_shape",
"size": "@attrs:metadata/instrument/analyzer/fa_size",
"size/@units": "µm",
"POSITIONER[fa_m1]": {
"value": "@attrs:metadata/file/KTOF:Apertures:m1.RBV",
"value/@units": "mm"
},
"POSITIONER[fa_m2]": {
"value": "@attrs:metadata/file/KTOF:Apertures:m2.RBV",
"value/@units": "mm"
}
},
"contrast_aperture": {
"shape": "@attrs:metadata/instrument/analyzer/ca_shape",
"size": "@attrs:metadata/instrument/analyzer/ca_size",
"size/@units": "µm",
"POSITIONER[ca_m3]": {
"value": "@attrs:metadata/file/KTOF:Apertures:m3.RBV",
"value/@units": "mm"
}
}
},
"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]": {
"pass_energy": "@attrs:metadata/file/KTOF:Lens:TOF:V",
"pass_energy/@units": "eV",
"scheme": "tof",
"tof_distance": 0.9,
"tof_distance/@units": "m"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/DETECTOR[detector]": {
"amplifier_type": "MCP",
"detector_type": "DLD",
"sensor_pixels": [
1800,
1800
],
"sensor_pixels/@units": "",
"amplifier_bias": "@attrs:metadata/file/KTOF:Lens:MCPfront:V",
"amplifier_bias/@units": "V",
"amplifier_voltage": "@attrs:metadata/file/KTOF:Lens:MCPback:V",
"amplifier_voltage/@units": "V",
"detector_voltage": "@attrs:metadata/file/KTOF:Lens:UDLD:V",
"detector_voltage/@units": "V"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/sourceTYPE[source_probe]": {
"name": "HHG @ TR-ARPES @ FHI",
"probe": "photon",
"type": "HHG laser",
"mode": "Single Bunch",
"frequency": "@attrs:metadata/instrument/beam/probe/frequency",
"frequency/@units": "kHz",
"associated_beam": "/entry/instrument/beam_probe"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/beamTYPE[beam_probe]": {
"distance": 0.0,
"distance/@units": "mm",
"incident_energy": "@attrs:metadata/instrument/beam/probe/incident_energy",
"incident_energy/@units": "eV",
"incident_energy_spread": "@attrs:metadata/instrument/beam/probe/incident_energy_spread",
"incident_energy_spread/@units": "eV",
"pulse_duration": "@attrs:metadata/instrument/beam/probe/pulse_duration",
"pulse_duration/@units": "fs",
"incident_polarization": "@attrs:metadata/instrument/beam/probe/incident_polarization",
"incident_polarization/@units": "V^2/mm^2",
"extent": "@attrs:metadata/instrument/beam/probe/extent",
"extent/@units": "µm",
"associated_source": "/entry/instrument/source_probe"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/sourceTYPE[source_pump]": {
"name": "OPCPA @ TR-ARPES @ FHI",
"probe": "visible light",
"type": "Optical Laser",
"mode": "Single Bunch",
"frequency": "@attrs:metadata/instrument/beam/pump/frequency",
"frequency/@units": "kHz",
"associated_beam": "/entry/instrument/beam_pump"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/beamTYPE[beam_pump]": {
"distance": 0.0,
"distance/@units": "mm",
"incident_energy": "@attrs:metadata/instrument/beam/pump/incident_energy",
"incident_energy/@units": "eV",
"incident_energy_spread": "@attrs:metadata/instrument/beam/pump/incident_energy_spread",
"incident_energy_spread/@units": "eV",
"incident_wavelength": "@attrs:metadata/instrument/beam/pump/incident_wavelength",
"incident_wavelength/@units": "nm",
"pulse_duration": "@attrs:metadata/instrument/beam/pump/pulse_duration",
"pulse_duration/@units": "fs",
"incident_polarization": "@attrs:metadata/instrument/beam/pump/incident_polarization",
"incident_polarization/@units": "V^2/mm^2",
"pulse_energy": "@attrs:metadata/instrument/beam/pump/pulse_energy",
"pulse_energy/@units": "µJ",
"average_power": "@attrs:metadata/instrument/beam/pump/average_power",
"average_power/@units": "mW",
"extent": "@attrs:metadata/instrument/beam/pump/extent",
"extent/@units": "µm",
"fluence": "@attrs:metadata/instrument/beam/pump/fluence",
"fluence/@units": "mJ/cm^2",
"associated_source": "/entry/instrument/source_pump"
},
"/ENTRY[entry]/INSTRUMENT[instrument]/MANIPULATOR[manipulator]": {
"temperature_sensor": {
"name": "sample_temperature",
"measurement": "temperature",
"value": "@attrs:metadata/file/trARPES:Carving:TEMP_RBV",
"value/@units": "K"
},
"sample_bias_voltmeter": {
"name": "sample_bias",
"measurement": "voltage",
"value": "@attrs:metadata/file/KTOF:Lens:Sample:V",
"value/@units": "V"
},
"depends_on": "/entry/instrument/manipulator/transformations/trans_z",
"TRANSFORMATIONS[transformations]": {
"AXISNAME[trans_z]": -0.32,
"AXISNAME[trans_z]/@depends_on": "rot_z",
"AXISNAME[trans_z]/@transformation_type": "translation",
"AXISNAME[trans_z]/@units": "m",
"AXISNAME[trans_z]/@vector": [
0,
0,
1
],
"AXISNAME[rot_z]/@depends_on": "rot_x",
"AXISNAME[rot_z]": -25.0,
"AXISNAME[rot_z]/@transformation_type": "rotation",
"AXISNAME[rot_z]/@units": "degrees",
"AXISNAME[rot_z]/@vector": [
0,
0,
1
],
"AXISNAME[rot_x]/@depends_on": ".",
"AXISNAME[rot_x]": -90.0,
"AXISNAME[rot_x]/@transformation_type": "rotation",
"AXISNAME[rot_x]/@units": "degrees",
"AXISNAME[rot_x]/@vector": [
1,
0,
0
]
}
},
"/ENTRY[entry]/SAMPLE[sample]": {
"preparation_date": "@attrs:metadata/sample/preparation_date",
"history/notes/type": "text/plain",
"history/notes/description": "@attrs:metadata/sample/sample_history",
"description": "@attrs:metadata/sample/chemical_formula",
"name": "@attrs:metadata/sample/chemical_formula",
"situation": "vacuum",
"SUBSTANCE[substance]/molecular_formula_hill": "@attrs:metadata/sample/chemical_formula",
"temperature_env": {
"temperature_sensor": "@link:/entry/instrument/manipulator/temperature_sensor"
},
"gas_pressure_env": {
"pressure_gauge": "@link:/entry/instrument/pressure_gauge"
},
"bias_env": {
"voltmeter": "@link:/entry/instrument/manipulator/sample_bias_voltmeter"
},
"depends_on": "/entry/sample/transformations/corrected_phi",
"TRANSFORMATIONS[transformations]": {
"AXISNAME[corrected_phi]/@depends_on": "rot_omg",
"AXISNAME[corrected_phi]": 90.0,
"AXISNAME[corrected_phi]/@units": "degrees",
"AXISNAME[corrected_phi]/@transformation_type": "rotation",
"AXISNAME[corrected_phi]/@vector": [
0,
1,
0
],
"AXISNAME[rot_omg]/@depends_on": "rot_phi",
"AXISNAME[rot_omg]": "@attrs:metadata/file/trARPES:Carving:OMG.RBV",
"AXISNAME[rot_omg]/@units": "degrees",
"AXISNAME[rot_omg]/@transformation_type": "rotation",
"AXISNAME[rot_omg]/@vector": [
1,
0,
0
],
"AXISNAME[rot_phi]/@depends_on": "rot_tht",
"AXISNAME[rot_phi]": "@attrs:metadata/file/trARPES:Carving:PHI.RBV",
"AXISNAME[rot_phi]/@units": "degrees",
"AXISNAME[rot_phi]/@transformation_type": "rotation",
"AXISNAME[rot_phi]/@vector": [
0,
1,
0
],
"AXISNAME[rot_tht]/@depends_on": "trans_z",
"AXISNAME[rot_tht]": "@attrs:metadata/file/trARPES:Carving:THT.RBV",
"AXISNAME[rot_tht]/@units": "degrees",
"AXISNAME[rot_tht]/@transformation_type": "rotation",
"AXISNAME[rot_tht]/@vector": [
0,
0,
1
],
"AXISNAME[trans_z]/@depends_on": "trans_y",
"AXISNAME[trans_z]": "@attrs:metadata/file/trARPES:Carving:TRZ.RBV",
"AXISNAME[trans_z]/@units": "mm",
"AXISNAME[trans_z]/@transformation_type": "translation",
"AXISNAME[trans_z]/@vector": [
0,
0,
1
],
"AXISNAME[trans_y]/@depends_on": "trans_x",
"AXISNAME[trans_y]": "@attrs:metadata/file/trARPES:Carving:TRY.RBV",
"AXISNAME[trans_y]/@units": "mm",
"AXISNAME[trans_y]/@transformation_type": "translation",
"AXISNAME[trans_y]/@vector": [
0,
1,
0
],
"AXISNAME[trans_x]/@depends_on": "/entry/instrument/manipulator/transformations/trans_z",
"AXISNAME[trans_x]": "@attrs:metadata/file/trARPES:Carving:TRX.RBV",
"AXISNAME[trans_x]/@units": "mm",
"AXISNAME[trans_x]/@transformation_type": "translation",
"AXISNAME[trans_x]/@vector": [
1,
0,
0
]
}
},
"/ENTRY[entry]/PROCESS_MPES[process]/DISTORTION[distortion]": {
"symmetry": "@attrs:metadata/momentum_correction/rotsym",
"symmetry/@units": "",
"original_centre": "@attrs:metadata/momentum_correction/pcent",
"original_centre/@units": "",
"original_points": "@attrs:metadata/momentum_correction/pouter",
"original_points/@units": "",
"cdeform_field": "@attrs:metadata/momentum_correction/cdeform_field",
"cdeform_field/@units": "",
"rdeform_field": "@attrs:metadata/momentum_correction/rdeform_field",
"rdeform_field/@units": ""
},
"/ENTRY[entry]/PROCESS_MPES[process]/REGISTRATION[registration]": {
"depends_on": "/entry/process/registration/transformations/rot_z",
"TRANSFORMATIONS[transformations]": {
"AXISNAME[trans_x]": "@attrs:metadata/momentum_correction/adjust_params/xtrans",
"AXISNAME[trans_x]/@transformation_type": "translation",
"AXISNAME[trans_x]/@units": "pixels",
"AXISNAME[trans_x]/@vector": "@attrs:metadata/momentum_correction/adjust_params/x_vector",
"AXISNAME[trans_x]/@depends_on": ".",
"AXISNAME[trans_y]": "@attrs:metadata/momentum_correction/adjust_params/ytrans",
"AXISNAME[trans_y]/@units": "pixels",
"AXISNAME[trans_y]/@transformation_type": "translation",
"AXISNAME[trans_y]/@vector": "@attrs:metadata/momentum_correction/adjust_params/y_vector",
"AXISNAME[trans_y]/@depends_on": "trans_x",
"AXISNAME[rot_z]": "@attrs:metadata/momentum_correction/adjust_params/angle",
"AXISNAME[rot_z]/@units": "degrees",
"AXISNAME[rot_z]/@transformation_type": "rotation",
"AXISNAME[rot_z]/@offset": "@attrs:metadata/momentum_correction/adjust_params/offset",
"AXISNAME[rot_z]/@vector": "@attrs:metadata/momentum_correction/adjust_params/rotation_vector",
"AXISNAME[rot_z]/@depends_on": "trans_y"
}
},
"/ENTRY[entry]/PROCESS_MPES[process]/energy_calibration":{
"coefficients": "@attrs:metadata/energy_correction/calibration/coefficients",
"coefficients/@units": "",
"fit_function": "@attrs:metadata/energy_correction/calibration/fit_function",
"original_axis": "@attrs:metadata/energy_correction/tof",
"original_axis/@units": "ns",
"calibrated_axis": "@attrs:metadata/energy_correction/calibration/axis",
"calibrated_axis/@units": "eV",
"physical_quantity": "energy"
},
"/ENTRY[entry]/PROCESS_MPES[process]/CALIBRATION[kx_calibration]": {
"scaling": "@attrs:metadata/momentum_correction/calibration/scale_kx",
"scaling/@units": "",
"offset": "@attrs:metadata/momentum_correction/offset_kx",
"offset/@units": "",
"calibrated_axis": "@attrs:metadata/momentum_correction/calibration/axis_kx",
"calibrated_axis/@units": "1/angstrom",
"physical_quantity": "momentum"
},
"/ENTRY[entry]/PROCESS_MPES[process]/CALIBRATION[ky_calibration]": {
"scaling": "@attrs:metadata/momentum_correction/calibration/scale_ky",
"scaling/@units": "",
"offset": "@attrs:metadata/momentum_correction/offset_ky",
"offset/@units": "",
"calibrated_axis": "@attrs:metadata/momentum_correction/calibration/axis_ky",
"calibrated_axis/@units": "1/angstrom",
"physical_quantity": "momentum"
},
"/ENTRY[entry]/data": {
"@axes": "@data:dims",
"@*_indices": "@data:*.index",
"@signal": "data",
"data": "@data:data",
"data/@units": "counts",
"*": "@data:*.data",
"*/@units": "@data:*.unit",
"energy/@type": "binding"
}
}
\ No newline at end of file
...@@ -8,7 +8,7 @@ definitions: ...@@ -8,7 +8,7 @@ definitions:
m_annotations: m_annotations:
template: template:
reader: mpes reader: mpes
nxdl: NXmpes.nxdl nxdl: NXmpes
eln: eln:
hide: [] hide: []
quantities: quantities:
......
core:
# Set verbosity of sed
verbose: True
# The loader to use. The mpes loader allows for loading hdf5 files from the METIS momentum microscope.
loader: mpes
# Option to use the copy tool to mirror data to a local storage location before processing.
use_copy_tool: False
# path to the root of the source data directory
copy_tool_source: "/path/to/data/"
# path to the root or the local data storage
copy_tool_dest: "/path/to/localDataStore/"
# optional keyworkds for the copy tool:
copy_tool_kwds:
# number of parallel copy jobs
ntasks: 20
# group id to set for copied files and folders
gid: 1001
dataframe:
# hdf5 group names to read from the h5 files (for mpes reader)
hdf5_groupnames: ["Stream_0", "Stream_1", "Stream_2", "Stream_4"]
# aliases to assign to the dataframe columns for the corresponding hdf5 streams
hdf5_aliases:
Stream_0: "X"
Stream_1: "Y"
Stream_2: "t"
Stream_4: "ADC"
# dataframe column name for the time stamp column
time_stamp_alias: "timeStamps"
# hdf5 group name containing eventIDs occuring at every millisecond (used to calculate timestamps)
ms_markers_group: "msMarkers"
# hdf5 attribute containing the timestamp of the first event in a file
first_event_time_stamp_key: "FirstEventTimeStamp"
# Time stepping in seconds of the succesive events in the timed dataframe
timed_dataframe_unit_time: 0.001
# list of columns to apply jitter to
jitter_cols: ["X", "Y", "t", "ADC"]
# dataframe column containing x coordinates
x_column: "X"
# dataframe column containing y coordinates
y_column: "Y"
# dataframe column containing time-of-flight data
tof_column: "t"
# dataframe column containing analog-to-digital data
adc_column: "ADC"
# dataframe column containing corrected x coordinates
corrected_x_column: "Xm"
# dataframe column containing corrected y coordinates
corrected_y_column: "Ym"
# dataframe column containing corrected time-of-flight data
corrected_tof_column: "tm"
# dataframe column containing kx coordinates
kx_column: "kx"
# dataframe column containing ky coordinates
ky_column: "ky"
# dataframe column containing energy data
energy_column: "energy"
# dataframe column containing delay data
delay_column: "delay"
# time length of a base time-of-flight bin in ns
tof_binwidth: 4.125e-12
# Binning factor of the tof_column-data compared to tof_binwidth (2^(tof_binning-1))
tof_binning: 2
# binning factor used for the adc coordinate (2^(adc_binning-1))
adc_binning: 3
# Default units for dataframe entries
units:
X: 'step'
Y: 'step'
t: 'step'
tof_voltage: 'V'
extractor_voltage: 'V'
extractor_current: 'A'
cryo_temperature: 'K'
sample_temperature: 'K'
dld_time: 'ns'
delay: 'ps'
timeStamp: 's'
energy: 'eV'
E: 'eV'
kx: '1/A'
ky: '1/A'
energy:
# Number of bins to use for energy calibration traces
bins: 1000
# Bin ranges to use for energy calibration curves (for tof_binning=0)
ranges: [128000, 138000]
# hdf5 path to attribute storing bias information for a given file
bias_key: "@KTOF:Lens:Sample:V"
# Option to normalize energy calibration traces
normalize: True
# Pixel range for smoothing
normalize_span: 7
# Spline order for smoothing
normalize_order: 1
# Radius parameter for fastdtw algorithm to find path correspondence
fastdtw_radius: 2
# Window around a peak to make sure that no other peaks are present
peak_window: 7
# Mehtod to use for energy calibration
calibration_method: "lmfit"
# Energy scale to use for energy calibration
energy_scale: "kinetic"
# Approximate position of the high-energy-cutoff in tof_column bins,
# used for displaying a graph to choose the energy correction function parameters.
tof_fermi: 132250
# TOF range to visualize for the correction tool around tof_fermi
tof_width: [-600, 1000]
# x-intergration range for the correction tool around the center pixel
x_width: [-20, 20]
# y-intergration range for the correction tool around the center pixel
y_width: [-20, 20]
# High intensity cutoff for the visulaization tool
color_clip: 300
correction:
# Correction type
correction_type: "Lorentzian"
# Correction amplitude
amplitude: 2.5
# center coordinates for the correction (in detector coordinates)
center: [730.0, 730.0]
# gamma value for the Lorentzian correction (same for x and y)
gamma: 920.0
# sigma value for the gaussian correction (same for x and y)
sigma: 700.0
# diameter value for the radial correction (same for x and y)
diameter: 3000.0
# Default energy calibration
calibration:
# time-of-flight distance (in m)
d: 1.058206295066418
# time offset (in ns)
t0: 7.684410678887588e-07
# energy offset (in eV)
E0: -30.440035779171833
# energy scale of calibration
energy_scale: "kinetic"
momentum:
# binning axes to use for momentum correction/calibration.
# Axes names starting with "@" refer to keys in the "dataframe" section
axes: ["@x_column", "@y_column", "@tof_column"]
# Bin numbers used for the respective axes
bins: [512, 512, 300]
# bin ranges to use (in unbinned detector coordinates)
ranges: [[-256, 1792], [-256, 1792], [132000, 136000]]
# The x/y pixel ranges of the detector
detector_ranges: [[0, 2048], [0, 2048]]
# The center pixel of the detector in the binned x/y coordinates
center_pixel: [256, 256]
# Sigma parameter for feature selection (intensity above background)
sigma: 5
# FWHM parameter for feature selection (width of features to extract)
fwhm: 8
# Sigma_radius parameter for feature selection (variation of radius size)
sigma_radius: 1
# default momentum calibration
calibration:
# x momentum scaleing factor
kx_scale: 0.010729535670610963
# y momentum scaleing factor
ky_scale: 0.010729535670610963
# x BZ center pixel
x_center: 256.0
# y BZ center pixel
y_center: 256.0
# x start value of the calibration dataset
rstart: -256.
# y start value of the calibration dataset
cstart: -256.
# x direction pixel stepping of the calibration dataset
rstep: 4.0
# y direction pixel stepping of the calibration dataset
cstep: 4.0
correction:
# default feature points used for calculating the distortion correction.
feature_points: [[203.2, 341.96], [299.16, 345.32], [350.25, 243.70], [304.38, 149.88], [199.52, 152.48], [154.28, 242.27], [248.29, 248.62]]
# rotational symmetry of the structure used for correction. Should be an even number
rotation_symmetry: 6
# Option whether the center of the structure is included in the feature points.
include_center: True
# Option whether the center should be included in the correction algorithm
use_center: True
delay:
# value ranges of the analog-to-digital converter axes used for encoding the delay stage position
# (in unbinned coordinates)
adc_range: [1900, 25600]
# hdf5 attribute containing the starting point of the delay stage
p1_key: "@trARPES:DelayStage:p1"
# hdf5 attribute containing the end point of the delay stage
p2_key: "@trARPES:DelayStage:p2"
# hdf5 attribute containing the t0 value of the delay stage
t0_key: "@trARPES:DelayStage:t0"
binning:
# Histogram computation mode to use.
hist_mode: "numba"
# Mode for hostogram recombination to use
mode: "fast"
# Whether to display a progress bar
pbar: True
# Number of parallel binning threads to use
num_cores: 20
# Number of multithreading threads per worker thread
threads_per_worker: 4
# API for numpy multithreading
threadpool_API: "blas"
histogram:
# number of bins used for histogram visualization
bins: [80, 80, 80, 80]
# default axes to use for histgram visualization.
# Axes names starting with "@" refer to keys in the "dataframe" section
axes: ["@x_column", "@y_column", "@tof_column", "@adc_column"]
# default ranges to use for histogram visualization (in unbinned detector coordinates)
ranges: [[0, 1800], [0, 1800], [128000, 138000], [0, 32000]]
metadata:
# URL of the epics archiver request engine
archiver_url: "http://aa0.fhi-berlin.mpg.de:17668/retrieval/data/getData.json?pv="
# EPICS channels to collect from EPICS archiver
epics_pvs: ["KTOF:Lens:Extr:I", "trARPES:Carving:TEMP_RBV", "trARPES:XGS600:PressureAC:P_RD", "KTOF:Lens:UDLD:V", "KTOF:Lens:Sample:V", "KTOF:Apertures:m1.RBV", "KTOF:Apertures:m2.RBV", "KTOF:Apertures:m3.RBV", "trARPES:Carving:TRX.RBV", "trARPES:Carving:TRY.RBV", "trARPES:Carving:TRZ.RBV", "trARPES:Carving:THT.RBV", "trARPES:Carving:PHI.RBV", "trARPES:Carving:OMG.RBV"]
# hdf5 attribute containing the field aperture "in" motor position
fa_in_channel: 'KTOF:Apertures:m1.RBV'
# hdf5 attribute containing the field aperture "hor" motor position
fa_hor_channel: 'KTOF:Apertures:m2.RBV'
# hdf5 attribute containing the contrast aperture "in" motor position
ca_in_channel: 'KTOF:Apertures:m3.RBV'
# dictionary containing contrast and field aperture motor positions and sizes
aperture_config:
"2018-01-23T19:35:15":
fa_size:
'750': [[-3.0, -1.4], [-5.4, -4.6]]
grid: [[-3.0, -1.4], [0.15, 1.75]]
'1500': [[-3.0, -1.4], [6.25, 7.75]]
'200': [[3.3, 4.4], [-5.4, -4.6]]
'500': [[3.3, 4.4], [0.15, 1.75]]
'1000': [[3.3, 4.4], [6.25, 7.75]]
'20': [[9.6, 10.1], [-5.4, -4.6]]
'50': [[9.6, 10.1], [0.15, 1.75]]
'100': [[9.6, 10.1], [6.25, 7.75]]
open: [[-15, -9.0], [-15, -8.9]]
ca_size:
'50': [8.0, 8.4]
'200': [-0.5, -0.9]
'100': [3.4, 3.8]
grid: [-5.3, -5.9]
open: [-12.0, -8]
"2020-01-23T19:35:15":
fa_size:
'750': [[-6.2, -4.8], [5.0, 6.0]]
grid: [[-6.2, -4.8], [-0.7, -0.3]]
'500': [[-6.2, -4.8], [-7.0, -6.0]]
'200': [[0.5, 0.9], [-0.7, -0.3]]
'100': [[0.5, 0.9], [-7.0, -6.0]]
'300': [[0.5, 0.9], [5.0, 6.0]]
'10': [[6.5, 6.9], [-7.0, -6.0]]
'20': [[6.5, 6.9], [-0.7, -0.3]]
'50': [[6.5, 6.9], [5.0, 6.0]]
open: [[-15, -8.5], [-15, -8.9]]
ca_size:
'50': [9.0, 11.0]
'300': [-0.1, 0.1]
'200': [0.7, 1.5]
'100': [5.1, 5.9]
grid: [-5.5, -5.2]
open: [-15, -8.5]
# dictionary containing lens mode configurations
lens_mode_config:
"6kV_kmodem4.0_20VTOF_v3.sav":
Extr: 6000.0
UCA: 1200
UFA: 600.0
Z1: 2452.9
Z2: 1489.9
A: 420.07
B: 2494.8
C: 489.2
D: 228.05
E: 113.82
F: 54.232
G: 20.0
H: 25.5
I: 36.0
TOF: 20.0
MCPfront: 20.0
"6kV_kmodem4.0_30VTOF_453ns_focus.sav":
Extr: 6000.0
UCA: 1200
UFA: 600.0
Z1: 2452.9
Z2: 1489.9
A: 403.07
B: 2500
C: 422.25
D: 208.88
E: 199.49
F: 68.735
G: 30.0
H: 30.0
I: 44.5
TOF: 30.0
MCPfront: 30.0
nexus:
# pynxtools reader to use for saving NXmpes files
reader: "mpes"
# NeXus application definition to use for saving
definition: "NXmpes"
# List conatining additional input files to be handed to the pynxtools converter tool,
# e.g. containing a configuration file, and additional metadata.
input_files: ["config_file.json"]
...@@ -9,7 +9,7 @@ anyio==4.6.0 # via httpx, starlette, watchfiles, -r requirements.tx ...@@ -9,7 +9,7 @@ anyio==4.6.0 # via httpx, starlette, watchfiles, -r requirements.tx
arrow==1.3.0 # via isoduration, -r requirements.txt arrow==1.3.0 # via isoduration, -r requirements.txt
ase==3.22.1 # via matid, -r requirements.txt, nomad-lab (pyproject.toml) ase==3.22.1 # via matid, -r requirements.txt, nomad-lab (pyproject.toml)
asgiref==3.8.1 # via -r requirements.txt, nomad-lab (pyproject.toml) asgiref==3.8.1 # via -r requirements.txt, nomad-lab (pyproject.toml)
astroid==3.3.4 # via nomad-lab (pyproject.toml) astroid==3.3.5 # via nomad-lab (pyproject.toml)
asttokens==2.4.1 # via devtools asttokens==2.4.1 # via devtools
async-generator==1.10 # via jupyterhub, -r requirements.txt async-generator==1.10 # via jupyterhub, -r requirements.txt
async-property==0.2.2 # via python-keycloak, -r requirements.txt async-property==0.2.2 # via python-keycloak, -r requirements.txt
...@@ -41,7 +41,7 @@ cycler==0.12.1 # via matplotlib, -r requirements.txt ...@@ -41,7 +41,7 @@ cycler==0.12.1 # via matplotlib, -r requirements.txt
decorator==5.1.1 # via validators, -r requirements.txt decorator==5.1.1 # via validators, -r requirements.txt
deprecation==2.1.0 # via python-keycloak, -r requirements.txt deprecation==2.1.0 # via python-keycloak, -r requirements.txt
devtools==0.12.2 # via nomad-lab (pyproject.toml) devtools==0.12.2 # via nomad-lab (pyproject.toml)
dnspython==2.6.1 # via email-validator, pymongo, -r requirements.txt dnspython==2.7.0 # via email-validator, pymongo, -r requirements.txt
docker==7.1.0 # via dockerspawner, -r requirements.txt docker==7.1.0 # via dockerspawner, -r requirements.txt
dockerspawner==13.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml) dockerspawner==13.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml)
docstring-parser==0.16 # via -r requirements.txt, nomad-lab (pyproject.toml) docstring-parser==0.16 # via -r requirements.txt, nomad-lab (pyproject.toml)
...@@ -169,13 +169,13 @@ python-dateutil==2.9.0.post0 # via arrow, celery, elasticsearch-dsl, ghp-import ...@@ -169,13 +169,13 @@ python-dateutil==2.9.0.post0 # via arrow, celery, elasticsearch-dsl, ghp-import
python-dotenv==1.0.1 # via uvicorn, -r requirements.txt python-dotenv==1.0.1 # via uvicorn, -r requirements.txt
python-gitlab==2.10.1 # via nomad-lab (pyproject.toml) python-gitlab==2.10.1 # via nomad-lab (pyproject.toml)
python-json-logger==2.0.2 # via jupyter-telemetry, -r requirements.txt, nomad-lab (pyproject.toml) python-json-logger==2.0.2 # via jupyter-telemetry, -r requirements.txt, nomad-lab (pyproject.toml)
python-keycloak==4.6.0 # via -r requirements.txt, nomad-lab (pyproject.toml) python-keycloak==4.6.2 # via -r requirements.txt, nomad-lab (pyproject.toml)
python-logstash==0.4.6 # via -r requirements.txt, nomad-lab (pyproject.toml) python-logstash==0.4.6 # via -r requirements.txt, nomad-lab (pyproject.toml)
python-magic==0.4.24 # via -r requirements.txt, nomad-lab (pyproject.toml) python-magic==0.4.24 # via -r requirements.txt, nomad-lab (pyproject.toml)
python-magic-bin==0.4.14 ; sys_platform == 'win32' # via -r requirements.txt, nomad-lab (pyproject.toml) python-magic-bin==0.4.14 ; sys_platform == 'win32' # via -r requirements.txt, nomad-lab (pyproject.toml)
python-multipart==0.0.12 # via -r requirements.txt, nomad-lab (pyproject.toml) python-multipart==0.0.12 # via -r requirements.txt, nomad-lab (pyproject.toml)
pytz==2024.2 # via mkdocs-git-revision-date-localized-plugin, mongomock, pandas, -r requirements.txt, nomad-lab (pyproject.toml) pytz==2024.2 # via mkdocs-git-revision-date-localized-plugin, mongomock, pandas, -r requirements.txt, nomad-lab (pyproject.toml)
pywin32==306 ; sys_platform == 'win32' # via docker, -r requirements.txt pywin32==307 ; sys_platform == 'win32' # via docker, -r requirements.txt
pyyaml==6.0.2 # via mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, pybtex, pymdown-extensions, pyyaml-env-tag, uvicorn, -r requirements.txt, nomad-lab (pyproject.toml) pyyaml==6.0.2 # via mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, pybtex, pymdown-extensions, pyyaml-env-tag, uvicorn, -r requirements.txt, nomad-lab (pyproject.toml)
pyyaml-env-tag==0.1 # via mkdocs pyyaml-env-tag==0.1 # via mkdocs
rdflib==5.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml) rdflib==5.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml)
...@@ -190,7 +190,7 @@ rfc3987==1.3.8 # via jsonschema, -r requirements.txt ...@@ -190,7 +190,7 @@ rfc3987==1.3.8 # via jsonschema, -r requirements.txt
rope==0.21.0 # via nomad-lab (pyproject.toml) rope==0.21.0 # via nomad-lab (pyproject.toml)
ruamel-yaml==0.18.6 # via jupyter-telemetry, oauthenticator, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml) ruamel-yaml==0.18.6 # via jupyter-telemetry, oauthenticator, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
ruamel-yaml-clib==0.2.8 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' # via ruamel-yaml, -r requirements.txt ruamel-yaml-clib==0.2.8 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' # via ruamel-yaml, -r requirements.txt
ruff==0.6.8 # via nomad-lab (pyproject.toml) ruff==0.6.9 # via nomad-lab (pyproject.toml)
runstats==2.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml) runstats==2.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml)
scikit-learn==1.5.2 # via matid, -r requirements.txt, nomad-lab (pyproject.toml) scikit-learn==1.5.2 # via matid, -r requirements.txt, nomad-lab (pyproject.toml)
scipy==1.14.1 # via ase, pymatgen, scikit-learn, -r requirements.txt, nomad-lab (pyproject.toml) scipy==1.14.1 # via ase, pymatgen, scikit-learn, -r requirements.txt, nomad-lab (pyproject.toml)
...@@ -214,11 +214,11 @@ structlog==24.4.0 # via -r requirements.txt, nomad-lab (pyproject.toml) ...@@ -214,11 +214,11 @@ structlog==24.4.0 # via -r requirements.txt, nomad-lab (pyproject.toml)
sympy==1.13.3 # via pymatgen, -r requirements.txt sympy==1.13.3 # via pymatgen, -r requirements.txt
tabulate==0.8.9 # via nomad-openbis, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml) tabulate==0.8.9 # via nomad-openbis, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
tenacity==9.0.0 # via plotly, -r requirements.txt tenacity==9.0.0 # via plotly, -r requirements.txt
termcolor==2.4.0 # via mkdocs-macros-plugin termcolor==2.5.0 # via mkdocs-macros-plugin
texttable==1.7.0 # via nomad-openbis, -r requirements.txt texttable==1.7.0 # via nomad-openbis, -r requirements.txt
threadpoolctl==3.5.0 # via scikit-learn, -r requirements.txt threadpoolctl==3.5.0 # via scikit-learn, -r requirements.txt
tifffile==2024.9.20 # via h5grove, -r requirements.txt tifffile==2024.9.20 # via h5grove, -r requirements.txt
tomli==2.0.2 ; python_full_version <= '3.11' # via coverage tomli==2.0.2 ; python_full_version == '3.11' # via coverage
toposort==1.10 # via -r requirements.txt, nomad-lab (pyproject.toml) toposort==1.10 # via -r requirements.txt, nomad-lab (pyproject.toml)
tornado==6.4.1 # via jupyterhub, -r requirements.txt tornado==6.4.1 # via jupyterhub, -r requirements.txt
tqdm==4.66.5 # via pyedr, pymatgen, -r requirements.txt tqdm==4.66.5 # via pyedr, pymatgen, -r requirements.txt
......
This diff is collapsed.
...@@ -35,7 +35,7 @@ cryptography==43.0.1 # via certipy, jwcrypto, pyjwt, rfc3161ng ...@@ -35,7 +35,7 @@ cryptography==43.0.1 # via certipy, jwcrypto, pyjwt, rfc3161ng
cycler==0.12.1 # via matplotlib cycler==0.12.1 # via matplotlib
decorator==5.1.1 # via validators decorator==5.1.1 # via validators
deprecation==2.1.0 # via python-keycloak deprecation==2.1.0 # via python-keycloak
dnspython==2.6.1 # via email-validator, pymongo dnspython==2.7.0 # via email-validator, pymongo
docker==7.1.0 # via dockerspawner docker==7.1.0 # via dockerspawner
dockerspawner==13.0.0 # via nomad-lab (pyproject.toml) dockerspawner==13.0.0 # via nomad-lab (pyproject.toml)
docstring-parser==0.16 # via nomad-lab (pyproject.toml) docstring-parser==0.16 # via nomad-lab (pyproject.toml)
...@@ -132,13 +132,13 @@ pyrsistent==0.20.0 # via jsonschema ...@@ -132,13 +132,13 @@ pyrsistent==0.20.0 # via jsonschema
python-dateutil==2.9.0.post0 # via arrow, celery, elasticsearch-dsl, jupyterhub, matplotlib, nomad-openbis, pandas, rfc3161ng python-dateutil==2.9.0.post0 # via arrow, celery, elasticsearch-dsl, jupyterhub, matplotlib, nomad-openbis, pandas, rfc3161ng
python-dotenv==1.0.1 # via uvicorn python-dotenv==1.0.1 # via uvicorn
python-json-logger==2.0.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) python-json-logger==2.0.2 # via jupyter-telemetry, nomad-lab (pyproject.toml)
python-keycloak==4.6.0 # via nomad-lab (pyproject.toml) python-keycloak==4.6.2 # via nomad-lab (pyproject.toml)
python-logstash==0.4.6 # via nomad-lab (pyproject.toml) python-logstash==0.4.6 # via nomad-lab (pyproject.toml)
python-magic==0.4.24 # via nomad-lab (pyproject.toml) python-magic==0.4.24 # via nomad-lab (pyproject.toml)
python-magic-bin==0.4.14 ; sys_platform == 'win32' # via nomad-lab (pyproject.toml) python-magic-bin==0.4.14 ; sys_platform == 'win32' # via nomad-lab (pyproject.toml)
python-multipart==0.0.12 # via nomad-lab (pyproject.toml) python-multipart==0.0.12 # via nomad-lab (pyproject.toml)
pytz==2024.2 # via mongomock, pandas, nomad-lab (pyproject.toml) pytz==2024.2 # via mongomock, pandas, nomad-lab (pyproject.toml)
pywin32==306 ; sys_platform == 'win32' # via docker pywin32==307 ; sys_platform == 'win32' # via docker
pyyaml==6.0.2 # via pybtex, uvicorn, nomad-lab (pyproject.toml) pyyaml==6.0.2 # via pybtex, uvicorn, nomad-lab (pyproject.toml)
rdflib==5.0.0 # via nomad-lab (pyproject.toml) rdflib==5.0.0 # via nomad-lab (pyproject.toml)
rdkit==2023.9.5 # via nomad-lab (pyproject.toml) rdkit==2023.9.5 # via nomad-lab (pyproject.toml)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment