This PR adds readers for EMsoft's ECP and TKD master patterns. The former returns a new ECPMasterPattern signal, which is similar to EBSDMasterPattern without get_patterns(), while the latter returns a EBSDMasterPattern.
In the process of generalizing the master pattern class, I reimplemented the private CommonImage class in KikuchipySignal2D and LazyKikuchipySignal2D . The new class handles custom properties (not in HyperSpy), like EBSD.static_background() and EBSDMasterPattern.phase, and wraps calls to methods as_lazy(), change_dtype(), compute(), squeeze() and deepcopy() so that these properties carry over to or are removed in new signals as appropriate. All custom properties are also carried over when switching between ECPMasterPattern and EBSDMasterPattern using set_signal_type().
Finally, logging is added via kikuchipy.set_log_level() (same as in HyperSpy), since I needed this to debug the wrapped Signal2D methods mentioned above.
Description of the change
This PR adds readers for EMsoft's ECP and TKD master patterns. The former returns a new
ECPMasterPattern
signal, which is similar toEBSDMasterPattern
withoutget_patterns()
, while the latter returns aEBSDMasterPattern
.In the process of generalizing the master pattern class, I reimplemented the private
CommonImage
class inKikuchipySignal2D
andLazyKikuchipySignal2D
. The new class handles custom properties (not in HyperSpy), likeEBSD.static_background()
andEBSDMasterPattern.phase
, and wraps calls to methodsas_lazy()
,change_dtype()
,compute()
,squeeze()
anddeepcopy()
so that these properties carry over to or are removed in new signals as appropriate. All custom properties are also carried over when switching betweenECPMasterPattern
andEBSDMasterPattern
usingset_signal_type()
.Finally, logging is added via
kikuchipy.set_log_level()
(same as in HyperSpy), since I needed this to debug the wrapped Signal2D methods mentioned above.Replaces #476.
Closes #512, #386 and #16.
Progress of the PR
Minimal example of the bug fix or new feature
For reviewers
__init__.py
.CHANGELOG.rst
.release.py
and.all-contributorsrc
and the table is regenerated.