Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EM refactoring / EMv2 #136

Merged
merged 69 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
764093c
Fixed missing references to EM/CGMS/ICME-related base classes in the …
atomprobe-tc Dec 13, 2023
8a3ae1b
Refactoring storage of images and spectra
atomprobe-tc Dec 13, 2023
6663bec
Minor edit
atomprobe-tc Dec 13, 2023
dba0e64
Refactoring apm has three aims: i) extent NXapm appdef to take advant…
atomprobe-tc Jan 3, 2024
261f91b
Testing the use of NXapm_paraprobe_tool_config/results base classes o…
atomprobe-tc Jan 3, 2024
7abeded
Applied to i)
atomprobe-tc Jan 3, 2024
b50f160
Working on ii) mirrored concept used for NXem with NXapm_msr and NXap…
atomprobe-tc Jan 4, 2024
cdcebea
Implemented design of event_data_apm, correlated signals with keyword…
atomprobe-tc Jan 5, 2024
7e4be9b
Editing NXapm_ranging remains and a final check of the NXapm_new, the…
Jan 5, 2024
373da83
Refactored NXapm_ranging, renamed NXapm_new, a through and complete c…
Jan 5, 2024
df219e8
Reviewing, fixing typos, a minor glitches
Jan 6, 2024
6b649bc
Further reviewing and corrections
Jan 6, 2024
701f277
NXapm reviewing and typos
Jan 7, 2024
34fc49b
Fixed issues detected during make local, manual builds successfully, …
atomprobe-tc Jan 8, 2024
5c7d197
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
f402b33
Fixes and additions revealed from implementing parser functionalities…
atomprobe-tc Jan 17, 2024
c1aa2e3
Placed version as child of definition
atomprobe-tc Jan 17, 2024
23d34bc
Added version as a child of definition, spotted what could be a bug t…
atomprobe-tc Jan 17, 2024
0a2bd84
Fixes and modifications revealed during implementation of imgs, apex …
atomprobe-tc Jan 17, 2024
e37edaf
Added suggestions from @lukaspie on NXpeak
atomprobe-tc Jan 17, 2024
f816790
Fixes introduced for Velox EMD file parser
atomprobe-tc Jan 19, 2024
1072a9a
Fixed definitions and version
atomprobe-tc Jan 23, 2024
8041523
Fixed definitions and version
atomprobe-tc Jan 23, 2024
3b266bf
Removed unfortunated row vector style matrix isotope_vector and nucli…
atomprobe-tc Jan 23, 2024
c043182
Updated apm-specific documentation for new base classes and refactori…
atomprobe-tc Jan 23, 2024
9745686
Fixes and modifications specifically for paraprobe-toolbox tools: par…
atomprobe-tc Jan 25, 2024
4b84b08
Added appdef for selector_results, reorganized where to place common …
atomprobe-tc Jan 25, 2024
0d40ece
Reorganized transcoder, ranger, selector
atomprobe-tc Jan 26, 2024
a172c01
Refactored surfacer to use APMv2
atomprobe-tc Jan 26, 2024
8b6ee88
Refactored appdefs for distancer and tessellator to use APMv2
atomprobe-tc Jan 27, 2024
8ac38a5
Fixes added in the process of refactoring parmsetup-distancer and par…
Jan 27, 2024
7c1f072
Fixes to complete distancer and tessellator APMv2 refactoring
atomprobe-tc Jan 28, 2024
13efc84
Refactored appdefs for paraprobe-spatstat, specified symbol to use fo…
Jan 28, 2024
a04b6fb
Minor editing of spatstat
atomprobe-tc Feb 9, 2024
5291ffe
Refactored paraprobe-clusterer definitions to use APM v2
atomprobe-tc Feb 10, 2024
6122e74
Added missing profiling and program for results appdefs of tools wher…
atomprobe-tc Feb 10, 2024
23722e2
Renaming the last two missing appdefs for tools nanochem and intersec…
atomprobe-tc Feb 13, 2024
7892cf9
Refactored config files for nanochem and intersector to use APMv2
atomprobe-tc Feb 16, 2024
2df16a3
Updated apm-specific landing page
atomprobe-tc Feb 16, 2024
0bd04c7
Minor edits and fixes apm-structure
atomprobe-tc Feb 16, 2024
d5fa011
Fixing a copy-paste error
atomprobe-tc Feb 16, 2024
38bb082
Fixed inconsistence
atomprobe-tc Feb 16, 2024
f8cb8db
Refactored NXapm_paraprobe_nanochem_results and delocalization
atomprobe-tc Feb 16, 2024
7d21589
Refactored NXapm_paraprobe_intersector_results, fixed formatting issu…
Feb 16, 2024
92afaee
Proposal to move common data nicely out, fixes on nanochem config, ne…
atomprobe-tc Feb 18, 2024
70ac95f
Moved profiling and other common information out of task specific gro…
atomprobe-tc Feb 26, 2024
a2c13f5
Resolved logical problem that status was not always present
atomprobe-tc Feb 26, 2024
a0de2c4
Moving of analysis_identifier and config
atomprobe-tc Feb 26, 2024
03b15b5
First round of fixes for appdefs of nanochem tool for delocalization …
atomprobe-tc Feb 27, 2024
2b8c352
Fixes intersector config
atomprobe-tc Feb 27, 2024
ca5b4af
Changes due to comments from colleagues
atomprobe-tc Feb 28, 2024
41b354c
Final changes prior merge
atomprobe-tc Feb 28, 2024
9b8ee6b
Merge pull request #151 from FAIRmat-NFDI/composing-v0.5
mkuehbach Feb 28, 2024
b6cf0b2
Round 1, implementation feedback from colleagues
atomprobe-tc Feb 28, 2024
4fe028d
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
bb7f17a
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
d91898c
Manually merged em into apm
Feb 28, 2024
0b928c4
Deactivated use of NXactuator for now because em_refactoring branch d…
Feb 28, 2024
b37f8ec
Constrained name of ions in NXapm
Feb 28, 2024
ebd722c
Merge pull request #140 from FAIRmat-NFDI/apm_refactoring
mkuehbach Feb 29, 2024
6697f96
Manual merge of fairmat into em_refactoring
atomprobe-tc Feb 29, 2024
95b6505
Recompiled NXdata and NXsensor with nyaml==0.0.9 as they showed issue…
atomprobe-tc Feb 29, 2024
5740f4f
Clarifying situation with NXem_base
atomprobe-tc Feb 29, 2024
5fc31d0
Dropped NXem_base to not immediately be a competitor to NXem, all sug…
atomprobe-tc Feb 29, 2024
6961f34
Cleanly removed NXem_base class
atomprobe-tc Feb 29, 2024
d0358cd
Merge pull request #187 from FAIRmat-NFDI/em_refactoring_em_base_removal
mkuehbach Feb 29, 2024
3337196
Changes suggested by @domna
atomprobe-tc Mar 1, 2024
092580d
Reverted unintentional change NXsensor.nxdl.xml
mkuehbach Mar 1, 2024
7ff42ce
Revert that was unintentionally changed NXdata.nxdl.xml
mkuehbach Mar 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Updated apm-specific documentation for new base classes and refactori…
…ng changes, plus add consistency changes for deprecated isotope_vector
  • Loading branch information
