Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
64dc030
Fine-tuning of the naming conventions for identifier which is now a r…
atomprobe-tc Mar 27, 2025
51177c9
Refactoring of identifier in favor for indices, harmonizing when to u…
atomprobe-tc Mar 27, 2025
67fb8de
Recovered unplanned automated removal of docstring blockcomment white…
atomprobe-tc Mar 27, 2025
176a1b5
Merge branch 'fairmat' into emapm_database_reprocessing
atomprobe-tc Mar 27, 2025
8fb08ea
A few more whitespaces
atomprobe-tc Mar 27, 2025
78d97cd
phase_identifier
atomprobe-tc Mar 27, 2025
36b842f
Update definitions for MPIE's compositionspace tool
atomprobe-tc Apr 3, 2025
e27f296
Updates on NXmicrostructure, fine tuning of symbols, and concepts sur…
atomprobe-tc Apr 4, 2025
4c47a3f
Fix CICD
atomprobe-tc Apr 4, 2025
e6a3d9d
Adding color_model to ipf, tsl default if mtex is not present, if mte…
atomprobe-tc Apr 7, 2025
71a358e
Reverting the use of NXobject in favor for new small base classes as …
atomprobe-tc May 7, 2025
3a380cb
Further reverting for NXobject for APM-part of the proposal
atomprobe-tc May 7, 2025
9a1f44c
Further removing of NXobject and indenting NXevent_data in NXem. Afte…
atomprobe-tc May 9, 2025
1932383
Completed reverting the usage of NXobject in places other than than r…
atomprobe-tc May 9, 2025
899d07f
Reverting all cases where patterns where used like concept is of name…
atomprobe-tc May 9, 2025
87b8569
Removal of obsolete NXcoordinate_system_set to reflect how the discus…
atomprobe-tc May 9, 2025
826a978
Reverting nameType any to partial pattern, lot 2 microstructures
atomprobe-tc May 9, 2025
e145516
Reverting nameType any to partial pattern, last lot NXem
atomprobe-tc May 9, 2025
5b84653
Addressed phyy-nxx comment on using American spelling throughout
atomprobe-tc May 9, 2025
02ba5c9
Addressed and worked in phyy-nx review comments from https://github.c…
atomprobe-tc May 9, 2025
2337fa8
Work on the EM part of the proposal, i) next step split groups in NXc…
atomprobe-tc May 9, 2025
67d3fd1
Fix issues with NXcs_computer
atomprobe-tc May 9, 2025
eaf5087
Further work on EM base classes, added beam_blanker
atomprobe-tc May 9, 2025
3a6add4
Edits em-domain-specific methods
atomprobe-tc May 9, 2025
4c408b0
Fixing warning issues with the documentation building
atomprobe-tc May 9, 2025
89a2fdd
Few more fixes and make local running fine now
atomprobe-tc May 9, 2025
b0fe310
Fix copyrights
atomprobe-tc May 9, 2025
67a3bae
Generate NXDL files
atomprobe-tc May 9, 2025
99e2426
Fixing incorrect nameType
atomprobe-tc May 9, 2025
c1fe1f2
Revert change in Makefile
atomprobe-tc May 9, 2025
d29e3b8
Updte custom dictionary cuz of new custom names
atomprobe-tc May 9, 2025
ca0c142
Eliminate remaining references to NXcoordinate_system_set
atomprobe-tc May 9, 2025
3925941
Finished NXem
atomprobe-tc May 12, 2025
1c038d8
Removing inconsistencies between fairmat version and NIAC proposed ve…
atomprobe-tc May 12, 2025
83f6dde
Make remaining nxdls that were not yet in sync
atomprobe-tc May 12, 2025
61c04bd
Merge branch 'fairmat' into emapm_cgms_summer2025
atomprobe-tc Jul 1, 2025
4f8a2e7
Cleaned nyaml and regenerated them from scratch
atomprobe-tc Jul 1, 2025
a9404c4
Whitespace changes on NXcg that were relevant for syncing with the NIAC
atomprobe-tc Jul 14, 2025
973f272
Brought back changes for atom probe proposal and a few fixes where ap…
atomprobe-tc Jul 14, 2025
61eff59
Brought (speculatively still because EM not yet voted upon but voting…
atomprobe-tc Jul 15, 2025
ccac138
Brought back (speculatively) cg classes FAIRmat and pre-FAIRmat ones,…
atomprobe-tc Jul 15, 2025
c88e87a
Brought back (speculatively, although voted but nameType for AXISNAME…
atomprobe-tc Jul 15, 2025
6f5a32a
Given that mpes, xps, apm and opt were standardized, and em, and cg i…
atomprobe-tc Jul 15, 2025
03d9fbb
Refactoring of deprecated NXion to NXatom
atomprobe-tc Jul 15, 2025
dc005f5
Fixing math env error for rendering in rst for NXatom
atomprobe-tc Jul 15, 2025
7318377
Edits that take into account the state of upstream/main from the NIAC…
atomprobe-tc Jul 17, 2025
8e30f4e
One more update from the NXem voting
atomprobe-tc Jul 18, 2025
acd9de3
Fixing an uncaught issue in NXsource
atomprobe-tc Jul 18, 2025
a049906
Edits on NXmicrostructure
atomprobe-tc Jul 21, 2025
eada03f
Reactivated microstructure, edit NAMED_reference_frameID
atomprobe-tc Jul 21, 2025
b10829c
Edits reintroducing microstructure for the AMAG test case
atomprobe-tc Jul 23, 2025
8d6d6e3
Added NXchemical_composition to NXmicrostructural_feature to allow fo…
atomprobe-tc Jul 23, 2025
86bcf00
Make microstructure a subordinate of phase
atomprobe-tc Jul 23, 2025
2abdca4
Removing inconsistency of explicit demanding for units in NXem_eds
atomprobe-tc Jul 23, 2025
870edd9
Clarification of a nameType that should not be specified
atomprobe-tc Jul 23, 2025
441825c
Merge branch 'fairmat' into emapm_cgms_summer2025_finalize_contributed
atomprobe-tc Jul 28, 2025
d49f9c0
Fix mentioning of removed class NXion
atomprobe-tc Jul 28, 2025
4b83b4d
Further changes given that some NeXus classes have been removed
atomprobe-tc Jul 28, 2025
444d749
Fixes related to spellchecking, always sort the entries in the custom…
atomprobe-tc Jul 28, 2025
f2ee0fd
Further spelling
atomprobe-tc Jul 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
441 changes: 230 additions & 211 deletions .cspell/custom-dictionary.txt

Large diffs are not rendered by default.

1,597 changes: 1,597 additions & 0 deletions applications/NXapm.nxdl.xml

Large diffs are not rendered by default.

1,805 changes: 1,805 additions & 0 deletions applications/NXem.nxdl.xml

Large diffs are not rendered by default.

3,131 changes: 3,131 additions & 0 deletions applications/nyaml/NXapm.yaml

Large diffs are not rendered by default.

3,583 changes: 3,583 additions & 0 deletions applications/nyaml/NXem.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
Expand All @@ -23,47 +23,54 @@
-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXaberration" extends="NXobject" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Quantified aberration coefficient in an aberration_model.
Quantified aberration coefficient in an aberration_model.

For an introduction in the aberrations in electron microscopy
see `R. Dunin-Borkowski et al. &lt;https://doi.org/10.1017/9781316337455.022&gt;`_ and
`S. J. Pennycock and P. D. Nellist &lt;https://doi.org/10.1007/978-1-4419-7200-2&gt;`_ (page 44ff, and page 118ff)
for different definitions available and further details.
Table 7-2 of Ibid. publication (page 305ff) documents how to convert from the Nion to the CEOS definitions.
Conversion tables are also summarized by `Y. Liao &lt;https://www.globalsino.com/EM/page3740.html&gt;`_ an introduction.
</doc>
<field name="magnitude" type="NX_NUMBER" units="NX_ANY">
<doc>
Magnitude of the aberration
Magnitude of the aberration
</doc>
</field>
<field name="magnitude_errors" type="NX_NUMBER" units="NX_ANY">
<doc>
Uncertainty of the magnitude of the aberration
Uncertainty of the magnitude of the aberration
</doc>
</field>
<field name="magnitude_errors_model" type="NX_CHAR">
<doc>
Free-text description how magnitude_errors was quantified
e.g. via the 95% confidence interval, variance, standard deviation,
using which algorithm or statistical model.
Free-text description how magnitude_errors was quantified
e.g. via the 95% confidence interval, variance, standard deviation,
using which algorithm or statistical model.
</doc>
</field>
<field name="delta_time" type="NX_NUMBER" units="NX_TIME">
<doc>
Time elapsed since the last measurement.
Time elapsed since the last measurement.
</doc>
</field>
<field name="angle" type="NX_NUMBER" units="NX_ANGLE">
<doc>
For the CEOS definitions the C aberrations are radial-symmetric and have
no angle entry, while the A, B, D, S, or R aberrations are n-fold
symmetric and have an angle entry.
For the NION definitions the coordinate system differs to the one
used in CEOS and instead two aberration coefficients a and b are used.
For the CEOS definitions the C aberrations are radial-symmetric and have
no angle entry, while the A, B, D, S, or R aberrations are n-fold
symmetric and have an angle entry.
For the NION definitions the coordinate system differs to the one
used in CEOS and instead two aberration coefficients a and b are used.
</doc>
</field>
<field name="name" type="NX_CHAR">
<doc>
Given name to this aberration.
Given name to this aberration.
</doc>
</field>
<field name="alias" type="NX_CHAR">
<doc>
Alias also used to name and refer to this specific type of aberration.
Alias to name or refer to this specific type of aberration.
</doc>
</field>
</definition>
2 changes: 1 addition & 1 deletion base_classes/NXactuator.nxdl.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
Expand Down
155 changes: 155 additions & 0 deletions base_classes/NXapm_charge_state_analysis.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2024-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXapm_charge_state_analysis" extends="NXprocess" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<symbols>
<doc>
The symbols used in the schema to specify e.g. dimensions of arrays.
</doc>
<symbol name="n_cand">
<doc>
The number of ion candidates.
</doc>
</symbol>
<symbol name="n_ivec_max">
<doc>
Maximum number of allowed atoms per ion.
</doc>
</symbol>
<symbol name="n_variable">
<doc>
Number of entries
</doc>
</symbol>
</symbols>
<doc>
Base class to document the parameters, configuration, and results of a processing for recovering
the charge state and nuclide composition of an ion from ranging definitions as used in the research
field of atom probe microscopy.

A ranging definition classically reports only the mass-to-charge-state-ratio interval plus the
elemental composition, but not necessarily the nuclide that compose the ion.

As the mass-resolving-power in an atom probe instrument is finite and typically lower
than for cutting edge tandem mass spectrometry it is possible that different combinations of nuclides
are indistinguishable and thus multiple ions in eventually even different charge states can be valid
labels for a given mass-to-charge-state-ratio peak. Enumerating the possible combinations
is a programmatic approach that can help with peak identification.
</doc>
<group name="config" type="NXparameters">
<doc>
Parameters for the algorithm used to recover which combinations of nuclides
have a mass and charge that matches a set of constraints.

Each parameter in this group is defines one constraint.
</doc>
<field name="nuclides" type="NX_UINT" units="NX_UNITLESS">
<doc>
Parameter that defines the elements considered in the combinatorial search.
The array contains nuclides as many times as their multiplicity and must not be empty.
Nuclides are encoded using the hashing rule that is defined in by nuclide_hash of :ref:`NXatom`.

Constraining the elements or nuclides instead of providing all nuclides
reduces the time to perform an exhaustive combinatorial search.
</doc>
<dimensions rank="1">
<dim index="1" value="n_variable"/>
</dimensions>
</field>
<field name="mass_to_charge_range" type="NX_FLOAT" units="NX_ANY">
<doc>
Parameter that defines the interval :math:`[{\frac{m}{q}}_{min}, {\frac{m}{q}}_{max}]` within which
ions with given mass-to-charge-state-ratio qualify as candidates.
</doc>
<dimensions rank="1">
<dim index="1" value="2"/>
</dimensions>
</field>
<field name="min_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
Parameter that defines the minimum half life for how long each nuclide of each
ion needs to be stable such that the ion qualifies as a candidate.
</doc>
</field>
<field name="min_abundance" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<doc>
Parameter that defines the minimum natural abundance of each nuclide of each
ion such that the ion qualifies as a candidate.
</doc>
</field>
<field name="sacrifice_isotopic_uniqueness" type="NX_BOOLEAN">
<doc>
If the value is false, it means that non-unique solutions are accepted.
These are solutions where multiple candidates have been built from
different nuclide instances but the charge_state of all the ions is the same.
</doc>
</field>
</group>
<field name="charge_state" type="NX_INT" units="NX_UNITLESS">
<doc>
Signed charge, i.e. integer multiple of the elementary
charge of each candidate.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="nuclide_hash" type="NX_UINT" units="NX_UNITLESS">
<doc>
Table of nuclide instances of which each candidate is composed.
Each row vector is sorted in descending order.
Unused entries in the matrix should be set to 0.
Use the hashing rule that is defined in nuclide_hash of :ref:`NXatom`.
</doc>
<dimensions rank="2">
<dim index="1" value="n_cand"/>
<dim index="2" value="n_ivec_max"/>
</dimensions>
</field>
<field name="mass" type="NX_FLOAT" units="NX_MASS">
<doc>
Accumulated mass of the nuclides in each candidate.
Not corrected for quantum effects.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="natural_abundance_product" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<doc>
The product of the natural abundances of the nuclides for each candidate.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="shortest_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
For each candidate the half life of the nuclide that has the
shortest half life.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
</definition>
70 changes: 70 additions & 0 deletions base_classes/NXapm_measurement.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2025-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXapm_measurement" extends="NXobject" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for collecting a run with a real or a simulated atom probe or field-ion microscope.

The term run is understood as an exact synonym for session, i.e. the usage of a real or simulated
tomograph or microscope for a certain amount of time during which one characterizes a single specimen.

Research workflows for experiments and simulations of atom probe and related field-evaporation
evolve continuously and become increasingly connected with other methods used for material
characterization specifically electron microscopy. A few examples in this direction are:

* `T. Kelly et al. &lt;https://doi.org/10.1017/S1431927620022205&gt;`_
* `C. Fleischmann et al. &lt;https://doi.org/10.1016/j.ultramic.2018.08.010&gt;`_
* `W. Windl et al. &lt;https://doi.org/10.1093/micmic/ozad067.294&gt;`_
* `C. Freysoldt et al. &lt;https://doi.org/10.1103/PhysRevLett.124.176801&gt;`_
* `G. da Costa et al. &lt;https://doi.org/10.1038/s41467-024-54169-2&gt;`_

The majority of atom probe research is performed using the so-called Local Electrode Atom Probe (LEAP) instruments
from AMETEK/Cameca. In addition, several research groups have built their own instruments and shared different
aspects of the technical specifications and approaches including how these groups apply data processing e.g.:

* `M. Monajem et al. &lt;https://doi.org/10.1017/S1431927622003397&gt;`_
* `P. Stender et al. &lt;https://doi.org/10.1017/S1431927621013982&gt;`_
* `I. Dimkou et al. &lt;https://doi.org/10.1093/micmic/ozac051&gt;`_

to name but a few.
</doc>
<field name="status" type="NX_CHAR">
<doc>
A statement whether the measurement completed successfully, or was aborted.
</doc>
<enumeration>
<item value="success"/>
<item value="aborted"/>
</enumeration>
</field>
<field name="quality" type="NX_CHAR">
<doc>
Statement about the quality of the measurement.

The value can be extracted from the CAnalysis.CResults.fQuality
field of a CamecaRoot ROOT file.
</doc>
</field>
<group type="NXinstrument_apm"/>
<group type="NXevent_data_apm"/>
</definition>
Loading
Loading