8000 NexusParser(ArchiveSection) in Nomad not writing properly an hdf5 file · Issue #47 · FAIRmat-NFDI/pynxtools · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
NexusParser(ArchiveSection) in Nomad not writing properly an hdf5 file #47
Closed
@andreaa93

Description

@andreaa93

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0