join grains that meet the specified boundary, label or orientation criteria.

Syntax

merged = merge(grains, pairs)

Description

For an MTEX object, merge(x, …) calls x.merge(…). Additional positional and keyword arguments are passed to that method unchanged. Its documentation specifies the accepted inputs, units, symmetry handling and optional outputs. Consult the corresponding method for the behaviour of a particular object type.

Example

Join one neighbouring pair of reconstructed Forsterite grains and inspect the parent id mapping. The small sample is downloaded and cached on first use.

import numpy as np
import matplotlib.pyplot as plt
from mtex import mtexdata, calcGrains, degree, plot, hold

ebsd = mtexdata('small', verbose=False)['Forsterite']
grains = calcGrains(ebsd, angle=10*degree, minPixel=5)
pair = grains.neighbors()[:1]
parent = grains.merge(pair, testRun=True)
merged = grains.merge(pair)
print('Merged grain ids:', pair.tolist())
print('Grain count before and after:', grains.size, merged.size)
print('Preview agrees with parentId:', np.array_equal(parent, grains.parentId))
print('Total pixel count preserved:', int(grains.numPixel.sum()) == int(merged.numPixel.sum()))
plot(grains.boundary, lineColor='lightgray', lineWidth=3)
hold(True)
plot(merged.boundary, lineColor='black', lineWidth=1)
hold(False)
plt.show()

The pair is chosen only to demonstrate the operation; an analysis should select boundaries using a physical criterion. Grey traces show the original network and black the merged outlines. parentId is stored on the original grains. Update any pixel-to-parent mapping explicitly before using the merged grains with EBSD measurements; merge does not rewrite ebsd.grainId.

Merged grain ids: [[1, 2]]
Grain count before and after: 15 14
Preview agrees with parentId: True
Total pixel count preserved: True

Example output for grain2d.merge

Signature

merge(x, *args, **kwargs)

Methods it calls

grain2d the grains joined into one along given boundaries, by pairs of ids, by a label per grain, below a misorientation angle, or every inclusion into the grain around it

Used on

CSLBoundaries, GrainMerge

source

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/merge_py.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.