3.3.3.14. NXapm_composition_space_results

Status:

application definition (contribution), extends NXobject

Description:

Results of a run with Alaukik Saxena's composition space tool. ...

Results of a run with Alaukik Saxena’s composition space tool.

This is an initial draft application definition for the common NFDI-MatWerk, FAIRmat infrastructure use case IUC09 how to improve the organization and results storage of the composition space tool and make these data at the same time directly understandable for NOMAD.

This draft does no contain yet the annotations for how to also store in the HDF5 file a default visualization whereby the composition grid could directly be explored using H5Web. I am happy to add this ones the data have been mapped on this schema, i.e. more discussion needed.

Also iso-surfaces can be described, for paraprobe, this is a solved problem, check the respective group in the NXapm_paraprobe_results_nanochem data schema/application definition.

Symbols:

The symbols used in the schema to specify e.g. dimensions of arrays.

n_voxel: Number of voxel of discretized domain for analyzed part of the dataset.

d: The dimensionality of the grid.

c: The cardinality or total number of cells/grid points.

n_clst_dict: Number of terms in the composition clustering dictionary

n_spat_dict: Number of terms in the position clustering dictionary

Groups cited:

NXapm_input_ranging, NXapm_input_reconstruction, NXcg_grid, NXcoordinate_system_set, NXcs_computer, NXcs_cpu, NXcs_gpu, NXcs_io_obj, NXcs_io_sys, NXcs_mm_sys, NXcs_profiling_event, NXcs_profiling, NXentry, NXfabrication, NXion, NXprocess, NXprogram, NXtransformations, NXuser

Structure:

ENTRY: (required) NXentry

@version: (required) NX_CHAR

Version specifier of this application definition.

definition: (required) NX_CHAR

Official NeXus NXDL schema with which this file was written. ...

Official NeXus NXDL schema with which this file was written.

Obligatory value: NXapm_composition_space_results

job_pyiron_identifier: (recommended) NX_CHAR

TBD, maybe how to link between pyiron state tracking and app state tracking

description: (optional) NX_CHAR

Disencouraged place for free-text for e.g. comments.

start_time: (required) NX_DATE_TIME

ISO 8601 formatted time code with local time zone offset to UTC ...

ISO 8601 formatted time code with local time zone offset to UTC information included when the analysis behind this results file was started, i.e. when composition space tool was started as a process.

end_time: (required) NX_DATE_TIME

ISO 8601 formatted time code with local time zone offset to UTC ...

ISO 8601 formatted time code with local time zone offset to UTC information included when the analysis behind this results file were completed and composition space tool exited as a process.

config_filename: (required) NX_CHAR

The path and name of the config file for this analysis. ...

The path and name of the config file for this analysis. TBD, this can be e.g. Alaukik’s YAML file for composition space.

@version: (required) NX_CHAR

At least SHA256 strong hash of the specific config_file for ...

At least SHA256 strong hash of the specific config_file for tracking provenance.

results_path: (optional) NX_CHAR

Path to the directory where the tool should store NeXus/HDF5 results ...

Path to the directory where the tool should store NeXus/HDF5 results of this analysis. If not specified results will be stored in the current working directory.

status: (required) NX_CHAR

A statement whether the executable managed to process the analysis ...

A statement whether the executable managed to process the analysis or failed prematurely.

This status is written to the results file after the end_time at which point the executable must not compute any analysis. Only when this status message is present and shows success, the user should consider the results. In all other cases it might be that the executable has terminated prematurely or another error occurred.

Any of these values: success | failure

PROGRAM: (required) NXprogram

program: (required) NX_CHAR

@version: (required) NX_CHAR

dataset: (required) NXapm_input_reconstruction

filename: (required) NX_CHAR

The path and name of the file (technology partner or community format) ...

The path and name of the file (technology partner or community format) from which reconstructed ion positions were loaded.

@version: (required) NX_CHAR

iontypes: (required) NXapm_input_ranging

filename: (required) NX_CHAR

