get_patterns#

EBSDMasterPattern.get_patterns(rotations: Rotation, detector: EBSDDetector, energy: Union[None, int, float] = None, dtype_out: Union[str, dtype, type] = 'float32', compute: bool = False, show_progressbar: Optional[bool] = None, **kwargs) Union[EBSD, LazyEBSD][source]#

Return one or more EBSD patterns projected onto a detector from a master pattern in the square Lambert projection for rotation(s) relative to the EDAX TSL sample reference frame (RD, TD, ND) [Callahan and De Graef, 2013].

Parameters:
rotations

Crystal rotations to get patterns from. The shape of this instance, a maximum of two dimensions, determines the navigation shape of the output signal.

detector

EBSD detector describing the detector dimensions and the detector-sample geometry with a fixed projection center (PC) or varying PCs, one per rotation. If the detector has multiple PCs, its navigation_shape must be identical to the shape of the rotations, shape.

energy

Acceleration voltage, in kV, used to simulate the desired master pattern to create a dictionary from. If only a single energy is present in the signal, this will be used no matter its energy. If not given, the highest energy will be used.

dtype_out

Data type of the returned patterns, by default "float32".

compute

Whether to return a lazy result, by default False. For more information see compute().

show_progressbar

Whether to show a progressbar. If not given, the value of hyperspy.api.preferences.General.show_progressbar is used.

**kwargs

Keyword arguments passed to get_chunking() to control the number of chunks the dictionary creation and the output data array is split into. Only chunk_shape, chunk_bytes and dtype_out (to dtype) are passed on.

Returns:
out

Signal with navigation and signal shape equal to the rotation instance and detector shape, respectively.

Notes

If the master pattern phase has a non-centrosymmetric point group, both the upper and lower hemispheres must be provided. For more details regarding the reference frame visit the reference frame tutorial.

Examples

Get patterns for four identity rotations with varying projection centers (PCs), the upper two with PCx increasing towards the right, the lower two with increased PCz compared to the upper two

>>> import numpy as np
>>> from orix.quaternion import Rotation
>>> import hyperspy.api as hs
>>> import kikuchipy as kp
>>> mp = kp.data.nickel_ebsd_master_pattern_small(projection="lambert")
>>> det = kp.detectors.EBSDDetector(
...     shape=(60, 60),
...     pc=np.array([
...         [[0.4, 0.5, 0.4], [0.6, 0.5, 0.4]],
...         [[0.4, 0.5, 0.6], [0.6, 0.5, 0.6]],
...     ])
... )
>>> rot = Rotation.identity(det.navigation_shape)
>>> s = mp.get_patterns(rot, det, compute=True, show_progressbar=False)
>>> _ = hs.plot.plot_images(
...     s,
...     per_row=2,
...     cmap="inferno",
...     label=np.array_str(det.pc.reshape((-1, 3)))[1:-1].split("\n "),
...     axes_decor=None,
... )
../../_images/kikuchipy-signals-EBSDMasterPattern-get_patterns-1.png