atomprobe-tc committed Jan 23, 2024
commit c043182ebf571641c675303349c9471b4a9e2ade
20 changes: 11 additions & 9 deletions contributed_definitions/NXapm.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1051,23 +1051,25 @@ in an e.g. work of A. London et al.-->
</field>
</group>
<group type="NXion" minOccurs="1" maxOccurs="256">
<field name="isotope_vector" type="NX_UINT"/>
<field name="nuclide_hash" type="NX_UINT"/>
<field name="charge_state" type="NX_INT"/>
<group name="charge_state_analysis" type="NXapm_charge_state_analysis" optional="true">
<!--element_vector(NX_UINT):
mass_to_charge_range(NX_FLOAT):-->
<!--config-->
<field name="element" type="NX_UINT"/>
<field name="mass_to_charge_range" type="NX_FLOAT"/>
<field name="min_half_life" type="NX_FLOAT"/>
<field name="min_abundance" type="NX_FLOAT"/>
<field name="min_abundance_product" type="NX_FLOAT"/>
<field name="sacrifice_isotopic_uniqueness" type="NX_BOOLEAN"/>
<field name="charge_state_vector" type="NX_INT"/>
<field name="isotope_matrix" type="NX_UINT"/>
<field name="mass_vector" type="NX_FLOAT"/>
<field name="natural_abundance_product_vector" type="NX_FLOAT"/>
<field name="min_half_life_vector" type="NX_FLOAT"/>
<!--results-->
<field name="charge_state" type="NX_INT"/>
<field name="nuclide_hash" type="NX_UINT"/>
<field name="mass" type="NX_FLOAT"/>
<field name="natural_abundance_product" type="NX_FLOAT"/>
<field name="shortest_half_life" type="NX_FLOAT"/>
</group>
<field name="mass_to_charge_range" type="NX_FLOAT"/>
<field name="nuclid_list" type="NX_UINT" recommended="true"/>
<field name="nuclide_list" type="NX_UINT" recommended="true"/>
<field name="name" type="NX_CHAR" recommended="true"/>
</group>
</group>
Expand Down
52 changes: 26 additions & 26 deletions contributed_definitions/NXapm_charge_state_analysis.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
#
# Copyright (C) 2014-2024 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
Expand Down Expand Up @@ -38,7 +38,7 @@
</symbol>
</symbols>
<doc>
Base class to document an algorithm for recovering charge state and nuclid composition of a (molecular) ion.
Base class to document an algorithm for recovering charge state and nuclide composition of a (molecular) ion.