The path and name of the file (technology partner or community format ...

The path and name of the file (technology partner or community format from which ranging definitions, i.e. how to map mass-to- charge-state ratios on iontypes were loaded.

@version: (required) NX_CHAR

USER: (recommended) NXuser

If used, contact information and eventually details ...

If used, contact information and eventually details of at least the person who performed this analysis.

name: (required) NX_CHAR

affiliation: (recommended) NX_CHAR

address: (optional) NX_CHAR

email: (recommended) NX_CHAR

orcid: (recommended) NX_CHAR

orcid_platform: (recommended) NX_CHAR

telephone_number: (optional) NX_CHAR

role: (recommended) NX_CHAR

social_media_name: (optional) NX_CHAR

social_media_platform: (optional) NX_CHAR

COORDINATE_SYSTEM_SET: (optional) NXcoordinate_system_set

Details about the coordinate system conventions used.

TRANSFORMATIONS: (required) NXtransformations

The individual coordinate systems which should be used. ...

The individual coordinate systems which should be used. Some suggestions follow, e.g. that field names should be prefixed with the following controlled terms indicating which individual coordinate system is described:

  • world

  • composition_space

  • lab

  • specimen

  • laser

  • leap

  • detector

  • recon

voxelization: (required) NXprocess

sequence_index: (required) NX_POSINT

Obligatory value: 1

CG_GRID: (required) NXcg_grid

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

Any of these values: 1 | 2 | 3

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

origin: (required) NX_NUMBER (Rank: 1, Dimensions: [d]) {units=NX_LENGTH}

symmetry: (required) NX_CHAR

Obligatory value: cubic

cell_dimensions: (required) NX_NUMBER (Rank: 1, Dimensions: [d]) {units=NX_LENGTH}

extent: (required) NX_POSINT (Rank: 1, Dimensions: [d]) {units=NX_UNITLESS}

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

position: (required) NX_NUMBER (Rank: 2, Dimensions: [c, d]) {units=NX_LENGTH}

Position of each cell in Euclidean space.

coordinate: (optional) NX_INT (Rank: 2, Dimensions: [c, d]) {units=NX_DIMENSIONLESS}

voxel_identifier: (required) NX_UINT (Rank: 1, Dimensions: [n_ions]) {units=NX_UNITLESS}

For each ion, the identifier of the voxel in which the ion is located.

TRANSFORMATIONS: (recommended) NXtransformations

Reference to or definition of a coordinate system with ...

Reference to or definition of a coordinate system with which the positions and directions are interpretable.

ION: (optional) NXion

name: (required) NX_CHAR

composition: (required) NX_FLOAT (Rank: 1, Dimensions: [n_voxel])

clustering_composition_space: (required) NXprocess

In Alaukik’s tool the GMM step.

sequence_index: (required) NX_POSINT

Obligatory value: 2

cluster_dict_keyword: (required) NX_CHAR (Rank: 1, Dimensions: [n_clst_dict])

The keywords of the dictionary of distinguished compositionally- ...

The keywords of the dictionary of distinguished compositionally- defined cluster, e.g. the phases. Examples for keywords could be phase1, phase2, and so one and so forth.

cluster_dict_value: (required) NX_UINT (Rank: 1, Dimensions: [n_clst_dict]) {units=NX_UNITLESS}

Resolves for each keyword in cluster_dict which integer is used to ...

Resolves for each keyword in cluster_dict which integer is used to label something that it belongs or is assumed to represent this cluster.

cluster_identifier: (required) NX_UINT (Rank: 1, Dimensions: [n_voxel]) {units=NX_UNITLESS}

For example if the voxel grid is used to report that there ...

For example if the voxel grid is used to report that there are voxels which are assumed to represent volume of either phase1 or phase2, the cluster_dict_keyword would be a list with two names phase1 and phase2, respectively. The cluster_dict_value would be a list of e.g. integers 1 and 2. These could be used to build an array with as many entries as there are voxel and store in this array the respective value to encode which phase is assumed for each voxel.

clustering_real_space: (required) NXprocess

In Alaukik’s tool the DBScan step after the GMM step.

sequence_index: (required) NX_POSINT

Obligatory value: 3

cluster_dict_keyword: (required) NX_CHAR (Rank: 1, Dimensions: [n_spat_dict])

The keywords of the dictionary of distinguished spatially-contiguous ...

The keywords of the dictionary of distinguished spatially-contiguous clusters. Examples for keywords could be precipitate1, precipitate2, and so one and so forth.

cluster_dict_value: (required) NX_UINT (Rank: 1, Dimensions: [n_spat_dict]) {units=NX_UNITLESS}

Resolves for each keyword in cluster_dict which integer is used to ...

Resolves for each keyword in cluster_dict which integer is used to label something that it belongs or is assumed to represent this cluster.

cluster_identifier: (required) NX_UINT (Rank: 1, Dimensions: [n_voxel]) {units=NX_UNITLESS}

For example if the voxel grid is used to report that there ...

For example if the voxel grid is used to report that there are voxels which are assumed to represent volume of certain precipitates, say we found ten precipitates and consider the rest as matrix. We could make a list of say matrix, precipitate1, precipitate2, …, precipitate10. With cluster_dict_value then running from 0 to 10, i.e. matrix is flagged special as 0 and the remaining particles are indexed conveniently as 1, 2, …, 10 like end users expect.

performance: (required) NXcs_profiling

current_working_directory: (required) NX_CHAR

command_line_call: (optional) NX_CHAR

start_time: (recommended) NX_DATE_TIME

end_time: (recommended) NX_DATE_TIME

total_elapsed_time: (required) NX_NUMBER

number_of_processes: (required) NX_POSINT

number_of_threads: (required) NX_POSINT

number_of_gpus: (required) NX_POSINT

CS_COMPUTER: (recommended) NXcs_computer

name: (recommended) NX_CHAR

operating_system: (required) NX_CHAR

@version: (required) NX_CHAR

uuid: (optional) NX_CHAR

CS_CPU: (optional) NXcs_cpu

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_GPU: (optional) NXcs_gpu

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_MM_SYS: (optional) NXcs_mm_sys

total_physical_memory: (required) NX_NUMBER

CS_IO_SYS: (optional) NXcs_io_sys

CS_IO_OBJ: (required) NXcs_io_obj

technology: (required) NX_CHAR

max_physical_capacity: (required) NX_NUMBER

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_PROFILING_EVENT: (required) NXcs_profiling_event

start_time: (optional) NX_DATE_TIME

end_time: (optional) NX_DATE_TIME

description: (required) NX_CHAR

elapsed_time: (required) NX_NUMBER

number_of_processes: (required) NX_POSINT

Specify if it was different from the number_of_processes ...

Specify if it was different from the number_of_processes in the NXcs_profiling super class.

number_of_threads: (required) NX_POSINT

Specify if it was different from the number_of_threads ...

Specify if it was different from the number_of_threads in the NXcs_profiling super class.

number_of_gpus: (required) NX_POSINT

Specify if it was different from the number_of_threads ...

Specify if it was different from the number_of_threads in the NXcs_profiling super class.

max_virtual_memory_snapshot: (recommended) NX_NUMBER

max_resident_memory_snapshot: (recommended) NX_NUMBER

Hypertext Anchors

List of hypertext anchors for all groups, fields, attributes, and links defined in this class.

NXDL Source:

https://github.com/nexusformat/definitions/blob/main/contributed_definitions/NXapm_composition_space_results.nxdl.xml