Skip to content

orix 0.14.0

Choose a tag to compare

@github-actions github-actions released this 09 Dec 19:45
· 16 commits to main since this release
34e4731

orix 0.14.0 is a minor release of orix, an open-source Python library for handling orientations, rotations and crystal symmetry.

See below, the changelog or the GitHub changelog for all updates from the previous release.

Added

  • A customizable Wulff net can be added to a stereographic plot using orix.plot.StereographicPlot.wulff_net.
  • Conversion of orix.quaternion.Orientation, orix.quaternion.Misorientation, orix.quaternion.Rotation, and orix.quaternion.Quaternion to scipy.spatial.transform.Rotation via orix.quaternion.Quaternion.to_scipy_rotation.
  • Allow controlling whether to keep zero-vectors in orix.vector.Vector3d.unique with a new ignore_zero parameter. Previous behavior, to discard them, is still default.
  • If a orix.crystal_map.Phase, orix.crystal_map.PhaseList, or a orix.crystal_map.CrystalMap is passed to their own constructors, a copy is returned.
  • Added orix.crystal_map.Phase.expand_asymmetric_unit to add all symmetrically equivalent atoms to the structure in a new phase.
  • Element-wise indexing into orix.vector.Vector3d and subclasses, such as orix.vector.Miller.
  • Explicit support for Python 3.13.
  • Dependency on lazy-loader.
  • Function orix.plot.register_projections to register all our custom projections for use in Matplotlib. An example of a custom projection is the orix.plot.StereographicPlot. This function replaces the previous behavior of relying on a side-effect of importing the orix.plot module, which also registered the projections.
  • Method from_path_ends() to return quaternions, rotations, orientations, or misorientations along the shortest path between two or more points.

Changed

  • The *.ang file reader accepts a boolean parameter autogen_names via orix.io.load that allows rewriting phase names in the returned crystal map based on elements and point groups, as opposed to automatically overwriting names.
  • Generation of random orix.vector.Vector3d and orix.quaternion.Quaternion (and its subclasses) via random() now uses a Gaussian method as opposed to rejection-based sampling. This is faster and uses less memory.
  • Functions and classes are now loaded lazily with lazy-loader.
  • matplotlib-scalebar is now an optional dependency.
  • Passing a projection to Orientation.scatter() with a position argument now allows subplots in the figure to have different projections (Matplotlib's own or our custom ones).

Deprecated

  • Method orix.quaternion.Misorientation.map_into_symmetry_reduced_zone for (mis)orientations have been deprecated in favor of orix.quaternion.Misorientation.reduce and will be removed in version 0.15.0.

Fixed

  • orix.plot.IPFColorKey labels for point groups -3 and 6/m are now correct.
  • Multicolor stereographic scatter plots now correctly cast RGB and RGBA color arrays
  • Coloring of vectors in orix.plot.StereographicPlot.scatter and the equivalent vector method now correctly maps colors from RGB(A) arrays.
  • Randomly sampled quaternions, rotations, and (mis)orientations have positive angle (a) components.
  • The symmetry operations of the orthorhombic point group mm2 (C2v) are now in line with the International Tables for Crystallography, with the 2-fold axis about z, not x, as before.