orix 0.14.0
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, andorix.quaternion.Quaterniontoscipy.spatial.transform.Rotationviaorix.quaternion.Quaternion.to_scipy_rotation. - Allow controlling whether to keep zero-vectors in
orix.vector.Vector3d.uniquewith a newignore_zeroparameter. Previous behavior, to discard them, is still default. - If a
orix.crystal_map.Phase,orix.crystal_map.PhaseList, or aorix.crystal_map.CrystalMapis passed to their own constructors, a copy is returned. - Added
orix.crystal_map.Phase.expand_asymmetric_unitto add all symmetrically equivalent atoms to the structure in a new phase. - Element-wise indexing into
orix.vector.Vector3dand subclasses, such asorix.vector.Miller. - Explicit support for Python 3.13.
- Dependency on lazy-loader.
- Function
orix.plot.register_projectionsto register all our custom projections for use in Matplotlib. An example of a custom projection is theorix.plot.StereographicPlot. This function replaces the previous behavior of relying on a side-effect of importing theorix.plotmodule, 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_namesviaorix.io.loadthat 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.Vector3dandorix.quaternion.Quaternion(and its subclasses) viarandom()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_zonefor (mis)orientations have been deprecated in favor oforix.quaternion.Misorientation.reduceand will be removed in version 0.15.0.
Fixed
orix.plot.IPFColorKeylabels 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.scatterand 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.