cleanUpPseudoSym edit page

cleanUpPseudoSym Corrects pseudo-symmetry artifacts in a single phase using tortuosity.

A pseudo symmetry is a rotation which is not a symmetry of the crystal but maps the diffraction pattern almost onto itself, such that the indexing picks between the two solutions at random. The resulting boundaries follow the indexing noise and are therefore much more tortuous, i.e. much longer relative to the distance between their end points, than real grain boundaries. This command merges all grains separated by such a boundary and rotates the affected pixels by the pseudo symmetry.

Since the phase to be corrected is determined by the symmetry of mori, only one phase is treated per call. To clean up pseudo-symmetries in multiple phases, run this function for each phase individually. Grain boundaries should not have been smoothed before, as this destroys exactly the tortuosity the detection is based on.

Syntax

[ebsd, grainsM, numChanged] = cleanUpPseudoSym(ebsd, grains, mori)
[ebsd, grainsM, numChanged] = cleanUpPseudoSym(ebsd, grains, mori, 'threshold', 1.5)

It is enough to pass one representative of each pseudo symmetry. A measurement is a fixed representative of an orientation, so the alternative indexing solution is ori * s * mori for some symmetry element s and not simply ori * mori. All these operators are generated internally, which is why passing a pseudo symmetry or its inverse or any symmetrically equivalent misorientation gives the same result.

Input

ebsd EBSD object, with grainId set by EBSD.calcGrains
grains grain2d object
mori orientation (array of pseudo-symmetries, same CS and SS)

Output

ebsd updated EBSD object
grainsM merged grain2d object
numChanged number of pixels that changed orientation

Options

'delta' Tolerance for boundary misorientation angle to match pseudo-symmetry (default: 2*degree)
'threshold' Minimum tortuosity (boundary length / straight distance) to trigger merge (default: 1.5)

Example

mtexdata forsterite
ebsd = ebsd('indexed');
[grains,ebsd] = calcGrains(ebsd,'angle',10*degree,'minPixel',5);
ebsd = EBSDsquare (y↓→x, row↓→col)
 
 Phase  Orientations     Mineral         Color  Symmetry  Crystal reference frame
     0   58485 (24%)  notIndexed          none                                   
     1  152345 (62%)  Forsterite  LightSkyBlue       mmm                         
     2   26058 (11%)   Enstatite  DarkSeaGreen       mmm                         
     3   9064 (3.7%)    Diopside     Goldenrod     12/m1        X||a*, Y||b, Z||c
 
 Properties: bands, bc, bs, error, mad, oldId
 Scan unit : um
 X x Y x Z : [0 → 36550] x [0 → 16750] x [0 → 0]
 Normal vector: (0,0,1)
 Square grid  :336 x 732

the pseudo hexagonal oxygen sublattice of olivine

psSym = orientation.byAxisAngle(Miller(1,0,0,ebsd('Fo').CS,'uvw'),60*degree);
[ebsd,grains] = cleanUpPseudoSym(ebsd,grains,psSym)
ebsd = EBSD (y↓→x)
 
 Phase  Orientations     Mineral         Color  Symmetry  Crystal reference frame
     0    940 (0.5%)  notIndexed          none                                   
     1  152498 (81%)  Forsterite  LightSkyBlue       mmm                         
     2   26296 (14%)   Enstatite  DarkSeaGreen       mmm                         
     3   7733 (4.1%)    Diopside     Goldenrod     12/m1        X||a*, Y||b, Z||c
 
 Properties: bands, bc, bs, error, mad, oldId, grainId
 Scan unit : um
 X x Y x Z : [0 → 36550] x [0 → 16750] x [0 → 0]
 Normal vector: (0,0,1)
 
 
grains = grain2d (y↓→x)
 
 Phase  Grains  Pixels     Mineral  Symmetry         Color
     0      16      23  notIndexed                    none
     1     480  151493  Forsterite       mmm  LightSkyBlue
     2     208   25667   Enstatite       mmm  DarkSeaGreen
     3     167    7420    Diopside     12/m1     Goldenrod
 
 boundary segments: 35324 (1.6e+06 µm)
 inner boundary segments: 190 (8809 µm)
 triple points: 1473
 
 Properties: meanRotation, GOS

See also

EBSDPseudoSymmetry grain2d.merge

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/cleanUpPseudoSym.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.