Skip to content

Commit

Permalink
Hooked in examples for usage of NXem_ebsd and NXem_eds into NXem
Browse files Browse the repository at this point in the history
  • Loading branch information
atomprobe-tc committed Aug 30, 2024
1 parent a8cf2af commit 132fc2a
Show file tree
Hide file tree
Showing 6 changed files with 275 additions and 20 deletions.
144 changes: 139 additions & 5 deletions contributed_definitions/NXem.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1278,7 +1278,7 @@ basically optional use of NXaberration therein at least some value required-->
<!--relevant research result post-processed for specific community methods
but normalized in its representation ready to be consumed for a
research data management system-->
<group type="NXroi" minOccurs="0" maxOccurs="unbounded">
<group name="roiID" type="NXroi" minOccurs="0" maxOccurs="unbounded">
<doc>
A region-of-interest analyzed either during or after the session for which
specific processed data are available.
Expand All @@ -1295,10 +1295,144 @@ is required to provide such information in this way!-->
<!--remains to be discussed based on examples-->
<group name="bse" type="NXem_img" optional="true"/>
<!--remains to be discussed based on examples-->
<group name="ebsd" type="NXem_ebsd" optional="true"/>
<!--remains to be discussed based on examples-->
<group name="eds" type="NXem_eds" optional="true"/>
<!--remains to be discussed based on examples-->
<group name="ebsd" type="NXem_ebsd" optional="true">
<!--remains to be discussed based on examples-->
<group name="gnomonic_reference_frame" type="NXcoordinate_system" optional="true">
<field name="origin" type="NX_CHAR"/>
<field name="x_direction" type="NX_CHAR"/>
<field name="y_direction" type="NX_CHAR"/>
<field name="z_direction" type="NX_CHAR"/>
</group>
<group name="pattern_centre" type="NXprocess" recommended="true">
<field name="x_boundary_convention" type="NX_CHAR"/>
<field name="x_normalization_direction" type="NX_CHAR"/>
<field name="y_boundary_convention" type="NX_CHAR"/>
<field name="y_normalization_direction" type="NX_CHAR"/>
</group>
<group name="measurement" type="NXprocess" optional="true">
<field name="depends_on" type="NX_CHAR"/>
<group name="source" type="NXserialized">
<field name="type" type="NX_CHAR"/>
<field name="path" type="NX_CHAR"/>
<field name="checksum" type="NX_CHAR"/>
<field name="algorithm" type="NX_CHAR"/>
</group>
</group>
<group name="simulation" type="NXprocess" optional="true">
<field name="depends_on" type="NX_CHAR"/>
<group name="source" type="NXserialized">
<field name="type" type="NX_CHAR"/>
<field name="path" type="NX_CHAR"/>
<field name="checksum" type="NX_CHAR"/>
<field name="algorithm" type="NX_CHAR"/>
</group>
</group>
<group name="indexing" type="NXprocess" optional="true">
<field name="number_of_scan_points" type="NX_UINT"/>
<field name="indexing_rate" type="NX_NUMBER" recommended="true"/>
<group name="source" type="NXserialized" optional="true">
<field name="type" type="NX_CHAR"/>
<field name="path" type="NX_CHAR"/>
<field name="checksum" type="NX_CHAR"/>
<field name="algorithm" type="NX_CHAR"/>
</group>
<group name="phaseID" type="NXcrystal_structure" minOccurs="0" maxOccurs="unbounded">
<field name="number_of_scan_points" type="NX_UINT"/>
<field name="a_b_c" type="NX_NUMBER"/>
<field name="alpha_beta_gamma" type="NX_NUMBER"/>
<field name="space_group" type="NX_CHAR"/>
<field name="phase_identifier" type="NX_INT"/>
<field name="phase_name" type="NX_CHAR"/>
<group name="ipfID" type="NXmicrostructure_ipf" recommended="true">
<field name="projection_direction" type="NX_NUMBER"/>
<group name="map" type="NXdata">
<attribute name="signal" type="NX_CHAR"/>
<attribute name="axes" type="NX_CHAR"/>
<attribute name="AXISNAME_indices" type="NX_INT"/>
<field name="title" type="NX_CHAR"/>
<field name="data" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_x" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_y" type="NX_NUMBER" optional="true">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_z" type="NX_NUMBER" optional="true">
<attribute name="long_name" type="NX_CHAR"/>
</field>
</group>
<group name="legend" type="NXdata">
<attribute name="signal" type="NX_CHAR"/>
<attribute name="axes" type="NX_CHAR"/>
<attribute name="AXISNAME_indices" type="NX_INT"/>
<field name="title" type="NX_CHAR"/>
<field name="data" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_x" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_y" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
</group>
</group>
</group>
<group name="roi" type="NXdata" recommended="true">
<attribute name="signal" type="NX_CHAR"/>
<attribute name="axes" type="NX_CHAR"/>
<attribute name="AXISNAME_indices" type="NX_CHAR"/>
<field name="title" type="NX_CHAR"/>
<field name="descriptor" type="NX_CHAR"/>
<field name="data" type="NX_NUMBER"/>
<field name="axis_y" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
<field name="axis_x" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
</field>
</group>
</group>
</group>
<group name="eds" type="NXem_eds" optional="true">
<!--remains to be discussed based on examples-->
<group name="indexing" type="NXprocess">
<group name="summary" type="NXdata" optional="true">
<attribute name="signal" type="NX_CHAR"/>
<attribute name="axes" type="NX_CHAR"/>
<attribute name="AXISNAME_indices" type="NX_CHAR"/>
<field name="title" type="NX_CHAR"/>
<field name="intensity" type="NX_NUMBER"/>
<field name="axis_energy" type="NX_CHAR">
<attribute name="long_name" type="NX_CHAR"/>
</field>
</group>
<field name="atom_types" type="NX_CHAR"/>
<group type="NXimage_set" minOccurs="0" maxOccurs="118">
<field name="iupac_line_candidates" type="NX_CHAR" recommended="true"/>
<field name="energy_range" type="NX_NUMBER"/>
<group name="image_2d" type="NXdata">
<attribute name="signal" type="NX_CHAR"/>
<attribute name="axes" type="NX_CHAR"/>
<attribute name="AXISNAME_indices" type="NX_CHAR"/>
<field name="title" type="NX_CHAR" optional="true"/>
<field name="intensity" type="NX_NUMBER">
<attribute name="units" type="NX_CHAR" recommended="true"/>
</field>
<field name="axis_i" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
<attribute name="units" type="NX_CHAR"/>
</field>
<field name="axis_j" type="NX_NUMBER">
<attribute name="long_name" type="NX_CHAR"/>
<attribute name="units" type="NX_CHAR"/>
</field>
</group>
</group>
</group>
</group>
<group name="adf" type="NXem_adf" optional="true"/>
<!--remains to be discussed based on examples-->
<group name="eels" type="NXem_eels" optional="true"/>
Expand Down
8 changes: 4 additions & 4 deletions contributed_definitions/NXem_ebsd.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -635,15 +635,15 @@ to sample_reference_frame
<doc>
An overview of the entire ROI.
</doc>
<field name="descriptor">
<field name="descriptor" type="NX_CHAR">
<doc>
Descriptor representing the image contrast.
</doc>
<!--taking two examples (CTF and H5OINA choked completely of possibility to find s.th. conceptually common to plot-->
<enumeration>
<item value="normalized_band_contrast"/>
<item value="normalized_confidence_index"/>
<item value="normalized_mean_angular_deviation"/>
<item value="band_contrast"/>
<item value="confidence_index"/>
<item value="mean_angular_deviation"/>
</enumeration>
</field>
<!--\@signal: # data
Expand Down
9 changes: 5 additions & 4 deletions contributed_definitions/NXem_eds.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,11 @@ and Adrien Teutrie, Cecile Hebert (EPFL)-->
</field>
</group>
</group>
<field name="element_names" type="NX_CHAR">
<field name="atom_types" type="NX_CHAR">
<doc>
Comma-separated list of names of identified elements. All members of
the list have to be valid chemical_symbols from the periodic table.
Comma-separated list of names of elements confirmed in the sample via EDS analysis.

All members of the list have to be valid chemical_symbols from the periodic table.

This field can be used when creating instances of NXpeak is not desired.
However, a collection of instances of NXpeak with individual NXion specified
Expand Down Expand Up @@ -166,7 +167,7 @@ therefore we use for now the-->

These element-specific EDS maps are :ref:`NXimage_set` instances
and need to be named with the name of the element from the
element_names field.
atom_types field.

We often observe that signal contributions from several peaks
are summarized and shown together, e.g. the combined signal
Expand Down
121 changes: 120 additions & 1 deletion contributed_definitions/nyaml/NXem.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1207,7 +1207,7 @@ NXem(NXobject):
# relevant research result post-processed for specific community methods
# but normalized in its representation ready to be consumed for a
# research data management system
(NXroi):
roiID(NXroi):
exists: [min, 0, max, infty]
doc:
- |
Expand All @@ -1231,9 +1231,128 @@ NXem(NXobject):
ebsd(NXem_ebsd):
exists: optional
# remains to be discussed based on examples
gnomonic_reference_frame(NXcoordinate_system):
exists: optional
origin(NX_CHAR):
x_direction(NX_CHAR):
y_direction(NX_CHAR):
z_direction(NX_CHAR):
pattern_centre(NXprocess):
exists: recommended
x_boundary_convention(NX_CHAR):
x_normalization_direction(NX_CHAR):
y_boundary_convention(NX_CHAR):
y_normalization_direction(NX_CHAR):
measurement(NXprocess):
exists: optional
depends_on(NX_CHAR):
source(NXserialized):
type(NX_CHAR):
path(NX_CHAR):
checksum(NX_CHAR):
algorithm(NX_CHAR):
simulation(NXprocess):
exists: optional
depends_on(NX_CHAR):
source(NXserialized):
type(NX_CHAR):
path(NX_CHAR):
checksum(NX_CHAR):
algorithm(NX_CHAR):
indexing(NXprocess):
exists: optional
number_of_scan_points(NX_UINT):
indexing_rate(NX_NUMBER):
exists: recommended
source(NXserialized):
exists: optional
type(NX_CHAR):
path(NX_CHAR):
checksum(NX_CHAR):
algorithm(NX_CHAR):
phaseID(NXcrystal_structure):
exists: [min, 0, max, infty]
number_of_scan_points(NX_UINT):
a_b_c(NX_NUMBER):
alpha_beta_gamma(NX_NUMBER):
space_group(NX_CHAR):
phase_identifier(NX_INT):
phase_name(NX_CHAR):
ipfID(NXmicrostructure_ipf):
exists: recommended
projection_direction(NX_NUMBER):
map(NXdata):
\@signal(NX_CHAR):
\@axes(NX_CHAR):
\@AXISNAME_indices(NX_INT):
title(NX_CHAR):
data(NX_NUMBER):
\@long_name(NX_CHAR):
axis_x(NX_NUMBER):
\@long_name(NX_CHAR):
axis_y(NX_NUMBER):
exists: optional
\@long_name(NX_CHAR):
axis_z(NX_NUMBER):
exists: optional
\@long_name(NX_CHAR):
legend(NXdata):
\@signal(NX_CHAR):
\@axes(NX_CHAR):
\@AXISNAME_indices(NX_INT):
title(NX_CHAR):
data(NX_NUMBER):
\@long_name(NX_CHAR):
axis_x(NX_NUMBER):
\@long_name(NX_CHAR):
axis_y(NX_NUMBER):
\@long_name(NX_CHAR):
roi(NXdata):
exists: recommended
\@signal(NX_CHAR):
\@axes(NX_CHAR):
\@AXISNAME_indices(NX_CHAR):
title(NX_CHAR):
descriptor(NX_CHAR):
data(NX_NUMBER):
axis_y(NX_NUMBER):
\@long_name(NX_CHAR):
axis_x(NX_NUMBER):
\@long_name(NX_CHAR):
eds(NXem_eds):
exists: optional
# remains to be discussed based on examples
indexing(NXprocess):
summary(NXdata):
exists: optional
\@signal(NX_CHAR):
\@axes(NX_CHAR):
\@AXISNAME_indices(NX_CHAR):
title(NX_CHAR):
intensity(NX_NUMBER):
axis_energy(NX_CHAR):
\@long_name(NX_CHAR):
atom_types(NX_CHAR):
(NXimage_set):
exists: [min, 0, max, 118] # given that image_set instances should be named with the chemical_symbol of the elements
iupac_line_candidates(NX_CHAR):
exists: recommended
energy_range(NX_NUMBER):
image_2d(NXdata):
\@signal(NX_CHAR):
\@axes(NX_CHAR):
\@AXISNAME_indices(NX_CHAR):
title(NX_CHAR):
exists: optional
intensity(NX_NUMBER):
\@units(NX_CHAR):
exists: recommended
axis_i(NX_NUMBER): # x
\@long_name(NX_CHAR):
\@units(NX_CHAR):
axis_j(NX_NUMBER): # y
\@long_name(NX_CHAR):
\@units(NX_CHAR): # exemplar test to enforce that units are added
adf(NXem_adf):
exists: optional
# remains to be discussed based on examples
Expand Down
4 changes: 2 additions & 2 deletions contributed_definitions/nyaml/NXem_ebsd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -450,11 +450,11 @@ NXem_ebsd(NXem_method):
roi(NXdata):
doc: |
An overview of the entire ROI.
descriptor:
descriptor(NX_CHAR):
doc: |
Descriptor representing the image contrast.
# taking two examples (CTF and H5OINA choked completely of possibility to find s.th. conceptually common to plot
enumeration: [normalized_band_contrast, normalized_confidence_index, normalized_mean_angular_deviation]
enumeration: [band_contrast, confidence_index, mean_angular_deviation]
# \@signal: # data
# \@axes: # [axis_y, axis_x]
# \@axis_x_indices: 0
Expand Down
9 changes: 5 additions & 4 deletions contributed_definitions/nyaml/NXem_eds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,11 @@ NXem_eds(NXem_method):
This can be a list of IUPAC notations for (the seldom) case that
multiple lines are grouped with the same peak.
dim: (i,)
element_names(NX_CHAR):
atom_types(NX_CHAR):
doc: |
Comma-separated list of names of identified elements. All members of
the list have to be valid chemical_symbols from the periodic table.
Comma-separated list of names of elements confirmed in the sample via EDS analysis.
All members of the list have to be valid chemical_symbols from the periodic table.
This field can be used when creating instances of NXpeak is not desired.
However, a collection of instances of NXpeak with individual NXion specified
Expand All @@ -104,7 +105,7 @@ NXem_eds(NXem_method):
These element-specific EDS maps are :ref:`NXimage_set` instances
and need to be named with the name of the element from the
element_names field.
atom_types field.
We often observe that signal contributions from several peaks
are summarized and shown together, e.g. the combined signal
Expand Down

0 comments on commit 132fc2a

Please sign in to comment.