2.3.3.1.94. NXimage¶
Status:
base class, extends NXobject
Description:
Base class for reporting a set of images representing specializations of NXdata. ...
Base class for reporting a set of images representing specializations of NXdata.
The most commonly used scanning methods are supported. That is one-, two-, three-dimensional ROIs discretized using regular Euclidean tilings.
Colloquially, an image is understood as a discretized representation of intensity distribution detected or simulated for some ROI. When discretized with regular Euclidean tilings, the terms pixel and voxel identify the smallest discretization unit. In this case, pixel and voxel are polygonal or polyhedral unit cells respectively of the underlying tiling of the ROI within the reference space. For all other tilings e.g. non-equispaced, the shape and size of pixel and voxel differs. Using the term image point is eventually more appropriate when working with such tilings.
Therefore, all docstrings in this base class refer to points. Points are considered exact synonyms for pixel and voxel, which are terms used for regular tilings.
Point coordinates identify the location of the barycenter.
For images in reciprocal space in practice, complex numbers are encoded via some formatted pair of real values. Typically, fast algorithms for computing Fourier transformations (FFT) are used to encode images in reciprocal (frequency) space. FFT libraries are used for implementing the key functionalities of these mathematical operations. Different libraries use different representations and encoding of the images. Details can be found in the respective sections of the typical FFT libraries documentations:
NFFT by the TU Chemnitz group for non-equispaced computations
Users are strongly advised to inspect carefully which specific conventions their library uses to enable storing and modifying the implementation of their code such that the serialized representations as they are detailed here for NeXus match.
It is often the case that several images are combined using processing. In this case, the number of images which are combined into collections is not necessarily the same for each collection. The NXimage base class addresses this logical distinction through the notation of indices_image and indices_group concepts. That is indices_image are always counting from offset in increments of one as each image is its own entity. By contrast, a group may contain no, or several images. Consequently, indices_group are not required to be contiguous.
Classically, images depict objects in real space. Such usage of NXimage essentially is equivalent to storing pictures. For this purpose the image_1d, image_2d, or image_3d NXdata instances respectively should be used such that all their axes axis_i, axis_j, axis_k are constrained to NeXus Unit Category NX_LENGTH.
Imaging modes in electron microscopy are typically more versatile, specifically for use cases in scanning transmission electron microscopy, so-called 4DSTEM. In this case, one two-dimensional diffraction image is taken for each point that gets scanned in real space. Consequently, image_3d and image_4d NXdata instances should be used for these cases with axis_k and axis_m respectively of NeXus Unit Category NX_LENGTH and axis_i and axis_j respectively of NeXus Unit Category NX_WAVENUMBER or NX_UNITLESS.
Symbols:
n_img: Number of images in the stack, for stacks the slowest dimension.
n_m: Number of image points along the slowest dimension.
n_k: Number of image points along the slow dimension (k equivalent to z).
n_j: Number of image points along the fast dimension (j equivalent to y).
n_i: Number of image points along the fastest dimension (i equivalent to x).
Structure:
PROCESS: (optional) NXprocess
Details how NXdata instance were processed from detector readings/raw data.
detector_identifier: (optional) NX_CHAR
Link or name of an :ref:`NXdetector` instance with which the data were ...
Link or name of an NXdetector instance with which the data were collected.
Resolvable data artifact (e.g. file) from which all values in the :ref:`NXda ...
Resolvable data artifact (e.g. file) from which all values in the NXdata instances in this NXimage were loaded during parsing.
Possibility to document from which specific other serialized resource as the source pieces of information were processed when using NeXus as a semantic file format to serialize that information differently.
The group in combination with an added field context therein adds context.
context: (optional) NX_CHAR
Reference to a location inside the artifact that points to the specific gr ...
Reference to a location inside the artifact that points to the specific group of values that were processed if the artifacts contains several groups of values and thus further resolving of ambiguities is required.
PROGRAM: (optional) NXprogram
Program used for processing.
One-dimensional image.
intensity: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 1, Dimensions: [n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Two-dimensional image.
intensity: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_j, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_j, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_j, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 2, Dimensions: [n_j, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
axis_j: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_j]) {units=NX_ANY}
Point coordinate along the fast dimension. ...
Point coordinate along the fast dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fast dimension.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Three-dimensional image.
intensity: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_k, n_j, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_k, n_j, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_k, n_j, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 3, Dimensions: [n_k, n_j, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
axis_k: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_k]) {units=NX_ANY}
Point coordinate along the slow dimension. ...
Point coordinate along the slow dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the slow dimension.
axis_j: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_j]) {units=NX_ANY}
Point coordinate along the fast dimension. ...
Point coordinate along the fast dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fast dimension.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Four-dimensional image.
intensity: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_m, n_k, n_j, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_m, n_k, n_j, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_m, n_k, n_j, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 4, Dimensions: [n_m, n_k, n_j, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
axis_m: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_m]) {units=NX_ANY}
Point coordinate along the slowest dimension. ...
Point coordinate along the slowest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the slowest dimension.
axis_k: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_k]) {units=NX_ANY}
Point coordinate along the slow dimension. ...
Point coordinate along the slow dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the slow dimension.
axis_j: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_j]) {units=NX_ANY}
Point coordinate along the fast dimension. ...
Point coordinate along the fast dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fast dimension.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Collection of one-dimensional images.
intensity: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_img, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_img, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 2, Dimensions: [n_img, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 2, Dimensions: [n_img, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
indices_group: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
indices_image: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Collection of two-dimensional images.
intensity: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_img, n_j, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_img, n_j, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 3, Dimensions: [n_img, n_j, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 3, Dimensions: [n_img, n_j, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
indices_group: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
indices_image: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
axis_j: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_j]) {units=NX_ANY}
Point coordinate along the fast dimension. ...
Point coordinate along the fast dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fast dimension.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Collection of three-dimensional images.
intensity: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_img, n_k, n_j, n_i]) {units=NX_UNITLESS}
Intensity for real-valued images as an alternative for real. ...
Intensity for real-valued images as an alternative for real. Magnitude of the image intensity for complex-valued data.
real: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_img, n_k, n_j, n_i]) {units=NX_UNITLESS}
Real part of the image intensity per point.
imag: (optional) NX_NUMBER (Rank: 4, Dimensions: [n_img, n_k, n_j, n_i]) {units=NX_UNITLESS}
Imaginary part of the image intensity per point.
complex: (optional) NX_COMPLEX (Rank: 4, Dimensions: [n_img, n_k, n_j, n_i]) {units=NX_UNITLESS}
Image intensity as a complex number as an alternative to real and ...
Image intensity as a complex number as an alternative to real and imag fields if values are stored as interleaved complex numbers.
indices_group: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
indices_image: (optional) NX_INT (Rank: 1, Dimensions: [n_img]) {units=NX_UNITLESS}
axis_k: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_k]) {units=NX_ANY}
Point coordinate along the slow dimension. ...
Point coordinate along the slow dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the slow dimension.
axis_j: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_j]) {units=NX_ANY}
Point coordinate along the fast dimension. ...
Point coordinate along the fast dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fast dimension.
axis_i: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_i]) {units=NX_ANY}
Point coordinate along the fastest dimension. ...
Point coordinate along the fastest dimension.
Different NeXus Unit Category are allowed:
NX_LENGTH for images slicing real space.
NX_WAVENUMBER or NX_UNITLESS respectively for images slicing reciprocal space.
@long_name: (optional) NX_CHAR
Point coordinate along the fastest dimension.
Hypertext Anchors¶
List of hypertext anchors for all groups, fields, attributes, and links defined in this class.