nomad-FAIR issueshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues2023-04-19T14:40:38Zhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1406Yaml schemas: data section not generated if I use a specific name for a section2023-04-19T14:40:38ZAndrea AlbinoYaml schemas: data section not generated if I use a specific name for a sectionIt's a small and sneaky bug:
in the `Contacts` section I have a sub_section called `contact`. If I call it `Contact`, then the processing fails.
In the original schema file I have many sections that use capital letters or same name of ...It's a small and sneaky bug:
in the `Contacts` section I have a sub_section called `contact`. If I call it `Contact`, then the processing fails.
In the original schema file I have many sections that use capital letters or same name of the section they inherit from.
Only in this section the processing is failing.
Edit: mind also the lines
```
target_sub_section:
- contact
```
where the `contact` appears
```
definitions:
name: 'ELN for MOVPE'
sections:
Movpe_experiment:
base_sections:
- nomad.parsing.tabular.TableData
m_annotations:
eln:
quantities:
data_file:
type: str
description: |
A reference to an uploaded .xlsx
m_annotations:
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
tabular_parser:
comment: '#'
mode: root
sub_sections:
Contacts:
section:
base_sections:
- nomad.parsing.tabular.TableData
m_annotations:
eln:
quantities:
data_file:
type: str
default: '#data/data_file'
description: |
A reference to an uploaded .xlsx
m_annotations:
tabular_parser:
comment: '#'
mode: row
target_sub_section:
- contact
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
sub_sections:
contact:
repeats: true
section:
base_sections:
- '#/Contact'
```
Error messages:
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 214, in _prepare_root_tabular_data
getattr(self, sub_section_name).normalize(archive, logger)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 104, in normalize
self.tabular_parser(quantity_def, archive, logger, annotation)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 162, in tabular_parser
self.append_section_to_subsection(section_name, section)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 189, in append_section_to_subsection
self_updated.append(section_updated)
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 1277, in __getattr__
raise AttributeError(name)
AttributeError: append
```
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/base.py", line 1049, in wrapper
rv = func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 964, in process_entry_local
self._process_entry_local()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1034, in _process_entry_local
entry.archiving()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1199, in archiving
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
```
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/base.py", line 1049, in wrapper
rv = func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 964, in process_entry_local
self._process_entry_local()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1034, in _process_entry_local
entry.archiving()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1199, in archiving
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1087, in _on_fail
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
```
You can reproduce it with the following three files:
[Parma_datafile_nomad.xlsx](/uploads/46438a4ae19b28139950c9a974a889dc/Parma_datafile_nomad.xlsx)
[movpe_cnr.schema.archive.yaml](/uploads/f852385b74367f30e9c990430b241bf3/movpe_cnr.schema.archive.yaml)
[base_classes.schema.archive.yaml](/uploads/2e827ee78fb7cf2b1f05febc1b58eec8/base_classes.schema.archive.yaml)Amir GolparvarAmir Golparvarhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/407Workflows for elastic constants via elastic parser.2020-10-06T10:46:20ZMarkus ScheidgenWorkflows for elastic constants via elastic parser.Alvin Noe LadinesAlvin Noe Ladineshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1430Workflow for chemical reaction steps2023-10-23T16:51:58ZNathan DaelmanWorkflow for chemical reaction stepsA workflow ready to contain a general (computational) **elementary reaction step** and extract the energy, e.g. calculating adsorption energies: Fe_50 + CO_gas -> Fe_50CO, E[Fe_50CO] - E[Fe_50] - E[CO_gas].
In general, there can be m rea...A workflow ready to contain a general (computational) **elementary reaction step** and extract the energy, e.g. calculating adsorption energies: Fe_50 + CO_gas -> Fe_50CO, E[Fe_50CO] - E[Fe_50] - E[CO_gas].
In general, there can be m reactants and n products.
(We could also consider a reaction with a transition state, which has a 3rd intermediate state?)
- [ ] Add example data.
- [ ] Define a workflow schema with input section and yaml (reactants vs products).
- [ ] Build workflow normalizer to compute (adsorption) energies.
- [ ] Add a tester (based on the example data).
Set up jointly with @jschumann and @ladinesa .Alvin Noe LadinesAlvin Noe Ladineshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/363VASP geometry optimizations as workflows2020-12-18T16:07:57ZMarkus ScheidgenVASP geometry optimizations as workflows- [x] metainfo for workflows
- [x] adapt VASP parser
- [ ] normalizer (system, dos, encyclopedia, ?) and section_metadata use the workflow result system/calculation
![image](/uploads/aaa6b494cf0afc03d96372e3a338c973/image.png)- [x] metainfo for workflows
- [x] adapt VASP parser
- [ ] normalizer (system, dos, encyclopedia, ?) and section_metadata use the workflow result system/calculation
![image](/uploads/aaa6b494cf0afc03d96372e3a338c973/image.png)Alvin Noe LadinesAlvin Noe Ladineshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/941validate eln annotations2022-08-10T10:28:41ZMohammad Nakhaeevalidate eln annotations @constraint
def unique_names(self):
names: Set[str] = set()
for base in self.extending_sections:
for quantity in base.quantities + base.sub_sections:
for alias in quantity.aliases:
... @constraint
def unique_names(self):
names: Set[str] = set()
for base in self.extending_sections:
for quantity in base.quantities + base.sub_sections:
for alias in quantity.aliases:
names.add(alias)
names.add(quantity.name)
for def_list in [self.quantities, self.sub_sections]:
for definition in def_list:
assert definition.name not in names, 'All names in a section must be unique. ' \
'Name %s of %s in %s already exists in %s.' % (definition.name, definition, definition.m_parent, self)
names.add(definition.name)
for alias in definition.aliases:
assert alias not in names, 'All names (incl. aliases) in a section must be unique. ' \
'Alias %s of %s in %s already exists in %s.' % (alias, definition, definition.m_parent, self)
names.add(alias)Mohammad NakhaeeMohammad Nakhaeehttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1395User.is_admin is not working with OasisUserManagement2023-03-16T09:54:26ZMichael GötteUser.is_admin is not working with OasisUserManagementHey Nomad, @himanel1 @mscheidg
I am testing the capabilities of an admin user for automated uploading of data.
I set the admin id in my `nomad.yaml` file.
Then the code in `nomad/search.py` throws an error when i do an API call with ...Hey Nomad, @himanel1 @mscheidg
I am testing the capabilities of an admin user for automated uploading of data.
I set the admin id in my `nomad.yaml` file.
Then the code in `nomad/search.py` throws an error when i do an API call with `owner='admin'`. So i played around a bit and i found that
```python
if user_id is None or not datamodel.User.get(user_id=user_id).is_admin:
raise AuthenticationRequiredError('This can only be used by the admin user.')
```
throws the error,
while
```python
if user_id is None or not user_id == config.services.admin_user_id:
raise AuthenticationRequiredError('This can only be used by the admin user.')
```
doesnt. Somehow `datamodel.User.get(user_id=user_id).is_admin` is not doing what it should in my opinion, or am i missing something?
Best Michahttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1403User define quantities are not registered properly2023-03-23T20:41:01ZMichael GötteUser define quantities are not registered properlynot all scalar quantities are picked up correctly by the user defined quantity search.
I make a minimal breaking example.not all scalar quantities are picked up correctly by the user defined quantity search.
I make a minimal breaking example.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/813Units in NOMAD2022-05-13T09:14:58ZMarkus ScheidgenUnits in NOMADIn the past, the metainfo was relying on SI units. All units in the metainfo where SI and we provide a global setting for display units in the GUI. This is not good enough for ELNs and other A/B use-cases.
- people manually enter number...In the past, the metainfo was relying on SI units. All units in the metainfo where SI and we provide a global setting for display units in the GUI. This is not good enough for ELNs and other A/B use-cases.
- people manually enter numbers
- the used units can be vastly different, even within a single section, archive, upload.
Features:
- store either the unit used or a display unit as part of the data; the metainfo only defines the general physics unit "dimension", e.g. length, time, pressure, ...
- allow to define specific display unit per definition that overwrites any global defaults (partially resolved in #811)
- support units that use magnitude prefixes/suffixes. E.g. (milli, pico, terra, or percent?)https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/802Unit prefixes and complex units in the GUI2022-05-09T06:13:49ZMarkus ScheidgenUnit prefixes and complex units in the GUIPart of #798
For the use of the ELN we are slowly diverging from the "only SI units" and no "unit prefixes (milli, kilo, etc.)". This causes issues in the GUI. While pint is mostly working fine, the GUI unit systems seems to have diffe...Part of #798
For the use of the ELN we are slowly diverging from the "only SI units" and no "unit prefixes (milli, kilo, etc.)". This causes issues in the GUI. While pint is mostly working fine, the GUI unit systems seems to have different troubles.
Here are a few comments by @josma
I have been exploring the issues with including the units with 'milli' and so on as part of the schema. To be able to do so, these units need to be registered in `/home/pepe_marquez/NOMAD/nomad/nomad/cli/dev.py` in two places, the `unit_map` and the `unit_table`.
Update: what is mentioned above worked for me for example for mA `unit='milliampere'` or mV `unit='millivolt'`. When I had something like `unit='milliampere / centimeter / centimeter'` or `unit='milliampere * centimeter ** (-2)'` the gui was giving me an error telling me that could not render the section.
@himanel1 could you investigate a bit and tell us what the GUI limitations are, which can be overcome, and which a systemically inevitable?Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1046Unit display in referenced sections2023-12-21T16:04:41ZMichael GötteUnit display in referenced sectionsDear nomad, I have an ELN entry
```
class Solution(Chemical):
'''Base class for a solution'''
chemical = Quantity(
type=Reference(Chemical.m_def),
a_eln=dict(component='ReferenceEditQuantity'))
powder_mas...Dear nomad, I have an ELN entry
```
class Solution(Chemical):
'''Base class for a solution'''
chemical = Quantity(
type=Reference(Chemical.m_def),
a_eln=dict(component='ReferenceEditQuantity'))
powder_mass = Quantity(
type=np.dtype(np.float64),
unit=('mg'),
a_eln=dict(component='NumberEditQuantity',defaultDisplayUnit='mg'))
solvent = Quantity(
type=Reference(Chemical.m_def),
shape=['*'],
a_eln=dict(component='ReferenceEditQuantity'))
solvent_percentage = Quantity(
type=np.dtype(np.float64),
a_eln=dict(component='NumberEditQuantity'))
shaker_temperature = Quantity(
type=np.dtype(np.float64),
unit=('°C'),
a_eln=dict(component='NumberEditQuantity',defaultDisplayUnit='°C'))
shaker_time = Quantity(
type=np.dtype(np.float64),
unit=('s'),
a_eln=dict(component='NumberEditQuantity',defaultDisplayUnit='s'))
shaker_speed = Quantity(
type=np.dtype(np.float64),
unit=('1/second'),
a_eln=dict(component='NumberEditQuantity',defaultDisplayUnit='1/s'))
```
It has defaultDisplayUnits, in the GUI it looks like this:
![grafik](/uploads/47afba7d4948ff21018674f38a270558/grafik.png)
it looks fine :smile:
but now I reference this in another entrydata:
![grafik](/uploads/bacc1f5f706a905447cae06d83f6d3a7/grafik.png)
and the units are the default ones again. So time is in fs, and temperature in K and mass in kg.
I am using a fork of v1.1.3
Best Michahttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/574Unified entry (overview) page and declarative property and archive browser vi...2021-09-04T16:00:22ZMarkus ScheidgenUnified entry (overview) page and declarative property and archive browser visualisationsCurrently we have different entry page views (at least overview and files) depending on the entries "domain". For FAIRmat, we want to discontinue the "domain" system, because a flat list of domains is not scalable enough. A single page a...Currently we have different entry page views (at least overview and files) depending on the entries "domain". For FAIRmat, we want to discontinue the "domain" system, because a flat list of domains is not scalable enough. A single page and single views need to fit all kinds of entries. Furthermore, the current dft entry overview and archive browser hard code if and when to show what property visualization. This should be replaced with a more declarative approach.
Assumption: We only deal with `result` based entries.
There are several items that depend on the actual "shape" of an entry's result section:
- the method and parameters on the left
- which property cards to show
- how to present the "origin" and potential off-site data
The last point is a general thing and the same impl for all types of entry should be possible. This depends on origins like oasis, external db and not so much on the entry kind. It affects the "Author metadata" part on the overview left and "Raw data"-View.
The method parameters depend on the metainfo results.method hierarchy and should be taken from there via breadth-first traversal. For example:
- results.method.method_name
- results.method.simulation.program_name
- results.method.simulation.program_version
- results.method.simulation.dft.xc_functional_family
or
- results.method.method_name
- results.method.experiment.eels.spectrum_type
Labels and optional components should be encoded in the metainfo quantity definitions (via special GUI annotation). All quantities are simply put into a grid.
The property cards on the right of the overview depend on the results.properties hierarchy. Properties might be bundles into a single card (e.g. electronic, vibrational, etc.). Again, a GUI annotation can be used to map properties into cards via the same property-card-key.
Similarly an annotation should describe if and how to render a section/quantity in the archive browser.
This annotation could have an interface like this:
```python
class GUI(nomad.metainfo.annotation):
type: enum('property-card', 'archive-browser', 'quantity')
key: string
component: string
label: string
```
This means that "component" needs to have a common interface, e.g. all property-card components need to take the same props. All the specificity has to be encoded in the component's JS.
If the annotation is too cumbersome, a .json-based config in the GUI source could provide the same information.
Alternatively, we could still hardcode everything in the UI, but then the interface needs to be far more simple. E.g. for the property-cards:
```html
<ElectronicPropertiesCard result={result} />
<GeometryOptimizationCard result={result} />
<EELSSpectrumCard result={result} />
```v1.0.0-betahttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1609Type of to extended sections2023-12-21T16:06:52ZNathan DaelmanType of to extended sectionsI ran into this problem for FHI-aims (https://github.com/nomad-coe/electronic-parsers/issues/131), where I wanted to reference `AtomParameters` from a code-specific section (`x_fhi_aims_section_controlIn_basis_set`).
However, directly as...I ran into this problem for FHI-aims (https://github.com/nomad-coe/electronic-parsers/issues/131), where I wanted to reference `AtomParameters` from a code-specific section (`x_fhi_aims_section_controlIn_basis_set`).
However, directly assigning the section (the typical approach) results in a `TypeError`.
It still has `method.AtomParameters` and not `electronicparsers.fhiaims.metainfo.fhi_aims.AtomParameters`.
This might be appropriate in other cases, but not here.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/836Timezones2023-12-21T15:38:42ZMarkus ScheidgenTimezonesWe were never looking into timezones before. This becomes a problem now that people use ELNs and care about times and not just dates. In prinziple most date formats and libraries support to add a timezone to the date. We just have to ens...We were never looking into timezones before. This becomes a problem now that people use ELNs and care about times and not just dates. In prinziple most date formats and libraries support to add a timezone to the date. We just have to ensure that this information is added in the right places. This issue goes through all aspects of the platform.
- [x] ensure timezone when adding dates to the metainfo. Either use information in the given date or use a "configured" time zone?
- [x] add the local browser timezone to datestrings in the GUI. If those are forwarded to the metainfo they are kept.
- [x] when displaying datetimes in the gui, make sure that the datetime is converted to local browser timezone, based on the timezone information in the datetime
- [ ] ensure timezone information in dates in mongo and elastic searchhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1599tabular parser: shape: [1] should be interpreted as scalar2023-12-21T15:38:54ZAndrea Albinotabular parser: shape: [1] should be interpreted as scalarAs I show in the following screenshot, when I give shape: [1] I get the ELN quantity with the foldable button, this should be made only for shapes > 1 or '*'
What I mean is that "sample" quantity should be visualized in the ELN in the ...As I show in the following screenshot, when I give shape: [1] I get the ELN quantity with the foldable button, this should be made only for shapes > 1 or '*'
What I mean is that "sample" quantity should be visualized in the ELN in the same way of "goal".
I'm not sure if this is something concerning directly @amgo and his tabular parser or rather @mnakh
![Screenshot_from_2023-07-10_15-46-31](/uploads/2afae21cac14a6d253d8e44fd7d55a3b/Screenshot_from_2023-07-10_15-46-31.png)
if I use no shape, I will get the quantity as a list:
![Screenshot_from_2023-07-10_15-56-53](/uploads/d7880dbb4b46d0a0e9ced8bc8871dc08/Screenshot_from_2023-07-10_15-56-53.png)https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/737Table data (excel, csv) parser2022-05-13T08:25:35ZMarkus ScheidgenTable data (excel, csv) parserBase on changes in #736, it should not be too hard to provide a parser for excel or csv files.
The challenge here is to find the right schema mapping for the given columns. This could be achieved in different ways:
- an additional user...Base on changes in #736, it should not be too hard to provide a parser for excel or csv files.
The challenge here is to find the right schema mapping for the given columns. This could be achieved in different ways:
- an additional user-provided mapping file
- additional mapping data in the existing user-provided nomad.yaml files
- mapping information in the excel file itself
- e.g. full qualified metainfo quantity names as column names
This is also more meaningful, with custom "on-the-fly" schema definitions (#705) and schema versioning (#549)Markus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1074System links and ASE atoms for results section2023-12-21T16:06:49ZMarkus ScheidgenSystem links and ASE atoms for results sectionThe results section's material does not reference the structure section it is based on.
The result's sections structure property is not referencing the section system/atoms it is based on.
Both the results structure sections and the sys...The results section's material does not reference the structure section it is based on.
The result's sections structure property is not referencing the section system/atoms it is based on.
Both the results structure sections and the system/atoms section could benefit from a function that is producing a respective ase.Atoms object.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/925Support names instead of indices in metainfo definition references2022-08-11T11:22:44ZAndrea AlbinoSupport names instead of indices in metainfo definition referencesas discussed before, I don't get the url to the section if I adopt the following syntax:
data:
m_def: ../upload/raw/movpe_app-def_schema.archive.yaml#/definitions/section_definitions/Chemical
I need the sequential index of my section...as discussed before, I don't get the url to the section if I adopt the following syntax:
data:
m_def: ../upload/raw/movpe_app-def_schema.archive.yaml#/definitions/section_definitions/Chemical
I need the sequential index of my section, according to the ordering in "sections":
data:
m_def: ../upload/raw/movpe_app-def_schema.archive.yaml#/definitions/section_definitions/0Amir GolparvarAmir Golparvarhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/834Support for inheriting sections2022-07-07T10:23:28ZMarkus ScheidgenSupport for inheriting sectionsIn the metainfo one section definition can extend another one through inheritance. A section definition defines other section definitions as `base_sections`. This is similar to class inheritance in programming. A sub section definition c...In the metainfo one section definition can extend another one through inheritance. A section definition defines other section definitions as `base_sections`. This is similar to class inheritance in programming. A sub section definition can denote a (potentially "abstract") section definition. When this is instantiated an inheriting section can be used for this sub section definition. This is similar to polymorphy in programming.
- [x] simplify the programming of navigation across inheritance hierarchies with additional properties like all_base_section, inheriting_sections, and all_inheriting_sections (both in python and js)
- [x] the metainfo browser shows inheriting sections
- [x] the ELN editing in the archive browser allows to create sub-sections based on available inheriting sectionsAmir GolparvarAmir Golparvarhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1637Some Tabular parser features to revise or add2023-10-05T06:59:56ZAndrea AlbinoSome Tabular parser features to revise or addWhile me and @jschumann were testing independently the parser, we noticed some features to fix or to add:
- the following file has a repeated sub_sub_section along the row (the columns "Element" and "fraction"). If one has only two bloc...While me and @jschumann were testing independently the parser, we noticed some features to fix or to add:
- the following file has a repeated sub_sub_section along the row (the columns "Element" and "fraction"). If one has only two blocks of this sub_sub_section, the parsing is fine. If one adds a third block of columns, some errors are raised.
- the filename of generated entries is currently the name of the m_def class + a sequential number, I think it should be picked from a quantity of the m_def class.
- empty cells in excel file should not raise errors, just not fill the quantity
- after loading and parsing one of this schemas and excel files, if I hit the reprocess button some entries change their process status in failure and opening them the error "Something went wrong in this part of the app (Javascript error)." is displayed.
- These generated entries cannot be singularly deleted until I save them a second time and they are actually written into physical files
To test the issue above, create an entry choosing "CatalystCollection" class and drop the excel file inside there:
[entry_schema_basi.archive.yaml](/uploads/eee887b85facc5f272f06a30f7ff4944/entry_schema_basi.archive.yaml)
[test_upload_w_3_elements.xlsx](/uploads/5ce89535e09f8934f4ba61e6b1cfc7ea/test_upload_w_3_elements.xlsx)
@amgo is following us in testingAmir GolparvarAmir Golparvarhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/962Solar cell ELN base classes2022-09-08T15:43:51ZJose Marquez PrietoSolar cell ELN base classesA set of ELN base classes for describing solar cells and making them searchable by populating quantities in the results section.
- [x] Reference: A class to include a reference to a publication with a DOI.
- [x] SolarCell: Description o...A set of ELN base classes for describing solar cells and making them searchable by populating quantities in the results section.
- [x] Reference: A class to include a reference to a publication with a DOI.
- [x] SolarCell: Description of the solar cell, contains info about layer stack, cell area, architecture...
- [x] SolarCellLayer: Describes a layer within the solar cell stack. Contains `name`, `chemical_formula`, `layer_type`, `thickness`.
- [x] SolarCellLayerWithBandgap: Extends SolarCellLayer adding a `bandgap` and a `bandgap` estimation basis.
- [x] ExternalQuantumEfficiency: EQE data parser and extraction of additional data like `bandgap`, `short_circuit_current_density`...
- [x] CurrentDensityVoltage: Solar cell parameters class. Has a checker to make sure that the data entered is correct (Calculation of efficiency, FF between 0 and 1...).
- [x] A yaml exemplary schema building on these classes.
- [ ] Create a .csv with common cell layers that can be passed to provide suggestions in the eln componentsJose Marquez PrietoJose Marquez Prieto