Skip to content

Releases: pyxem/orix

orix 0.13.2

05 Oct 10:05
dbb4c7e
Compare
Choose a tag to compare

orix 0.13.2 is a patch 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

  • Compatibility with NumPy v2.0.

orix 0.13.1

20 Sep 15:32
8f6cb1a
Compare
Choose a tag to compare

orix 0.13.1 is a patch 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

  • Support for Python 3.12.

Changed

  • numpy-quaternion is now an optional dependency and will not be installed with pip unless pip install orix[all] is used.

Removed

  • Support for Python 3.8 and 3.9.

Fixed

  • Phase.from_cif() still gives a valid phase even though the space group could not be read.

orix 0.13.0

03 Sep 18:38
aca9a84
Compare
Choose a tag to compare

orix 0.13.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

  • We can now read 2D crystal maps from Channel Text Files (CTFs) using io.load().

Changed

  • Phase names in crystal maps read from .ang files with io.load() now prefer to use the abbreviated "Formula" instead of "MaterialName" in the file header.

Removed

  • Removed deprecated from_neo_euler() method for Quaternion and its subclasses.
  • Removed deprecated argument convention in from_euler() and to_euler() methods for Quaternion and its subclasses. Use direction instead. Passing convention will now raise an error.

Deprecated

  • loadang() and loadctf() are deprecated and will be removed in the next minor release. Please use io.load() instead.

orix 0.12.1.post0

25 Apr 17:45
bc13474
Compare
Choose a tag to compare

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

This release is necessary to fix the formatting of two tutorial notebooks in the documentation. This also fixes the PDF documentation build.

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

orix 0.12.1

21 Apr 09:21
ae09ee1
Compare
Choose a tag to compare

orix 0.12.1 is a patch 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.

Fixed

  • ax2qu and Quaternion.from_axes_angles() would raise if the input arrays were broadcastable but the final dimension was 1. This has been fixed.
  • Phase.from_cif() now correctly adjusts atom positions when forcing

orix 0.12.0

12 Apr 17:16
df6b507
Compare
Choose a tag to compare

orix 0.12.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

  • Vector3d.from_path_ends() class method to get vectors between two vectors.
  • Convenience function plot.format_labels() to get nicely formatted vector labels to use when plotting vectors.
  • Two offsets in the stereographic coordinates (X, Y) can be given to StereographicPlot.text() to offset text coordinates.
  • Explicit support for Python 3.11.
  • Creating quaternions from neo-eulerian vectors via new class methods from_rodrigues() and from_homochoric(), replacing the now deprecated from_neo_euler(). from_rodrigues() accepts an angle parameter to allow passing Rodrigues-Frank vectors.
  • Creating neo-eulerian vectors from quaternions via new methods to_axes_angles(), to_rodrigues() and to_homochoric(). Rodrigues-Frank vectors can be returned from to_rodrigues() by passing frank=True.
  • inv() method for Quaternion, Rotation, Orientation, and Misorientation. For the three first, its behavior is identical to the inversion operator ~. For misorientations, it inverts the direction of the transformation. Convenient for chaining operations.
  • The random() methods of Orientation and Misorientation now accept symmetry. A random() method is also added to Vector3d and Miller, the latter accepting a phase.
  • Function orix.sampling.get_sample_reduced_fundamental() for sampling rotations that rotate the Z-vector (0, 0, 1) onto the fundamental sector of the Laue group of a given Symmetry.

Changed

  • The convention parameter in from_euler() and to_euler() will be removed in the next minor release, 0.13, instead of release 1.0 as previously stated.
  • Allow passing a tuple of integers to reshape() methods of 3D objects.
  • random() methods no longer accept a list as a valid shape: pass a tuple instead.
  • Increase minimal version of Matplotlib to >= 3.5.

Removed

  • Support for Python 3.7.

Deprecated

  • Creating quaternions from neo-eulerian vectors via from_neo_euler() is deprecated and will be removed in v0.13. Use the existing from_axes_angles() and the new from_rodrigues() and from_homochoric() instead.

Fixed

  • Transparency of polar stereographic grid lines can now be controlled by Matplotlib's grid.alpha, just like the azimuth grid lines.
  • Previously, Phase did not adjust atom positions when forcing Phase.structure.lattice.base to use the crystal axes alignment e1 || a, e3 || c*. This is now fixed.

