10.1. Align Sections (Misorientation)
Group (Subgroup)
Reconstruction (Alignment)
Description
This Filter attempts to align consecutive ‘sections’ perpendicular to the Z-direction of the sample by determining the position that results in the minimum amount of misorientation between Cells directly above-below each other. The algorithm of this Filter is as follows:
Calculate the misorientation between each Cell in a section and the Cell directly above it in the next section
Count the number of Cell pairs that have a misorientation above the user defined tolerance and store that as the misalignment value for that position
Repeat steps 1 and 2 for each position when shifting the second slice (relative to the first) from three (3) Cells to the left to three (3) Cells to the right, as well as from three (3) Cells up to three (3) Cells down. Note that this creates a 7x7 grid
Determine the position in the 7x7 grid that has the lowest misalignment value. (It will be the position with the fewest different Cell pairs)
Repeat steps 1-4 with the center of each (new) 7x7 grid at the best position from the last 7x7 grid until the best position in the current/new 7x7 grid is the same as the last 7x7 grid
Repeat steps 1-5 for each pair of neighboring sections
Note that this is similar to a downhill simplex and can get caught in a local minimum!
If the user elects to use a mask array, the Cells flagged as false in the mask array will not be considered during the alignment process.
The user can also decide to remove a background shift present in the sample. The process for this is to fit a line to the X and Y shifts along the Z-direction of the sample. The individual shifts are then modified to make the slope of the fit line be 0. Effectively, this process is trying to keep the top and bottom section of the sample fixed. Some combinations of sample geometry and internal features can result in this algorithm introducing a ‘shear’ in the sample and the Linear Background Subtraction will attempt to correct for this.
Optional Output Data
The user can optionally have the shifts that are generated by the filter stored in various DataArrays in a new Attribute Matrix.
The structure for which looks like this
|-- Image Geometry
|-- Alignment Shifts Data
|-- Slices
|-- Relative Shifts
|-- Cumulative Shifts
In this new structure, what follows is what the created structures represent:
Alignment Shifts Data (Attribute Matrix) - The tuple size here is defined by the number of slices [ie the Z Dimension of the Image Geometry]
Slices (DataArray | 2 component) - The slice indices (stored as uint32s)
Relative Shifts (DataArray | 2 component) - The slices shift relative to previous shift (stored as int64s) [previously known as
newxshift
andnewyshift
]Cumulative Shifts (DataArray | 2 component) - The slice’s accumulated shift (stored as int64s)
In previous versions a file would have been produced instead. If you wish to recreate this, you can write the Attribute Matrix as a CSV/Text file.
Input Parameter(s)
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
---|---|---|---|
Misorientation Tolerance (Degrees) |
Scalar Value |
Float32 |
Tolerance used to decide if Cells above/below one another should be considered to be the same. The value selected should be similar to the tolerance one would use to define Features (i.e., 2-10 degrees) |
Optional Data Mask
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
---|---|---|---|
Use Mask Array |
Bool |
Whether to remove some Cells from consideration in the alignment process |
|
Cell Mask Array |
Array Selection |
Allowed Types: uint8, boolean Comp. Shape: 1 |
Path to the DataArray Mask |
Input Cell Data
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
---|---|---|---|
Selected Image Geometry |
Geometry Selection |
Image |
The target geometry on which to perform the alignment |
Cell Quaternions |
Array Selection |
Allowed Types: float32 Comp. Shape: 4 |
Specifies the orientation of the Cell in quaternion representation |
Cell Phases |
Array Selection |
Allowed Types: int32 Comp. Shape: 1 |
Specifies to which Ensemble each cell belongs |
Input Ensemble Data
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
---|---|---|---|
Crystal Structures |
Array Selection |
Allowed Types: uint32 Comp. Shape: 1 |
Enumeration representing the crystal structure for each Ensemble |
Optional Alignment Output
Parameter Name |
Parameter Type |
Parameter Notes |
Description |
---|---|---|---|
Store Alignment Shifts |
Bool |
Whether to store the shifts applied to each section to a collection of Arrays in a new Attribute Matrix |
|
Alignment Attribute Matrix Name |
DataObjectName |
The output attribute matrix where the shifts applied to the section to be stored as DataArrays. |
|
Alignment Slices Data Array Name |
DataObjectName |
The output array name where the slice information related to shifts will be stored. |
|
Alignment Relative Shifts Data Array Name |
DataObjectName |
The output array name where the new shifts relative to previous slice information will be stored. |
|
Alignment Cumulative Shifts Data Array Name |
DataObjectName |
The output array name where the accumulated shift information will be stored. |
Example Pipelines
(10) SmallIN100 Full Reconstruction
(03) SmallIN100 Alignment
License & Copyright
Please see the description file distributed with this Plugin
DREAM3D-NX Help
If you need help, need to file a bug report or want to request a new feature, please head over to the DREAM3DNX-Issues GitHub site where the community of DREAM3D-NX users can help answer your questions.