Description
I tested our class NexusParser(ArchiveSection) in /nomad/nomad/datamodel/metainfo/eln/init.py with a slighly more structured ELN.
The schema is the one for Hall measurements that you can find here:
https://github.com/FAIRmat-Experimental/Area_A_application_definitions/tree/main/hall
The eln_data.yaml that is generated by @shabihsherjeel NexusParser class looks like this:
instrument:
amperemeter: Keithley 485 Autoranging Picoammeter
current_source: Keithley 220 Programmable current source
model: Lake Shore Hall Measurement System
software: Lake Shore Hall Measurement Software
switch_matrix: Keithley 7001 Switch System
voltmeter: Keithley 2182 Nanovoltmeter
samples:
final_sample:
- sample_history:
- contacts_grafting:
- metal_stack:
- empirical_formula: Ti
name: material_1
- empirical_formula: Au
name: material_2
- empirical_formula: Ra
name: material_3
process_steps:
- elapsed_time:
unit: minute
value: 1
name: Post-annealing
process_type: Pre-process
- elapsed_time:
unit: minute
value: 5
name: Pre-treatment
process_type: Pre-process
- name: implantation
process_type: Pre-process
- name: regrowth
process_type: Process
method: uuu
- method: sss
layer:
- epitaxy_type: Homoepitaxy
method: experimental
substrate: ../upload/raw/Selenium.archive.yaml#data
What me and @domna realized is that the multiple nesting of lists (sample_history and downhill) is not correctly understood by the writer when attempting to create an hdf5 file. It is probably that yaml lists are only understood as array-shaped datasets and not as list of groups.
We should hence tweak our tool to deal with these very common sections where you haven't got an a priori number of sub-sections and you rather want to append instances at will (this turns out in adding a new dash, in yaml syntax).
The question is whether we should change the reader (this repo) of the Nomad eln entry or the writer (gitlab nomad repo) of the HDF5 file.
Probably the writer side is more convenient.
We may think to go on with merge of Nexus_ELN_base_classes branch and open a new branch for this issue.
It is now indeed required to have Nexus_ELN_base_classes features already merged into develop branch to keep developing our "hybrid NomadELN-Nexus schemes", like the Hall example.