From 6974c07507a06176a2205d63b71c04579274abd3 Mon Sep 17 00:00:00 2001 From: mkuehbach Date: Mon, 25 Aug 2025 18:10:51 +0200 Subject: [PATCH 1/3] Adding content of fairmat PR402 to complete the discussion from 1423 for fairmat-2024-em --- applications/NXapm.nxdl.xml | 12 +++++------ applications/NXem.nxdl.xml | 12 +++++------ base_classes/NXaberration.nxdl.xml | 4 +++- ...apm.nxdl.xml => NXapm_event_data.nxdl.xml} | 6 +++--- ...apm.nxdl.xml => NXapm_instrument.nxdl.xml} | 12 +++++------ base_classes/NXapm_measurement.nxdl.xml | 4 ++-- base_classes/NXcorrector_cs.nxdl.xml | 21 +++++++++++++------ base_classes/NXebeam_column.nxdl.xml | 4 ++-- ...a_em.nxdl.xml => NXem_event_data.nxdl.xml} | 10 ++++----- ...t_em.nxdl.xml => NXem_instrument.nxdl.xml} | 12 +++++------ base_classes/NXem_measurement.nxdl.xml | 4 ++-- .../NXem.TopLevelDoc.FIB.svg | 2 +- .../NXem.TopLevelDoc.SEM.svg | 2 +- .../NXem.TopLevelDoc.TEM.svg | 2 +- .../contributed_definitions/apm-structure.rst | 6 +++--- .../contributed_definitions/em-structure.rst | 8 +++++-- 16 files changed, 68 insertions(+), 53 deletions(-) rename base_classes/{NXevent_data_apm.nxdl.xml => NXapm_event_data.nxdl.xml} (96%) rename base_classes/{NXinstrument_apm.nxdl.xml => NXapm_instrument.nxdl.xml} (97%) rename base_classes/{NXevent_data_em.nxdl.xml => NXem_event_data.nxdl.xml} (97%) rename base_classes/{NXinstrument_em.nxdl.xml => NXem_instrument.nxdl.xml} (97%) diff --git a/applications/NXapm.nxdl.xml b/applications/NXapm.nxdl.xml index c2e29fe22a..86bebe9cd8 100644 --- a/applications/NXapm.nxdl.xml +++ b/applications/NXapm.nxdl.xml @@ -44,7 +44,7 @@ Number of pulses collected in between start_time and end_time resolved by an - instance of :ref:`NXevent_data_apm`. If this is not defined, p is the number of + instance of :ref:`NXapm_event_data`. If this is not defined, p is the number of ions included in the reconstructed volume if the application definition is used to store results of an already reconstructed dataset. @@ -149,7 +149,7 @@ or a new file. Removing the specimen from the instrument is an interruption. Changing evaporation conditions while the specimen is remains in the analysis_chamber and resuming thereafter the measurement is not considered as an interruption. It is a common strategy to probe the evaporation process for different - instrument parameters. Each individual collection should then though be stored in an own NXevent_data_apm + instrument parameters. Each individual collection should then though be stored in an own NXapm_event_data group. Parking the specimen to the buffer_chamber and resuming the measurement at a later stage is an interruption. During a run, the microscope is used for a certain amount of time to characterize a single specimen. - The groups ``sample`` and ``specimen`` provide concepts for storing metadata about the sample and the specimen, @@ -340,7 +340,7 @@ More detailed timing data over the course of the experiment have to be collected to compute this event chain during the experiment. For this - purpose the :ref:`NXevent_data_apm` instance should be used. + purpose the :ref:`NXapm_event_data` instance should be used. @@ -740,7 +740,7 @@ - + @@ -832,10 +832,10 @@ - + - + diff --git a/applications/NXem.nxdl.xml b/applications/NXem.nxdl.xml index 3a207a45f1..d6e6883f02 100644 --- a/applications/NXem.nxdl.xml +++ b/applications/NXem.nxdl.xml @@ -219,7 +219,7 @@ may not be sufficient to infer how long the experiment took or for how long data were acquired. To bookkeep more fine-grained timestamps over the course of the experiment is possible with start_time and end_time fields - of respective :ref:`NXevent_data_em` instances. + of respective :ref:`NXem_event_data` instances. @@ -422,7 +422,7 @@ For multi-layered specimens this field should only be used to describe the density of the excited volume. For scanning electron microscopy the usage of this field is discouraged and instead an instance of a - region-of-interest connected to individual :ref:`NXevent_data_em` + region-of-interest connected to individual :ref:`NXem_event_data` instances can provide a cleaner description of the relevant details. @@ -747,8 +747,8 @@ - - + + @@ -976,7 +976,7 @@ - + @@ -1341,7 +1341,7 @@ - + diff --git a/base_classes/NXaberration.nxdl.xml b/base_classes/NXaberration.nxdl.xml index faca9e7310..fad8ee1961 100644 --- a/base_classes/NXaberration.nxdl.xml +++ b/base_classes/NXaberration.nxdl.xml @@ -25,12 +25,14 @@ Quantified aberration coefficient in an aberration_model. - For an introduction in the aberrations in electron microscopy + For an introduction in the details about aberrations with relevance for electron microscopy see `R. Dunin-Borkowski et al. <https://doi.org/10.1017/9781316337455.022>`_ and `S. J. Pennycock and P. D. Nellist <https://doi.org/10.1007/978-1-4419-7200-2>`_ (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 <https://www.globalsino.com/EM/page3740.html>`_ an introduction. + + The use of the base class is not restricted to electron microscopy but can also be useful for classical optics. diff --git a/base_classes/NXevent_data_apm.nxdl.xml b/base_classes/NXapm_event_data.nxdl.xml similarity index 96% rename from base_classes/NXevent_data_apm.nxdl.xml rename to base_classes/NXapm_event_data.nxdl.xml index 820f061d95..162cd3e80e 100644 --- a/base_classes/NXevent_data_apm.nxdl.xml +++ b/base_classes/NXapm_event_data.nxdl.xml @@ -21,7 +21,7 @@ # # For further information, see http://www.nexusformat.org --> - + The symbols used in the schema to specify e.g. dimensions of arrays. @@ -37,7 +37,7 @@ Having at least one instance for an instance of NXapm is recommended. - This base class applies the concept of the :ref:`NXevent_data_em` base class to the specific needs + This base class applies the concept of the :ref:`NXem_event_data` base class to the specific needs of atom probe research. Again static and dynamic quantities are split to avoid a duplication of information. Specifically, the time interval considered is the entire time starting at start_time until end_time during which we assume the pulser triggered pulses. @@ -110,7 +110,7 @@ - + Place to store dynamic metadata of the instrument to document as close as possible the state of the instrument during the event, i.e. in between start_time and end_time. diff --git a/base_classes/NXinstrument_apm.nxdl.xml b/base_classes/NXapm_instrument.nxdl.xml similarity index 97% rename from base_classes/NXinstrument_apm.nxdl.xml rename to base_classes/NXapm_instrument.nxdl.xml index 10b76c84e7..0d859aa531 100644 --- a/base_classes/NXinstrument_apm.nxdl.xml +++ b/base_classes/NXapm_instrument.nxdl.xml @@ -24,9 +24,9 @@ - + The symbols used in the schema to specify e.g. dimensions of arrays. @@ -34,7 +34,7 @@ or volatile (meta)data.--> Number of pulses collected in between start_time and end_time - inside a parent instance of :ref:`NXevent_data_apm`. + inside a parent instance of :ref:`NXapm_event_data`. @@ -44,7 +44,7 @@ or volatile (meta)data.--> For collecting data and experiments which are simulations of an atom probe microscope or a session with such instrument use the :ref:`NXapm` application definition - and the :ref:`NXevent_data_apm` groups it provides. + and the :ref:`NXapm_event_data` groups it provides. This base class implements the concept of :ref:`NXapm` whereby (meta)data are distinguished whether these typically change during a session, so-called dynamic, or not, so-called static metadata. @@ -194,7 +194,7 @@ or volatile (meta)data.--> Laser- and/or voltage-pulsing device to trigger ion removal. - When the base class NXinstrument_apm is used in the NXapm + When the base class NXapm_instrument is used in the NXapm application definition, the values for the following fields: * pulse_frequency @@ -208,7 +208,7 @@ or volatile (meta)data.--> * spot_position should be recorded in the order of, and assumed associated, - with the pulse_id in an instance of :ref:`NXevent_data_apm`. + with the pulse_id in an instance of :ref:`NXapm_event_data`. diff --git a/base_classes/NXapm_measurement.nxdl.xml b/base_classes/NXapm_measurement.nxdl.xml index c536a2daf1..d4f1f07747 100644 --- a/base_classes/NXapm_measurement.nxdl.xml +++ b/base_classes/NXapm_measurement.nxdl.xml @@ -65,6 +65,6 @@ field of a CamecaRoot ROOT file. - - + + diff --git a/base_classes/NXcorrector_cs.nxdl.xml b/base_classes/NXcorrector_cs.nxdl.xml index e79b409d46..9161c24137 100644 --- a/base_classes/NXcorrector_cs.nxdl.xml +++ b/base_classes/NXcorrector_cs.nxdl.xml @@ -33,15 +33,15 @@ - Base class for a corrector reducing (spherical) aberrations in electron microscopy. + Base class for a corrector reducing (spherical) aberrations of an electron optical setup. Different technology partners use different conventions and models for quantifying the aberration coefficients. - Correctors in an electron microscope are composed of multiple lenses - and multipole stigmators. Their technical details are specific for the - technology partner as well as microscope. Most technical details are - proprietary knowledge. + Aberration correction components are especially important for (scanning) + transmission electron microscopy. Composed of multiple lenses and multipole stigmators, + their technical details are specific for the technology partner as well as + the microscope and instrument. Most technical details are proprietary knowledge. If one component corrects for multiple types of aberrations (like it is the case reported here `CEOS <https://www.ceos-gmbh.de/en/research/electrostat>`_) follow this @@ -50,6 +50,14 @@ * Use :ref:`NXcorrector_cs` for spherical aberration * Use :ref:`NXmonochromator` for energy filtering or chromatic aberration * Use the group corrector_ax in :ref:`NXem` for axial astigmatism aberration + + Although this base class currently provides concepts that are foremost used in + the field of electron microscopy using this base class is not restricted to this + research field. NXcorrector_cs can also serve as a container to detail, in + combination with :ref:`NXaberration`, about measured aberrations in classical optics. + In optics, though, the difference is that the design of the :ref:NXoptical_lens` + itself (e.g., using aspheric lenses or combinations of lenses) enables to + reduce spherical aberrations. @@ -63,7 +71,7 @@ the corrector is configured to enable calibrated usage of the instrument. This :ref:`NXprocess` group should also be used when one describes in a computer - simulation the specific details about the modelled or assumed aberrations. + simulation the specific details about the modeled or assumed aberrations. @@ -164,6 +172,7 @@ + diff --git a/base_classes/NXebeam_column.nxdl.xml b/base_classes/NXebeam_column.nxdl.xml index d27ac26085..36612f877a 100644 --- a/base_classes/NXebeam_column.nxdl.xml +++ b/base_classes/NXebeam_column.nxdl.xml @@ -25,8 +25,8 @@ Base class for a set of components providing a controllable electron beam. - The idea behind defining NXebeam_column as an own base class vs. adding these - concepts in NXinstrument_em is that the electron beam generating component + The idea behind defining :ref:`NXebeam_column` as an own base class vs. adding these + concepts in :ref:`NXem_instrument` is that the electron beam generating component might be worthwhile to use also in other types of experiments. diff --git a/base_classes/NXevent_data_em.nxdl.xml b/base_classes/NXem_event_data.nxdl.xml similarity index 97% rename from base_classes/NXevent_data_em.nxdl.xml rename to base_classes/NXem_event_data.nxdl.xml index c26a78a7e6..beb08d404a 100644 --- a/base_classes/NXevent_data_em.nxdl.xml +++ b/base_classes/NXem_event_data.nxdl.xml @@ -21,7 +21,7 @@ # # For further information, see http://www.nexusformat.org --> - + Base class to store state and (meta)data of events for electron microscopy. @@ -48,7 +48,7 @@ data of the instrument state can be stored and documented in an representation that facilitates interoperability. This is the idea behind this base class. - :ref:`NXevent_data_em` represents an instance to describe and serialize flexibly + :ref:`NXem_event_data` represents an instance to describe and serialize flexibly whatever is considered a time interval during which the instrument is considered stable enough for allowing any working on tasks with it. Examples of such tasks are the collecting of data (images and spectra) or @@ -59,7 +59,7 @@ ROIs on the specimen), or they explore the state of the microscope for service or maintenance tasks. - :ref:`NXevent_data_em` serves the harmonization and documentation of these cases: + :ref:`NXem_event_data` serves the harmonization and documentation of these cases: * Firstly, via a header section whose purpose is to contextualize and identify the event instance in time. @@ -94,7 +94,7 @@ implemented as time-dependent functional descriptions of e.g. lens excitations, beam shape functions, trajectories of groups of electrons and ions, or detector noise models. This also warrants to document the time-dependent details of individual components - of the microscope via the here implemented class :ref:`NXevent_data_em`. + of the microscope via the here implemented class :ref:`NXem_event_data`. @@ -151,7 +151,7 @@ - + diff --git a/base_classes/NXinstrument_em.nxdl.xml b/base_classes/NXem_instrument.nxdl.xml similarity index 97% rename from base_classes/NXinstrument_em.nxdl.xml rename to base_classes/NXem_instrument.nxdl.xml index 3e4b358e18..80340405a1 100644 --- a/base_classes/NXinstrument_em.nxdl.xml +++ b/base_classes/NXem_instrument.nxdl.xml @@ -21,13 +21,13 @@ # # For further information, see http://www.nexusformat.org --> - + Base class for instrument-related details of a real or simulated electron microscope. For collecting data and experiments which are simulations of an electron microscope (or such session) use the :ref:`NXem` application definition and - the :ref:`NXevent_data_em` groups it provides. + the :ref:`NXem_event_data` groups it provides. This base class implements the concept of :ref:`NXem` whereby (meta)data are distinguished whether these typically change during a session (dynamic) or not (static metadata). @@ -162,7 +162,7 @@ in a particular narrow community which work with that particular microscope--> attribute. However, it is better to describe the reference frame in which the tilt is defined explicitly using instances of :ref:`NXtransformations` and respective instances of :ref:`NXcoordinate_system`. Especially when this - NXinstrument_em base class is used in an application definition like NXem. + NXem_instrument base class is used in an application definition like NXem. @@ -176,7 +176,7 @@ in a particular narrow community which work with that particular microscope--> attribute. However, it is better to describe the reference frame in which the tilt is defined explicitly using instances of :ref:`NXtransformations` and respective instances of :ref:`NXcoordinate_system`. Especially when this - NXinstrument_em base class is used in an application definition like NXem. + NXem_instrument base class is used in an application definition like NXem. @@ -190,7 +190,7 @@ in a particular narrow community which work with that particular microscope--> attribute. However, it is better to describe the reference frame in which the rotation is defined explicitly using instances of :ref:`NXtransformations` and respective instances of :ref:`NXcoordinate_system`. Especially when this - NXinstrument_em base class is used in an application definition like NXem. + NXem_instrument base class is used in an application definition like NXem. @@ -204,7 +204,7 @@ in a particular narrow community which work with that particular microscope--> attribute. However, it is better to describe the reference frame in which the position values are defined explicitly using instances of :ref:`NXtransformations` and respective instances of :ref:`NXcoordinate_system`. Especially when this - NXinstrument_em base class is used in an application definition like NXem. + NXem_instrument base class is used in an application definition like NXem. diff --git a/base_classes/NXem_measurement.nxdl.xml b/base_classes/NXem_measurement.nxdl.xml index 4648fe57ac..8dda84b57a 100644 --- a/base_classes/NXem_measurement.nxdl.xml +++ b/base_classes/NXem_measurement.nxdl.xml @@ -25,6 +25,6 @@ Base class for documenting a measurement with an electron microscope. - - + + diff --git a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.FIB.svg b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.FIB.svg index 79b5930fbb..961b7bdd01 100644 --- a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.FIB.svg +++ b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.FIB.svg @@ -1080,7 +1080,7 @@ id="tspan276223" style="stroke-width:0.264583;font-size:5.64444444px" x="7.1437454" - y="221.1916">instrument:NXinstrument_em + y="221.1916">instrument:NXem_instrument diff --git a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.SEM.svg b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.SEM.svg index a6b84f29ab..ebeed62e68 100644 --- a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.SEM.svg +++ b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.SEM.svg @@ -1153,7 +1153,7 @@ id="tspan276223" style="stroke-width:0.264583;font-size:5.64444444px" x="6.085412" - y="219.60413">instrument:NXinstrument_em + y="219.60413">instrument:NXem_instrument diff --git a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.TEM.svg b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.TEM.svg index 697bc577b9..17766353f7 100644 --- a/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.TEM.svg +++ b/manual/source/classes/contributed_definitions/NXem.TopLevelDoc.TEM.svg @@ -1811,7 +1811,7 @@ id="tspan276223" style="font-size:5.64444px;stroke-width:0.264583" x="103.84361" - y="263.38855">instrument:NXinstrument_em + y="263.38855">instrument:NXem_instrument diff --git a/manual/source/classes/contributed_definitions/apm-structure.rst b/manual/source/classes/contributed_definitions/apm-structure.rst index c3560b1303..4ab24dc481 100644 --- a/manual/source/classes/contributed_definitions/apm-structure.rst +++ b/manual/source/classes/contributed_definitions/apm-structure.rst @@ -51,7 +51,7 @@ The following base classes are proposed to support modularizing the storage of p :ref:`NXcircuit`: Base class to describe electronic circuits. - :ref:`NXinstrument_apm`: + :ref:`NXapm_instrument`: A base class which defines all modular parts that make up an instrument (real or simulated) for studying ion extraction as performed in atom probe and related field-ion microscopy. This base class is used in NXapm in two places: One that is placed inside an ENTRY.measurement.instrument @@ -59,9 +59,9 @@ The following base classes are proposed to support modularizing the storage of p hardware components or version of control software. Another one that is placed inside an ENTRY.measurements.eventID group. This group holds all those (meta)data data change when collecting data during a session. - :ref:`NXevent_data_apm`: + :ref:`NXapm_event_data`: A base class representing a container to hold time-stamped and instrument-specific-state- - annotated data during a session at an electron microscope. + annotated data during a session at an atom probe instrument. :ref:`NXroi_process`: Base class to report details about results obtained for a specific region of a sample a region-of-interest. diff --git a/manual/source/classes/contributed_definitions/em-structure.rst b/manual/source/classes/contributed_definitions/em-structure.rst index b8aff6c47a..eb3836f20c 100644 --- a/manual/source/classes/contributed_definitions/em-structure.rst +++ b/manual/source/classes/contributed_definitions/em-structure.rst @@ -103,7 +103,7 @@ The design of NXem uses several existent base class and adds edits and additions :ref:`NXsample`, :ref:`NXsensor`, :ref:`NXsource`, and :ref:`NXuser`). Many design decisions of the application definitions :ref:`NXem` and :ref:`NXapm` are aligned. Examples are the use of base classes for instrument-specific -events :ref:`NXevent_data_em`, the grouping of measurements :ref:`NXem_measurement` and simulations :ref:`NXem_simulation`, and the encapsulating of :ref:`NXparameters` and :ref:`NXdata` in :ref:`NXprocess` instances to describe workflows of processing. The base classes :ref:`NXatom`, :ref:`NXunit_cell`, and :ref:`NXphase` were introduced to document sets of atoms, the spatial arrangement of atoms, and offer concepts for documenting when +events :ref:`NXem_event_data`, the grouping of measurements :ref:`NXem_measurement` and simulations :ref:`NXem_simulation`, and the encapsulating of :ref:`NXparameters` and :ref:`NXdata` in :ref:`NXprocess` instances to describe workflows of processing. The base classes :ref:`NXatom`, :ref:`NXunit_cell`, and :ref:`NXphase` were introduced to document sets of atoms, the spatial arrangement of atoms, and offer concepts for documenting when regions-of-interest in a material represent thermodynamic phases. In addition to these considerations, several base classes were proposed to define concepts that are specific for electron microscopy: @@ -123,13 +123,17 @@ In addition to these considerations, several base classes were proposed to defin :ref:`NXimage`: A base class to store individual images or stacks of images. - :ref:`NXinstrument_em`: + :ref:`NXem_instrument`: A base class to document all components that make up an instrument (real or simulated) when using it for studying electron matter interaction. This base class is used in NXem in two places: Firstly, inside an ENTRY/measurement/instrument group. This group holds all those (meta)data which do not change during a session, i.e. instrument name, typically identifier of hardware components or version of control software. Secondly, inside ENTRY/measurement/eventID groups; these hold all those (meta)data data that change during a session. + :ref:`NXem_event_data`: + A base class representing a container to hold time-stamped and instrument-specific-state- + annotated data during a session at an electron microscope. + :ref:`NXroi_process` and specialization :ref:`NXem_interaction_volume`: A base class to document the region-of-interest within an area or volume of material. The region of material where the electron beam interacts with the sample is called the interaction volume. From 431a50b04f2cd7f316d0ab1c99947ef79999786d Mon Sep 17 00:00:00 2001 From: mkuehbach Date: Mon, 25 Aug 2025 18:19:41 +0200 Subject: [PATCH 2/3] Bugfixes detected during implementation of apm examples observed after NXapm was voted upon --- applications/NXapm.nxdl.xml | 13 +++++++++---- base_classes/NXapm_reconstruction.nxdl.xml | 16 ++++++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/applications/NXapm.nxdl.xml b/applications/NXapm.nxdl.xml index 86bebe9cd8..95ccfa5576 100644 --- a/applications/NXapm.nxdl.xml +++ b/applications/NXapm.nxdl.xml @@ -203,7 +203,7 @@ events that can be time-stamped individually. Each instance of a group ``measurement/eventID`` contains ``measurement/instrument`` whose purpose is to store those specific state and settings of the instrument that was present during the collection of the event. - Thereby, changing conditions such as compaigns with different target detection rate can be stored. + Thereby, changing conditions such as campaigns with different target detection rate can be stored. Noteworthy, such an approach of the atom probe detecting groups of events and storing these as groups has also been in use in the proprietary software via CamecaRoot, a set of customized data structures and file formats that use @@ -361,6 +361,11 @@ + + + The author(s) of that reference. + + @@ -673,7 +678,7 @@ - + A coordinate system. Multiple instances require unique names. @@ -1260,7 +1265,7 @@ - + Mass calibration with unit peaks/interp. as mentioned by `T. Blum et al. @@ -1308,7 +1313,7 @@ - + diff --git a/base_classes/NXapm_reconstruction.nxdl.xml b/base_classes/NXapm_reconstruction.nxdl.xml index 43068bd667..b1680ce79d 100644 --- a/base_classes/NXapm_reconstruction.nxdl.xml +++ b/base_classes/NXapm_reconstruction.nxdl.xml @@ -130,9 +130,10 @@ field of a CamecaRoot ROOT file. - + - Sum of ion volumes + The factor :math:`k` in :math:`R_0 = \frac{V}{kF}` with :math:`R_0` tip_radius_zero + :math:`V` the voltage and :math:`F` the evaporation field. The value can be extracted from the CAnalysis.CSpatial.fKfactor field of a CamecaRoot ROOT file. @@ -186,6 +187,9 @@ performed with APSuite / IVAS see also `B. Gault et al. <https://doi.org/10.1093/mam/ozae081>_` and `T. Blum et al. <https://doi.org/10.1002/9781119227250.ch18>`_ (page 371). for best practices on the reporting of metadata in atom probe tomography. + + The value can be extracted from the CAnalysis.CResults.fComments + field of a CamecaRoot ROOT file. @@ -204,6 +208,14 @@ + + + Qualitative statement about the reconstruction. + + The value can be extracted from the CAnalysis.CResults.fQuality + field of a CamecaRoot ROOT file. + + From 7236be5ee3076d391d8b635cdae8832cd8d14bed Mon Sep 17 00:00:00 2001 From: mkuehbach Date: Mon, 25 Aug 2025 18:57:26 +0200 Subject: [PATCH 3/3] Few more bugfixes that were spotted when using the voted upon NXem for with many examples in FAIRmat --- applications/NXem.nxdl.xml | 66 ++++++--------------------------- base_classes/NXem_ebsd.nxdl.xml | 45 ++++++++++++---------- base_classes/NXphase.nxdl.xml | 9 +---- 3 files changed, 40 insertions(+), 80 deletions(-) diff --git a/applications/NXem.nxdl.xml b/applications/NXem.nxdl.xml index d6e6883f02..d4652242bc 100644 --- a/applications/NXem.nxdl.xml +++ b/applications/NXem.nxdl.xml @@ -231,7 +231,14 @@ start_time and end_time together. - + + + + The author(s) of that reference. + + + + Collection of serialized resources associated with the experiment. @@ -508,7 +515,7 @@ - + @@ -1639,8 +1646,6 @@ is required to provide such information in this way!--> - @@ -1687,7 +1692,7 @@ exists: optional--> - @@ -1703,51 +1708,6 @@ not wish to duplicate all payload data--> - @@ -1781,7 +1741,7 @@ exists: optional--> - + @@ -1790,15 +1750,13 @@ exists: optional--> - + - - diff --git a/base_classes/NXem_ebsd.nxdl.xml b/base_classes/NXem_ebsd.nxdl.xml index c8959b455d..1590ff946e 100644 --- a/base_classes/NXem_ebsd.nxdl.xml +++ b/base_classes/NXem_ebsd.nxdl.xml @@ -529,34 +529,33 @@ In another example users may have skipped some scan points (not indexed them at all) or used differing numbers of phases for indexing different scan points. - The cumulated of this array decodes how identifier_phase and matching_phase + The cumulated of this array decodes how phase_id and matching_phase arrays have to be interpreted. In the simplest case (one pattern per scan point, and all scan points indexed using that same single phase model), - identifier_phase has as many entries as scan points + phase_id has as many entries as scan points and matching_phase has also as many entries as scan points. - + - The array phases_per_scan_point details how the identifier_phase + The array phases_per_scan_point details how the phase_id and the matching_phase arrays have to be interpreted. - For the example with a single phase identifier_phase has trivial + For the example of a single-phase material phase_id has trivial values either 0 (no solution) or 1 (solution matching - sufficiently significant with the model for phase 1). + sufficiently significant with the model for phase1, an instance of :ref:`NXphase`). - When there are multiple phases, it is possible (although not frequently - required) that a pattern matches eventually (not equally well) sufficiently - significant with multiple patterns. This can especially happen in cases of - pseudosymmetry and more frequently with an improperly calibrated system - or false or inaccurate phase models. Having such field is especially relevant + For the example of multi-phase material, it is possible (although not frequently + required) that a pattern agrees significantly with multiple patterns. Examples are + cases of pseudosymmetry, insufficiently precise and accurate calibrated systems, + or usage of inaccurate phase models. Having such field is especially relevant for recent dictionary- or artificial intelligence-based indexing methods to communicate the results in a model-agnostic way in combination with matching_phase. - Depending on the phases_per_scan_point value, identifier_phase and + Depending on the phases_per_scan_point value, phase_id and matching_phase arrays represent a collection of concatenated tuples. These are organized in sequence: The solutions for the 0-th scan point, the 1-th scan point, the n_sc - 1 th scan point and omitting tuples @@ -568,10 +567,10 @@ - One-dimensional array, pattern by pattern labelling the solutions found. + One-dimensional array, pattern-by-pattern labelling the solutions found. The array phases_per_scan_point has to be specified because it details - how the identifier_phase and the matching_phase arrays are interpreted. - See documentation of identifier_phase for further details. + how the phase_id and the matching_phase arrays are interpreted. + See documentation of phase_id for further details. @@ -610,10 +609,18 @@ Number of scan points in the original mapping. - + + + The shape of the polygon or polyhedron that was used for the tiling + respectively tessellation of the region-of-interest into scan points. + + + + + + + + An overview of the entire ROI. diff --git a/base_classes/NXphase.nxdl.xml b/base_classes/NXphase.nxdl.xml index 8f6891a3f0..f38da4b73f 100644 --- a/base_classes/NXphase.nxdl.xml +++ b/base_classes/NXphase.nxdl.xml @@ -35,7 +35,7 @@ null-model (no sufficiently significant information available). In other words, the phase_name is n/a aka notIndexed. - The identifier_phase value should match with the integer suffix of the + The phase_id value should match with the integer suffix of the group name which represents that instance in a NeXus/HDF5 file, i.e. if three phases were used e.g. 0, 1, and 2, three instances of :ref:`NXphase` named phase0, phase1, and phase2 should be stored @@ -46,15 +46,10 @@ Given name as an alias for identifying this phase. - If the identifier_phase is 0 and one would like to use + If the phase_id is 0 and one would like to use the field name, the value should be n/a or notIndexed. -