Commits (1)
......@@ -10,10 +10,10 @@ The set of important files for the parser are explained in the following,
- [mpesparser](mpesparser): Main folder of the parser.
- [mpesparser/__init__.py](mpesparser/__init__.py): Parser module initialization code.
- [mpesparser/__main__.py](mpesparser/__main__.py): Parser module run file.
- [mpesparser/mpes.nomadmetainfo.json](mpesparser/mpes.nomadmetainfo.json): MPES metadata definitions.
- [mpesparser/metainfo/mpes](mpesparser/metainfo/mpes.py): MPES metadata definitions.
To run the parser:
```
cd nomad/dependencies/parsers/parser-mpes
python -m parser-mpes tests/mpes.metadata_redacted.json
python -m parser-mpes tests/mpes.meta
```
# Copyright 2016-2018 Markus Scheidgen
# Copyright 2016-2020 R. Patrick Xian, Markus Scheidgen
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
......@@ -20,11 +20,8 @@ import numpy as np
from datetime import datetime
from nomad.parsing.parser import FairdiParser
from nomad.datamodel.metainfo.general_experimental import (
section_experiment as SectionExperiment,
section_data as SectionData,
section_method as SectionMethod,
section_sample as SectionSample)
from nomad.datamodel.metainfo.common_experimental import (
Experiment, Data, Method, Sample, Material, Location)
class MPESParser(FairdiParser):
......@@ -39,113 +36,121 @@ class MPESParser(FairdiParser):
with open(filepath, 'rt') as f:
data = json.load(f)
section_experiment = archive.m_create(SectionExperiment)
experiment = archive.m_create(Experiment)
experiment.raw_metadata = data
# Read general experimental parameters
# section_experiment.experiment_location = ', '.join(reversed(re.findall(r"[\w']+", data.get('experiment_location'))))
section_experiment.experiment_location = data.get('experiment_location')
start, end = data.get('experiment_date').split(' ')
try:
section_experiment.experiment_time = int(datetime.strptime(start, '%m.%Y').timestamp())
except ValueError:
pass
try:
section_experiment.experiment_end_time = int(datetime.strptime(end, '%m.%Y').timestamp())
except ValueError:
pass
section_experiment.experiment_summary = data.get('experiment_summary')
section_experiment.experiment_facility_institution = data.get('facility_institution')
section_experiment.experiment_facility_name = data.get('facility_name')
# experiment.experiment_location = ', '.join(reversed(re.findall(r"[\w']+", data.get('experiment_location'))))
location = experiment.m_create(Location)
location.address = data.get('experiment_location')
location.institution = data.get('facility_institution')
location.facility = data.get('facility')
dates = data.get('experiment_date')
if dates:
start, end = dates.split(' ')
try:
experiment.experiment_time = datetime.strptime(start, '%m.%Y')
except ValueError:
pass
try:
experiment.experiment_end_time = datetime.strptime(end, '%m.%Y')
except ValueError:
pass
experiment.experiment_summary = data.get('experiment_summary')
# Read data parameters
section_data = section_experiment.m_create(SectionData)
section_data.data_repository_name = data.get('data_repository_name')
section_data.data_repository_url = data.get('data_repository_url')
section_data.data_preview_url = 'preview.png'
section_data = experiment.m_create(Data)
section_data.repository_name = data.get('data_repository_name')
section_data.entry_repository_url = data.get('data_repository_url')
section_data.repository_url = '/'.join(data.get('data_repository_url').split('/')[0:3])
section_data.preview_url = 'preview.png'
# Read method parameters
section_method = section_experiment.m_create(SectionMethod)
section_method.experiment_method_name = data.get('experiment_method')
section_method.experiment_method_abbreviation = data.get('experiment_method_abbrv')
section_method.equipment_description = data.get('equipment_description')
section_method.probing_method = 'laser pulses'
section_method.general_beamline = data.get('beamline')
section_method.general_source_pump = data.get('source_pump')
section_method.general_source_probe = data.get('source_probe')
section_method.general_measurement_axis = np.array(re.findall(r"[\w']+", data.get('measurement_axis')))
section_method.general_physical_axis = np.array(re.findall(r"[\w']+", data.get('physical_axis')))
method = experiment.m_create(Method)
method.data_type = 'multidimensional spectrum'
method.method_name = data.get('experiment_method')
method.method_abbreviation = data.get('experiment_method_abbrv')
method.instrument_description = data.get('equipment_description')
method.probing_method = 'laser pulses'
method.general_beamline = data.get('beamline')
method.general_source_pump = data.get('source_pump')
method.general_source_probe = data.get('source_probe')
method.general_measurement_axis = np.array(re.findall(r"[\w']+", data.get('measurement_axis')))
method.general_physical_axis = np.array(re.findall(r"[\w']+", data.get('physical_axis')))
# Read parameters related to experimental source
# source_gid = backend.openSection('section_experiment_source_parameters')
section_method.source_pump_repetition_rate = data.get('pump_rep_rate')
section_method.source_pump_pulse_duration = data.get('pump_pulse_duration')
section_method.source_pump_wavelength = data.get('pump_wavelength')
section_method.source_pump_spectrum = np.array(data.get('pump_spectrum'))
section_method.source_pump_photon_energy = data.get('pump_photon_energy')
section_method.source_pump_size = np.array(data.get('pump_size'))
section_method.source_pump_fluence = np.array(data.get('pump_fluence'))
section_method.source_pump_polarization = data.get('pump_polarization')
section_method.source_pump_bunch = data.get('pump_bunch')
section_method.source_probe_repetition_rate = data.get('probe_rep_rate')
section_method.source_probe_pulse_duration = data.get('probe_pulse_duration')
section_method.source_probe_wavelength = data.get('probe_wavelength')
section_method.source_probe_spectrum = np.array(data.get('probe_spectrum'))
section_method.source_probe_photon_energy = data.get('probe_photon_energy')
section_method.source_probe_size = np.array(data.get('probe_size'))
section_method.source_probe_fluence = np.array(data.get('probe_fluence'))
section_method.source_probe_polarization = data.get('probe_polarization')
section_method.source_probe_bunch = data.get('probe_bunch')
section_method.source_temporal_resolution = data.get('temporal_resolution')
# source_gid = backend.openSection('experiment_source_parameters')
method.source_pump_repetition_rate = data.get('pump_rep_rate')
method.source_pump_pulse_duration = data.get('pump_pulse_duration')
method.source_pump_wavelength = data.get('pump_wavelength')
method.source_pump_spectrum = np.array(data.get('pump_spectrum'))
method.source_pump_photon_energy = data.get('pump_photon_energy')
method.source_pump_size = np.array(data.get('pump_size'))
method.source_pump_fluence = np.array(data.get('pump_fluence'))
method.source_pump_polarization = data.get('pump_polarization')
method.source_pump_bunch = data.get('pump_bunch')
method.source_probe_repetition_rate = data.get('probe_rep_rate')
method.source_probe_pulse_duration = data.get('probe_pulse_duration')
method.source_probe_wavelength = data.get('probe_wavelength')
method.source_probe_spectrum = np.array(data.get('probe_spectrum'))
method.source_probe_photon_energy = data.get('probe_photon_energy')
method.source_probe_size = np.array(data.get('probe_size'))
method.source_probe_fluence = np.array(data.get('probe_fluence'))
method.source_probe_polarization = data.get('probe_polarization')
method.source_probe_bunch = data.get('probe_bunch')
method.source_temporal_resolution = data.get('temporal_resolution')
# Read parameters related to detector
# detector_gid = backend.openSection('section_experiment_detector_parameters')
section_method.detector_extractor_voltage = data.get('extractor_voltage')
section_method.detector_work_distance = data.get('work_distance')
section_method.detector_lens_names = np.array(re.findall(r"[\w']+", data.get('lens_names')))
section_method.detector_lens_voltages = np.array(data.get('lens_voltages'))
section_method.detector_tof_distance = data.get('tof_distance')
section_method.detector_tof_voltages = np.array(data.get('tof_voltages'))
section_method.detector_sample_bias = data.get('sample_bias')
section_method.detector_magnification = data.get('magnification')
section_method.detector_voltages = np.array(data.get('detector_voltages'))
section_method.detector_type = data.get('detector_type')
section_method.detector_sensor_size = np.array(data.get('sensor_size'))
section_method.detector_sensor_count = data.get('sensor_count')
section_method.detector_sensor_pixel_size = np.array(data.get('sensor_pixel_size'))
section_method.detector_calibration_x_to_momentum = np.array(data.get('calibration_x_to_momentum'))
section_method.detector_calibration_y_to_momentum = np.array(data.get('calibration_y_to_momentum'))
section_method.detector_calibration_tof_to_energy = np.array(data.get('calibration_tof_to_energy'))
section_method.detector_calibration_stage_to_delay = np.array(data.get('calibration_stage_to_delay'))
section_method.detector_calibration_other_converts = np.array(data.get('calibration_other_converts'))
section_method.detector_momentum_resolution = np.array(data.get('momentum_resolution'))
section_method.detector_spatial_resolution = np.array(data.get('spatial_resolution'))
section_method.detector_energy_resolution = np.array(data.get('energy_resolution'))
# detector_gid = backend.openSection('experiment_detector_parameters')
method.detector_extractor_voltage = data.get('extractor_voltage')
method.detector_work_distance = data.get('work_distance')
method.detector_lens_names = np.array(re.findall(r"[\w']+", data.get('lens_names')))
method.detector_lens_voltages = np.array(data.get('lens_voltages'))
method.detector_tof_distance = data.get('tof_distance')
method.detector_tof_voltages = np.array(data.get('tof_voltages'))
method.detector_sample_bias = data.get('sample_bias')
method.detector_magnification = data.get('magnification')
method.detector_voltages = np.array(data.get('detector_voltages'))
method.detector_type = data.get('detector_type')
method.detector_sensor_size = np.array(data.get('sensor_size'))
method.detector_sensor_count = data.get('sensor_count')
method.detector_sensor_pixel_size = np.array(data.get('sensor_pixel_size'))
method.detector_calibration_x_to_momentum = np.array(data.get('calibration_x_to_momentum'))
method.detector_calibration_y_to_momentum = np.array(data.get('calibration_y_to_momentum'))
method.detector_calibration_tof_to_energy = np.array(data.get('calibration_tof_to_energy'))
method.detector_calibration_stage_to_delay = np.array(data.get('calibration_stage_to_delay'))
method.detector_calibration_other_converts = np.array(data.get('calibration_other_converts'))
method.detector_momentum_resolution = np.array(data.get('momentum_resolution'))
method.detector_spatial_resolution = np.array(data.get('spatial_resolution'))
method.detector_energy_resolution = np.array(data.get('energy_resolution'))
# Read parameters related to sample
section_sample = section_experiment.m_create(SectionSample)
section_sample.sample_description = data.get('sample_description')
section_sample.sample_id = data.get('sample_id')
section_sample.sample_state_of_matter = data.get('sample_state')
section_sample.sample_purity = data.get('sample_purity')
section_sample.sample_surface_termination = data.get('sample_surface_termination')
section_sample.sample_layers = data.get('sample_layers')
section_sample.sample_stacking_order = data.get('sample_stacking_order')
section_sample.sample_space_group = data.get('sample_space_group')
section_sample.sample_chemical_name = data.get('chemical_name')
section_sample.sample_chemical_formula = data.get('chemical_formula')
# backend.addArrayValues('sample_chemical_elements', np.array(re.findall(r"[\w']+", data.get('chemical_elements'))))
sample = experiment.m_create(Sample)
sample.sample_description = data.get('sample_description')
sample.sample_id = data.get('sample_id')
sample.sample_state_of_matter = data.get('sample_state')
sample.sample_purity = data.get('sample_purity')
sample.sample_surface_termination = data.get('sample_surface_termination')
sample.sample_layers = data.get('sample_layers')
sample.sample_stacking_order = data.get('sample_stacking_order')
sample.sample_chemical_id_cas = data.get('chemical_id_cas')
sample.sample_temperature = data.get('sample_temperature')
sample.sample_pressure = data.get('sample_pressure')
sample.sample_growth_method = data.get('growth_method')
sample.sample_preparation_method = data.get('preparation_method')
sample.sample_vendor = data.get('sample_vendor')
sample.sample_substrate_material = data.get('substrate_material')
sample.sample_substrate_state_of_matter = data.get('substrate_state')
sample.sample_substrate_vendor = data.get('substrate_vendor')
material = sample.m_create(Material)
material.space_group = data.get('sample_space_group')
material.chemical_name = data.get('chemical_name')
material.chemical_formula = data.get('chemical_formula')
atoms = set(ase.Atoms(data.get('chemical_formula')).get_chemical_symbols())
section_sample.sample_atom_labels = np.array(list(atoms))
section_sample.sample_chemical_id_cas = data.get('chemical_id_cas')
section_sample.sample_temperature = data.get('sample_temperature')
section_sample.sample_pressure = data.get('sample_pressure')
section_sample.sample_growth_method = data.get('growth_method')
section_sample.sample_preparation_method = data.get('preparation_method')
section_sample.sample_vendor = data.get('sample_vendor')
section_sample.sample_substrate_material = data.get('substrate_material')
section_sample.sample_substrate_state_of_matter = data.get('substrate_state')
section_sample.sample_substrate_vendor = data.get('substrate_vendor')
material.atom_labels = np.array(list(atoms))
# TODO sample classification
section_sample.sample_microstructure = 'bulk sample, polycrystalline'
section_sample.sample_constituents = 'multi phase'
sample.sample_microstructure = 'bulk sample, polycrystalline'
sample.sample_constituents = 'multi phase'
......@@ -3,9 +3,9 @@ from nomad.metainfo import Environment
from nomad.metainfo.legacy import LegacyMetainfoEnvironment
import mpesparser.metainfo.mpes
import nomad.datamodel.metainfo.general
import nomad.datamodel.metainfo.general_experimental
import nomad.datamodel.metainfo.common_experimental
m_env = LegacyMetainfoEnvironment()
m_env.m_add_sub_section(Environment.packages, sys.modules['mpesparser.metainfo.mpes'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.general'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.general_experimental'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.common_experimental'].m_package) # type: ignore
This diff is collapsed.
{
"type": "nomad_meta_info_1_0",
"description": "Metadata a multidimensional photoemission spectroscopy experiment.",
"dependencies": [
{
"metainfoPath":"general.nomadmetainfo.json"
},
{
"metainfoPath":"general.experimental.nomadmetainfo.json"
}
],
"metaInfos": [
{
"description": "Shape of the None/Null object",
"name": "none_shape",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_experiment"]
},
{
"description": "Number of name segments in the experiment location",
"name": "number_of_location_names",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_experiment"]
},
{
"description": "Name of the beamline the experiment took place.",
"name": "general_beamline",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Name or model of the pump light source.",
"name": "general_source_pump",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Name or model of the probe light source.",
"name": "general_source_probe",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Number of axes in the measurement hardware.",
"name": "number_of_axes",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Names of the axes in the measurement hardware.",
"name": "general_measurement_axis",
"dtypeStr": "C",
"shape": ["number_of_axes"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Names of the axes in physical terms.",
"name": "general_physical_axis",
"dtypeStr": "C",
"shape": ["number_of_axes"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Repetition rate of the pump source.",
"name": "source_pump_repetition_rate",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "Hz"
},
{
"description": "Pulse duration of the pump source.",
"name": "source_pump_pulse_duration",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "fs"
},
{
"description": "Center wavelength of the pump source.",
"name": "source_pump_wavelength",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "nm"
},
{
"description": "Spectrum of the pump source.",
"name": "source_pump_spectrum",
"dtypeStr": "f",
"shape": ["length_of_spectrum"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Photon energy of the pump source.",
"name": "source_pump_photon_energy",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "eV"
},
{
"description": "Full-width at half-maximum (FWHM) of the pump source size at or closest to the sample position.",
"name": "source_pump_size",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "mm**2"
},
{
"description": "Fluence of the pump source at or closest to the sample position.",
"name": "source_pump_fluence",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "mJ/mm**2"
},
{
"description": "Polarization of the pump source.",
"name": "source_pump_polarization",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Total bunch number of the pump source.",
"name": "source_pump_bunch",
"dtypeStr": "i",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Repetition rate of the probe source.",
"name": "source_probe_repetition_rate",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "Hz"
},
{
"description": "Pulse duration of the probe source.",
"name": "source_probe_pulse_duration",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "fs"
},
{
"description": "Center wavelength of the probe source.",
"name": "source_probe_wavelength",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "nm"
},
{
"description": "Number of pixel elements in the spectrum.",
"name": "length_of_spectrum",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Spectrum of the probe source.",
"name": "source_probe_spectrum",
"dtypeStr": "f",
"shape": ["length_of_spectrum"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Photon energy of the probe source.",
"name": "source_probe_photon_energy",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "eV"
},
{
"description": "Full-width at half-maximum (FWHM) of the probe source size at or closest to the sample position.",
"name": "source_probe_size",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "mm**2"
},
{
"description": "Fluence of the probe source at or closest to the sample position.",
"name": "source_probe_fluence",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "mJ/mm**2"
},
{
"description": "Polarization of the probe source.",
"name": "source_probe_polarization",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Total bunch number of the probe source.",
"name": "source_probe_bunch",
"dtypeStr": "i",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Full-width at half-maximum (FWHM) of the pump-probe cross-correlation function.",
"name": "source_temporal_resolution",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "fs"
},
{
"description": "Voltage between the extractor and the sample.",
"name": "detector_extractor_voltage",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "V"
},
{
"description": "Distance between the sample and the detector entrance.",
"name": "detector_work_distance",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "mm"
},
{
"description": "Number of electron lenses in the electron detector.",
"name": "number_of_lenses",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Set of names for the electron-optic lenses.",
"name": "detector_lens_names",
"dtypeStr": "C",
"shape": ["number_of_lenses"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Set of electron-optic lens voltages.",
"name": "detector_lens_voltages",
"dtypeStr": "f",
"shape": ["number_of_lenses"],
"superNames": ["section_method"],
"units": "V"
},
{
"description": "Drift distance of the time-of-flight tube.",
"name": "detector_tof_distance",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "m"
},
{
"description": "Number of time-of-flight (TOF) drift tube voltage values in the electron detector.",
"name": "number_of_tof_voltages",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Voltage applied to the time-of-flight tube.",
"name": "detector_tof_voltages",
"dtypeStr": "f",
"shape": ["number_of_tof_voltages"],
"superNames": ["section_method"],
"units": "V"
},
{
"description": "Voltage bias applied to sample.",
"name": "detector_sample_bias",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": "V"
},
{
"description": "Detector magnification.",
"name": "detector_magnification",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Number of detector voltage settings in the electron detector.",
"name": "number_of_detector_voltages",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Voltage applied to detector.",
"name": "detector_voltages",
"dtypeStr": "f",
"shape": ["number_of_detector_voltages"],
"superNames": ["section_method"],
"units": "V"
},
{
"description": "Description of the detector type (e.g. ‘MCP’, ‘CCD’, ‘CMOS’, etc.).",
"name": "detector_type",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Number of detector sensor size dimensions (depending on the number of sensors).",
"name": "number_of_sensor_sizes",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Size of each of the imaging sensor chip on the detector.",
"name": "detector_sensor_size",
"dtypeStr": "f",
"shape": ["number_of_sensor_sizes"],
"superNames": ["section_method"],
"units": "mm"
},
{
"description": "Number of imaging sensor chips on the detector.",
"name": "detector_sensor_count",
"dtypeStr": "i",
"shape": [],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Pixel size of the imaging sensor chip on the detector.",
"name": "detector_sensor_pixel_size",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "um"
},
{
"description": "Number of the momentum calibration parameters for the detector.",
"name": "number_of_momentum_calibration_coefficients",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Pixel x axis to kx momentum calibration.",
"name": "detector_calibration_x_to_momentum",
"dtypeStr": "f",
"shape": ["number_of_momentum_calibration_coefficients"],
"superNames": ["section_method"],
"units": "angstrom**-1"
},
{
"description": "Pixel y axis to ky momentum calibration.",
"name": "detector_calibration_y_to_momentum",
"dtypeStr": "f",
"shape": ["number_of_momentum_calibration_coefficients"],
"superNames": ["section_method"],
"units": "angstrom**-1"
},
{
"description": "Number of the energy calibration parameters for the detector.",
"name": "number_of_energy_calibration_coefficients",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Time-of-flight to energy calibration.",
"name": "detector_calibration_tof_to_energy",
"dtypeStr": "f",
"shape": ["number_of_energy_calibration_coefficients"],
"superNames": ["section_method"],
"units": "eV"
},
{
"description": "Translation stage position to pump-probe delay calibration.",
"name": "detector_calibration_stage_to_delay",
"dtypeStr": "f",
"shape": ["number_of_delay_calibration_coefficients"],
"superNames": ["section_method"],
"units": "fs"
},
{
"description": "Number of the other calibration parameters for the detector.",
"name": "number_of_other_calibration_coefficients",
"dtypeStr": "i",
"kindStr": "type_dimension",
"shape": [],
"superNames": ["section_method"]
},
{
"description": "Conversion factor between other measured and physical axes.",
"name": "detector_calibration_other_converts",
"dtypeStr": "f",
"shape": ["number_of_other_calibration_coefficients"],
"superNames": ["section_method"],
"units": ""
},
{
"description": "Momentum resolution of the detector.",
"name": "detector_momentum_resolution",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "angstrom**-1"
},
{
"description": "Spatial resolution of the source.",
"name": "detector_spatial_resolution",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "um"
},
{
"description": "Energy resolution of the detector.",
"name": "detector_energy_resolution",
"dtypeStr": "f",
"shape": ["none_shape"],
"superNames": ["section_method"],
"units": "eV"
},
{
"description": "Physical state of the sample.",
"name": "sample_state_of_matter",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Chemical purity of the sample.",
"name": "sample_purity",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Surface termination of the sample (if crystalline).",
"name": "sample_surface_termination",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Sample layer or bulk structure.",
"name": "sample_layers",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Stacking order of the solid surface (if crystalline).",
"name": "sample_stacking_order",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "CAS registry number of the sample’s chemical content.",
"name": "sample_chemical_id_cas",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Pressure surrounding the sample at the time of measurement.",
"name": "sample_pressure",
"dtypeStr": "f",
"shape": [],
"superNames": ["section_sample"],
"units": "Pa"
},
{
"description": "Sample growth method.",
"name": "sample_growth_method",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Sample preparation method.",
"name": "sample_preparation_method",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Name of the sample vendor.",
"name": "sample_vendor",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Material of the substrate the sample has immediate contact with.",
"name": "sample_substrate_material",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "State of matter of the substrate material.",
"name": "sample_substrate_state_of_matter",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
},
{
"description": "Name of the substrate vendor.",
"name": "sample_substrate_vendor",
"dtypeStr": "C",
"shape": [],
"superNames": ["section_sample"],
"units": ""
}
]
}
{
"data_repository_name": "zenodo.org",
"data_repository_url": "https://zenodo.org/deposit/2704788",
"experiment_method": "multidimensional photoemission spectroscopy",
"experiment_method_abbrv": "MPES",
"experiment_location": "Hamburg, Germany",
"experiment_date": "04.2018 05.2018",
"experiment_summary": "Characterization of excited-state circular dichroism of WSe2",
"facility_institution": "DESY",
"facility_name": "FLASH",
"beamline": "PG-2",
"source_pump": "Free electron laser",
"source_probe": "Femtosecond laser",
"equipment_description": "HEXTOF detector",
"sample_description": "Bulk tungsten diselenide",
"measurement_axis": "X, Y, TOF, ADC",
"physical_axis": "kx, ky, E, tpp",
"pump_rep_rate": 1000,
"pump_pulse_duration": 100,
"pump_wavelength": 800,
"pump_spectrum": [],
"pump_photon_energy": 1.55,
"pump_size": [],
"pump_fluence": [],
"pump_polarization": "linear",
"pump_bunch": 400,
"probe_rep_rate": 1000,
"probe_pulse_duration": 100,
"probe_wavelength": 800,
"probe_spectrum": [],
"probe_photon_energy": 36.4970,
"probe_size": [],
"probe_fluence": [],
"probe_polarization": "circular",
"probe_bunch": 400,
"temporal_resolution": 100,
"extractor_voltage": 6030,
"work_distance": 4,
"lens_names": "A, B, C, D, E, F, G, H, I",
"lens_voltages": [],
"tof_distance": 0.9,
"tof_voltages": [20],
"sample_bias": 29,
"magnification": -1.5,
"detector_voltages": [],
"detector_type": "MCP",
"sensor_size": [],
"sensor_count": 4,
"sensor_pixel_size": [],
"calibration_x_to_momentum": [],
"calibration_y_to_momentum": [],
"calibration_tof_to_energy": [],
"calibration_stage_to_delay": [],
"calibration_other_converts": [],
"momentum_resolution": [0.01],
"spatial_resolution": [],
"energy_resolution": [],
"sample_id": "000",
"sample_state": "solid",
"sample_purity": 0.99,
"sample_surface_termination": "0001",
"sample_layers": "bulk",
"sample_stacking_order": "2H",
"sample_space_group": 194,
"chemical_name": "tungsten diselenide",
"chemical_formula": "WSe2",
"chemical_id_cas": "12067-46-8",
"sample_temperature": 300,
"sample_pressure": 3.85e-10,
"growth_method": "chemical vaport transport",
"preparation_method": "in-vacuum cleaving",
"sample_vendor": "HQ Graphene",
"substrate_material": "copper",
"substrate_state": "solid",
"substrate_vendor": "custom"
}
{
"data_repository_name": "zenodo.org",
"data_repository_url": "https://zenodo.org/deposit/2704788",
"experiment_method": "multidimensional photoemission spectroscopy",
"experiment_method_abbrv": "MPES",
"experiment_location": "Hamburg, Germany",
"experiment_date": "04.2018 05.2018",
"experiment_summary": "Characterization of excited-state circular dichroism of WSe2",
"facility_institution": "DESY",
"facility": "FLASH",
"beamline": "PG-2",
"source_pump": "Free electron laser",
"source_probe": "Femtosecond laser",
"equipment_description": "HEXTOF detector",
"sample_description": "Bulk tungsten diselenide",
"measurement_axis": "X, Y, TOF, ADC",
"physical_axis": "kx, ky, E, tpp",
"pump_rep_rate": 1000,
"pump_pulse_duration": 100,
"pump_wavelength": 800,
"pump_spectrum": [],
"pump_photon_energy": 1.55,
"pump_size": [],
"pump_fluence": [],
"pump_polarization": "linear",
"pump_bunch": 400,
"probe_rep_rate": 1000,
"probe_pulse_duration": 100,
"probe_wavelength": 800,
"probe_spectrum": [],
"probe_photon_energy": 36.4970,
"probe_size": [],
"probe_fluence": [],
"probe_polarization": "circular",
"probe_bunch": 400,
"temporal_resolution": 100,
"extractor_voltage": 6030,
"work_distance": 4,
"lens_names": "A, B, C, D, E, F, G, H, I",
"lens_voltages": [],
"tof_distance": 0.9,
"tof_voltages": [20],
"sample_bias": 29,
"magnification": -1.5,
"detector_voltages": [],
"detector_type": "MCP",
"sensor_size": [],
"sensor_count": 4,
"sensor_pixel_size": [],
"calibration_x_to_momentum": [],
"calibration_y_to_momentum": [],
"calibration_tof_to_energy": [],
"calibration_stage_to_delay": [],
"calibration_other_converts": [],
"momentum_resolution": [0.01],
"spatial_resolution": [],
"energy_resolution": [],
"sample_id": "000",
"sample_state": "solid",
"sample_purity": 0.99,
"sample_surface_termination": "0001",
"sample_layers": "bulk",
"sample_stacking_order": "2H",
"sample_space_group": 194,
"chemical_name": "tungsten diselenide",
"chemical_formula": "WSe2",
"chemical_id_cas": "12067-46-8",
"sample_temperature": 300,
"sample_pressure": 3.85e-10,
"growth_method": "chemical vaport transport",
"preparation_method": "in-vacuum cleaving",
"sample_vendor": "HQ Graphene",
"substrate_material": "copper",
"substrate_state": "solid",
"substrate_vendor": "custom"
}
{"GeneralParameters":
{"experiment_location": "Hamburg, Germany",
"experiment_date": "04.2018 - 05.2018",
"experiment_summary": "Characterization of excited-state circular dichroism of WSe2",
"institution": "DESY",
"facility": "FLASH",
"beamline": "PG-2",
"source_pump": "Free electron laser",
"source_probe": "Femtosecond laser",
"equipment": "HEXTOF detector",
"sample": "Bulk tungsten diselenide",
"measurement_axis": ["X", "Y", "t", "ADC"],
"physical_axis": ["kx", "ky", "E", "tpp"]},
"SourceParameters":
{"pump_rep_rate": 1000,
"pump_pulse_duration": 100,
"pump_wavelength": 800,
"pump_spectrum": [],
"pump_photon_energy": 1.55,
"pump_size": "",
"pump_fluence": 1.5,
"pump_polarization": "linear",
"pump_bunch": 400,
"probe_rep_rate": 1000,
"probe_pulse_duration": 100,
"probe_wavelength": 800,
"probe_spectrum": [],
"probe_photon_energy": 109,
"probe_size": "",
"probe_fluence": "",
"probe_polarization": "circular",
"probe_bunch": 400,
"temporal_resolution": 100},
"DetectorParameters":
{"extractor_voltage": 6000,
"work_distance": 4,
"lens_names": ["A", "B", "C", "D", "E", "F", "G", "H"],
"lens_voltages": [],
"tof_distance": 0.9,
"tof_voltages": 30,
"sample_bias": 15,
"magnification": [],
"detector_voltage": [],
"detector_type": "MCP",
"sensor_size": [],
"sensor_count": 4,
"sensor_pixel_size": [],
"x_to_momentum": [],
"y_to_momentum": [],
"tof_to_energy": [],
"stage_to_delay": [],
"other_converts": [],
"momentum_resolution": 0.01,
"spatial_resolution": "",
"energy_resolution": ""},
"SampleParameters":
{"sample_id": "000",
"sample_state": "solid",
"sample_purity": 0.99,
"sample_surface_term": "",
"sample_layer": "bulk",
"sample_stacking": "2H",
"sample_space_group": 194,
"chem_formula": "WSe2",
"chem_elements": ["W", "Se"],
"chem_name": "tungsten diselenide",
"chem_id_cas": "12067-46-8",
"sample_temp": 300,
"sample_pressure": 1e-11,
"growth_method": "chemical vaport transport",
"preparation_method": "in-vacuum cleaving",
"sample_vendor": "HQ Graphene",
"substrate_material": "copper",
"substrate_state": "solid",
"substrate_vendor": "custom"
}
}