Currently ranging definitions in the research field of atom probe face have limitations:

Expand All @@ -50,17 +50,16 @@
mass-to-charge-state-ratio intervals surplus the composition of elements
that build the (molecular) ion.
3. Therefore, classical ranging definitions demand a post-processing with an algorithm
which can identify the nuclids from which the (molecular) ion is constructed
and a charge state possibly recovered.
Combinatorial algorithms are used for this purpose.
which can identify nuclides from which the (molecular) ion is constructed
and a charge state possibly recovered. Combinatorial algorithms are used for this purpose.

This base class documents the configuration and results of such an algorithm.
</doc>
<!--Details and results of the combinatorial analyses of a ranging definition
to clarify (if possible) the charge_state of an ion and its (not necessarily)
unique combination of nuclids contained including their multiplicity.
unique combination of nuclides contained including their multiplicity.
input/config-->
<field name="element_vector" type="NX_UINT" units="NX_UNITLESS">
<field name="element" type="NX_UINT" units="NX_UNITLESS">
<doc>
Input constraint, list of proton numbers for each element of the ranging
definition. The list contains each element as many times as its multiplicity.
Expand All @@ -86,69 +85,70 @@ input/config-->
</field>
<field name="min_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
Input constraint, minimum half life for how long each nuclid of each
Input constraint, minimum half life for how long each nuclide of each
(molecular) 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>
Input constraint, minimum natural abundance of each nuclid of each
Input constraint, minimum natural abundance of each nuclide of each
(molecular) 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
nuclids but the charge_state of all the ions is the same.
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>
<!--min_abundance_product(NX_FLOAT):
doc: |
For each candidate TO BE DEFINED.
unit: NX_DIMENSIONLESS
dim: (n_cand,)
output/results
dim: (n_cand,)-->
<!--output/results
the n_cand can be 1 in which case all quantities below are scalar-->
<field name="charge_state_vector" type="NX_INT" units="NX_UNITLESS">
<field name="charge_state" type="NX_INT" units="NX_UNITLESS">
<doc>
Signed charge, i.e. integer multiple of the elementary charge.
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="isotope_matrix" type="NX_UINT" units="NX_UNITLESS">
<field name="nuclide_hash" type="NX_UINT" units="NX_UNITLESS">
<doc>
List of nuclids building each candidate.
Each list is sorted in descending order.
Unused values up to n_ivec_max are nullified.
Table of nuclide instances of which each candidate is composed.
Each row vector is sorted in descending order. Unused values are nullified.
</doc>
<dimensions rank="2">
<dim index="1" value="n_cand"/>
<dim index="2" value="n_ivec_max"/>
</dimensions>
</field>
<field name="mass_vector" type="NX_FLOAT" units="NX_MASS">
<field name="mass" type="NX_FLOAT" units="NX_MASS">
<doc>
Accumulated mass of the nuclids in each candidate.
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_vector" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<field name="natural_abundance_product" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<doc>
The product of the natural abundances of the nuclids for each candidate.
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="min_half_life_vector" type="NX_FLOAT" units="NX_TIME">
<field name="shortest_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
For each candidate the half life of the nuclid with the shortest half life.
For each candidate the half life of that nuclide which has the shortest half
life.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
Expand Down
Loading