orix 0.11.1

14 Mar 09:11
6028c89
Compare
Choose a tag to compare

orix 0.11.1 is a patch 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.

Fixed

  • Initialization of a crystal map with a phase list with fewer phases than in the phase ID array given returns a map with a new phase list with correct phase IDs.

orix 0.11.0

09 Feb 16:18
c7af446
Compare
Choose a tag to compare

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

This release removes the use of a third axis (z) in CrystalMap. It also offers the possibility of creating rotations by aligning sets of vectors, e.g. an orientation from sample and crystal vectors or a misorientation from vectors in two different crystals.

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

Added

  • Creation of one or more Quaternion (or instances of inheriting classes) from one or more SciPy Rotation.
  • Creation of one Quaternion or Rotation by aligning sets of vectors in two reference frames, one Orientation by aligning sets of sample vectors and crystal vectors, and one Misorientation by aligning two sets of crystal vectors in two different crystals.
  • row and col properties to CrystalMap giving the row and column coordinate of each map point given by CrystalMap.shape.
  • Rotation class methods from_neo_euler(), from_axes_angles(), from_euler(), from_matrix(), random() and identity() and methods to_euler() and to_matrix() are now available from the Quaternion class as well.
  • StereographicPlot.restrict_to_sector() allows two new parameters to control the amount of padding (in degrees in stereographic projection) and whether to show the sector edges. Keyword arguments can also be passed on to Matplotlib's PathPatch().
  • Option to pass degrees to the Quaternion methods from_axes_angles(), from_euler() and to_euler() by passing degrees=True.
  • Option to get degrees from all angle_with() and angle_with_outer() methods by passing degrees=True.
  • Option to pass degrees to the (Mis)Orientation method get_distance_matrix() by passing degrees=True.
  • Option to pass degrees to the Vector3d methods from_polar() and to_polar() by passing degrees=True.
  • Option to get spherical coordinates from InverseStereographicProjection.xy2spherical() in degrees or pass them as degrees to StereographicProjection methods spherical2xy() and spherical2xy_split() by passing degrees=True.

Changed

  • Bumped minimal version of diffpy.structure >= 3.0.2.
  • Only ASTAR .ang files return crystal maps with "nm" as scan unit.

Removed

  • Parameter z when creating a CrystalMap and the z and dz attributes of the class were deprecated in 0.10.1 and are now removed.
  • Passing shape or step_sizes with three values to create_coordinate_arrays() was depreacted in 0.10. and will now raise an error.
  • Parameter depth (and axes) in CrystalMapPlot.plot_map() was depreacted in 0.10.1 and will now raise an error if passed.
  • The z and dz datasets are not present in new orix HDF5 files. They are not read if present in older files.

Fixed

  • Reading of EDAX TSL .ang files with ten columns should now work.

orix 0.10.2

24 Oct 16:19
15ea242
Compare
Choose a tag to compare

orix 0.10.2 is a patch 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.

Fixed

  • Miller.symmetrise(unique=True) returns the correct number of symmetrically equivalent but unique vectors, by rounding to 10 instead of 12 decimals prior to finding the unique vectors with NumPy.

Changed

  • Unique rotations and vectors are now found by rounding to 10 instead of 12 decimals.

orix 0.10.1

03 Oct 11:34
14bc03b
Compare
Choose a tag to compare

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

This release includes some deprecations, but most importantly it fixes a bug when indexing or slicing into an already indexed/sliced CrystalMap.

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

Deprecated

  • Parameter z when creating a CrystalMap and the z and dz attributes of the class are deprecated and will be removed in 0.11.0. Support for 3D crystal maps is minimal and brittle, and it was therefore decided to remove it altogether.
  • Passing shape or step_sizes with three values to create_coordinate_arrays() is depreacted and will raise an error in 0.11.0. See the previous point for the reason.
  • Parameter depth in CrystalMapPlot.plot_map() is depreacted and will be removed in 0.11.0. See the top point for the reason.

Fixed

  • StereographicPlot.scatter() now accepts both c/color and s/sizes to set the color and sizes of scatter points, in line with matplotlib.axes.Axes.scatter().
  • Indexing/slicing into an already indexed/sliced CrystalMap now correctly returns the index/slice according to CrystalMap.shape and not the original shape of the un-sliced map.