Skip to content

Releases: pyxem/kikuchipy

kikuchipy 0.3.1

22 Jan 11:30
73237e6
Compare
Choose a tag to compare

kikuchipy 0.3.1 is a patch release of kikuchipy, an open-source Python library for processing and analysis of electron backscatter diffraction (EBSD) patterns.

The release ensures that Binder finds the GitHub repository and user guide Jupyter Notebooks, so that the latter can be run interactively in the browser.

See other changes in the 0.3.x minor release cycle in the changelog.

Contributors

  • Håkon Wiik Ånes

Fixed

  • Version link Binder uses to make the Jupyter Notebooks run in the browser. (#301)

kikuchipy 0.3.0

22 Jan 09:04
e56816a
Compare
Choose a tag to compare

kikuchipy 0.3.0 is a minor release of kikuchipy, an open-source Python library for processing and analysis of electron backscatter diffraction (EBSD) patterns.

Lots of new functionality is added! The most notable additions are generation of a dictionary of simulated EBSD patterns from a master pattern via a detector-sample geometrical model, subsequent crystal orientation determination via pattern matching of experimental patterns to this dictionary, geometrical EBSD simulations of band centeres and zone axes of cubic crystals to plot on top of experimental patterns, and calculation of an average dot product map for an informative spatial representation of an EBSD signal. The user guide is also updated with Jupyter notebooks explaining and showing most of the available functionality, which can be run in the browser via Binder or locally by downloading the notebooks. We would love for you to try them out via https://kikuchipy.org/en/stable!

All changes from the previous release are listed below in descending chronological order. The contributors are listed in alphabetical order.

Contributors

  • Håkon Wiik Ånes
  • Lars Andreas Hastad Lervik
  • Ole Natlandsmyr

Added

  • Calculation of an average dot product map, or just the dot product matrices. (#280)
  • A nice gallery to the documentation with links to each user guide page. (#285)
  • Support for writing/reading an EBSD signal with 1 or 0 navigation axes to/from a kikuchipy h5ebsd file. (#276)
  • Better control over dask array chunking when processing patterns. (#275)
  • User guide notebook showing basic pattern matching. (#263)
  • EBSD.detector property storing an EBSDDetector. (#262)
  • Link to Binder in README and in the notebooks for running them in the browser. (#257)
  • Creation of dictionary of dynamically simulated EBSD patterns from a master pattern in the square Lambert projection. (#239)
  • A data module with a small Nickel EBSD data set and master pattern, and a larger EBSD data set downloadable via the module. Two dependencies, pooch and tqdm, are added along with this module. (#236, #237, #243)
  • Pattern matching of EBSD patterns with a dictionary of pre-computed simulated patterns with known crystal orientations, and related useful tools (#231, #233, #234): (1) A framework for creation of similarity metrics used in pattern matching, (2) computation of an orientation similarity map from indexing results, and (3) creation of a multi phase crystal map from single phase maps from pattern matching.
  • EBSD.xmap property storing an orix CrystalMap. (#226)
  • Dependency on the diffsims package for handling of electron scattering and diffraction. (#220)
  • Square Lambert mapping, and its inverse, from points on the unit sphere to a 2D square grid, as implemented in Callahan and De Graef (2013). (#214)
  • Geometrical EBSD simulations, projecting a set of Kikuchi bands and zone axes onto a detector, which can be added to an EBSD signal as markers. (#204, #219, #232)
  • EBSD detector class to handle detector parameters, including detector pixels' gnomonic coordinates. EBSD reference frame documentation. (#204, #215)
  • Reader for EMsoft's simulated EBSD patterns returned by their EMEBSD.f90 program. (#202)

Changed

  • The feature maps notebook to include how to obtain an average dot product map and dot product matrices for an EBSD signal. (#280)
  • Averaging EBSD patterns with nearest neighbours now rescales to input data type range, thus loosing relative intensities, to avoid clipping intensities. (#280)
  • Dependency requirement of diffsims from >= 0.3 to >= 0.4. (#282)
  • Name of hemisphere axis in EBSDMasterPattern from "y" to "hemisphere". (#275)
  • Replace Travis CI with GitHub Actions. (#250)
  • The EBSDMasterPattern gets phase, hemisphere and projection properties. (#246)
  • EMsoft EBSD master pattern plugin can read a single energy pattern. Parameter energy_range changed to energy. (#240)
  • Migrate user guide from reST files to Jupyter Notebooks converted to HTML with the nbsphinx package. (#236, #237, #244, #245, #279, #245, #279, #281)
  • Move GitHub repository to the pyxem organization. Update relevant URLs. (#198)
  • Allow scikit-image >= 0.16. (#196)
  • Remove language_version in pre-commit config file. (#195)

Removed

  • The EBSDMasterPattern and EBSD metadata node Sample.Phases, to be replaced by class attributes. The set_phase_parameters() method is removed from both classes, and the set_simulation_parameters() is removed from the former class. (#246)

Fixed

  • IndexError in neighbour pattern averaging (#280)
  • Reading of square Lambert projections from EMsoft's master pattern file now sums contributions from asymmetric positions correctly. (#255)
  • NumPy array creation when calculating window pixel's distance to the origin is not ragged anymore. (#221)

kikuchipy 0.3.0rc1

21 Jan 18:16
7cbe632
Compare
Choose a tag to compare
kikuchipy 0.3.0rc1 Pre-release
Pre-release

This is the first release candidate for kikuchipy 0.3.0.

kikuchipy 0.2.2

24 May 20:11
1a1c484
Compare
Choose a tag to compare
kikuchipy 0.2.2 Pre-release
Pre-release

This is a patch release that fixes reading of EBSD data sets from h5ebsd files with arbitrary scan group names.

Contributors

  • Håkon Wiik Ånes

Fixed

  • Allow reading of EBSD patterns from h5ebsd files with arbitrary scan group names, not just "Scan 1", "Scan 2", etc., like was the case before. (#188)

kikuchipy 0.2.1

20 May 10:16
0aa4e00
Compare
Choose a tag to compare
kikuchipy 0.2.1 Pre-release
Pre-release

This is a patch release that enables installing kikuchipy 0.2 from Anaconda and not just PyPI.

Contributors

  • Håkon Wiik Ånes

Changed

  • Use numpy.fft instead of scipy.fft because HyperSpy requires scipy < 1.4 on conda-forge, while scipy.fft was introduced in scipy 1.4. (#180)

Fixed

  • With the change above, kikuchipy 0.2 should be installable from Anaconda and not just PyPI. (#180)

kikuchipy 0.2.0

19 May 15:37
290583d
Compare
Choose a tag to compare
kikuchipy 0.2.0 Pre-release
Pre-release

kikuchipy 0.2.0 is a minor release of kikuchipy, an open-source Python library for processing and analysis of electron backscatter diffraction patterns.

A significant amount of new functionality have been added in this release cycle, as summarized under "Added" below. The API has changed somewhat, see "Changed" below. Details of all development associated with this release are available here.

Contributors

  • Håkon Wiik Ånes
  • Tina Bergh

Added

  • Jupyter Notebooks with tutorials and example workflows available via https://github.com/kikuchipy/kikuchipy-demos.
  • Grey scale and RGB virtual backscatter electron (BSE) images can be easily generated with the VirtualBSEGenerator class. The generator return objects of the new signal class VirtualBSEImage, which inherit functionality from HyperSpy's Signal2D class. (#170)
  • EBSD master pattern class and reader of master patterns from EMsoft's EBSD master pattern file. (#159)
  • Python 3.8 support. (#157)
  • The public API has been restructured. The pattern processing used by the EBSD class is available in the kikuchipy.pattern subpackage, and filters/kernels used in frequency domain filtering and pattern averaging are available in the kikuchipy.filters subpackage. (#169)
  • Intensity normalization of scan or single patterns. (#157)
  • Fast Fourier Transform (FFT) filtering of scan or single patterns using SciPy's fft routines and Connelly Barnes' filterfft. (#157)
  • Numba dependency to improve pattern rescaling and normalization. (#157)
  • Computing of the dynamic background in the spatial or frequency domain for scan or single patterns. (#157)
  • Image quality (IQ) computation for scan or single patterns based on N. C. K. Lassen's definition. (#157)
  • Averaging of patterns with nearest neighbours with an arbitrary kernel, e.g. rectangular or Gaussian. (#134)
  • Window/kernel/filter/mask class to handle such things, e.g. for pattern averaging or filtering in the frequency or spatial domain. Available in the kikuchipy.filters subpackage. (#134, #157)

Changed

  • Renamed five EBSD methods: static_background_correction to remove_static_background, dynamic_background_correction to remove_dynamic_background, rescale_intensities to rescale_intensity, virtual_backscatter_electron_imaging to plot_virtual_bse_intensity, and get_virtual_image to get_virtual_bse_intensity. (#157, #170)
  • Renamed kikuchipy_metadata to ebsd_metadata. (#169)
  • Source code link in the documentation should point to proper GitHub line. This linkcode_resolve in the conf.py file is taken from SciPy. (#157)
  • Read the Docs CSS style. (#157)
  • New logo with a gradient from experimental to simulated pattern (with EMsoft), with a color gradient from the plasma color maps. (#157)
  • Dynamic background correction can be done faster due to Gaussian blurring in the frequency domain to get the dynamic background to remove. (#157)

Removed

  • Explicit dependency on scikit-learn (it is imported via HyperSpy). (#168)
  • Dependency on pyxem. Parts of their virtual imaging methods are adapted here---a big thank you to the pyxem/HyperSpy team! (#168)

Fixed

  • RtD builds documentation with Python 3.8 (fixed problem of missing .egg leading build to fail). (#158)

KikuchiPy 0.1.3

11 May 18:13
c5e6ffb
Compare
Choose a tag to compare
KikuchiPy 0.1.3 Pre-release
Pre-release

KikuchiPy is an open-source Python library for processing and analysis of
electron backscatter diffraction patterns: https://kikuchipy.readthedocs.io.

This is a patch release. It is anticipated to be the final release in the
0.1.x series.

Added

Fixed

  • Static and dynamic background corrections are done at float 32-bit precision,
    and not integer 16-bit.
  • Chunking of static background pattern.
  • Chunking of patterns in the h5ebsd reader.

KikuchiPy v0.1.2

09 Jan 11:07
738a693
Compare
Choose a tag to compare
KikuchiPy v0.1.2 Pre-release
Pre-release

0.1.2 (2020-01-09)

KikuchiPy is an open-source Python library for processing and analysis of
electron backscatter diffraction patterns: https://kikuchipy.readthedocs.io

This is a bug-fix release that ensures, unlike the previous bug-fix release,
that necessary files are downloaded when installing from PyPI.

KikuchiPy v0.1.1

04 Jan 23:08
afd66ef
Compare
Choose a tag to compare
KikuchiPy v0.1.1 Pre-release
Pre-release

0.1.1 (2020-01-04)

This is a bug fix release that ensures that necessary files are uploaded to
PyPI.

KikuchiPy v0.1.0

04 Jan 12:35
f65109f
Compare
Choose a tag to compare
KikuchiPy v0.1.0 Pre-release
Pre-release

0.1.0 (2020-01-04)

We're happy to announce the release of KikuchiPy v0.1.0!

KikuchiPy is an open-source Python library for processing and analysis of
electron backscatter diffraction (EBSD) patterns. The library builds upon the
tools for multi-dimensional data analysis provided by the HyperSpy library.

For more information, a user guide, and the full reference API documentation,
please visit: https://kikuchipy.readthedocs.io

This is the initial pre-release, where things start to get serious... seriously
fun!

Features

  • Load EBSD patterns and metadata from the NORDIF binary format (.dat), or
    Bruker Nano's or EDAX TSL's h5ebsd formats (.h5) into an EBSD object, e.g.
    s, based upon HyperSpy's Signal2D class, using s = kp.load(). This
    ensures easy access to patterns and metadata in the attributes s.data and
    s.metadata, respectively.

  • Save EBSD patterns to the NORDIF binary format (.dat) and our own h5ebsd
    format (.h5), using s.save(). Both formats are readable by EMsoft's NORDIF
    and EMEBSD readers, respectively.

  • All functionality in KikuchiPy can be performed both directly and lazily
    (except some multivariate analysis algorithms). The latter means that all
    operations on a scan, including plotting, can be done by loading only
    necessary parts of the scan into memory at a time. Ultimately, this lets us
    operate on scans larger than memory using all of our cores.

  • Visualize patterns easily with HyperSpy's powerful and versatile s.plot().
    Any image of the same navigation size, e.g. a virtual backscatter electron
    image, quality map, phase map, or orientation map, can be used to navigate in.
    Multiple scans of the same size, e.g. a scan of experimental patterns and the
    best matching simulated patterns to that scan, can be plotted simultaneously
    with HyperSpy's plot_signals().

  • Virtual backscatter electron (VBSE) imaging is easily performed with
    s.virtual_backscatter_electron_imaging() based upon similar functionality
    in pyXem. Arbitrary regions of interests can be used, and the corresponding
    VBSE image can be inspected interactively. Finally, the VBSE image can be
    obtained in a new EBSD object with vbse = s.get_virtual_image(),
    before writing the data to an image file in your desired format with
    matplotlib's imsave('filename.png', vbse.data).

  • Change scan and pattern size, e.g. by cropping on the detector or extracting
    a region of interest, by using s.isig or s.inav, respectively.
    Patterns can be binned (upscaled or downscaled) using s.rebin. These
    methods are provided by HyperSpy.

  • Perform static and dynamic background correction by subtraction or division
    with s.static_background_correction() and
    s.dynamic_background_correction(). For the former connection, relative
    intensities between patterns can be kept if desired.

  • Perform adaptive histogram equalization by setting an appropriate contextual
    region (kernel size) with s.adaptive_histogram_equalization().

  • Rescale pattern intensities to desired data type and range using
    s.rescale_intensities().

  • Multivariate statistical analysis, like principal component analysis and many
    other decomposition algorithms, can be easily performed with
    s.decomposition(), provided by HyperSpy.

  • Since the EBSD class is based upon HyperSpy's Signal2D class, which
    itself is based upon their BaseSignal class, all functionality available
    to Signal2D is also available to the EBSD class. See HyperSpy's user
    guide (http://hyperspy.org/hyperspy-doc/current/user_guide/tools.html) for
    details.

Contributors to this release (alphabetical by first name)

  • Håkon Wiik Ånes
  • Tina Bergh