Releases: pyxem/orix
orix 0.13.2
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
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
unlesspip 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
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 forQuaternion
and its subclasses. - Removed deprecated argument
convention
infrom_euler()
andto_euler()
methods forQuaternion
and its subclasses. Usedirection
instead. Passingconvention
will now raise an error.
Deprecated
loadang()
andloadctf()
are deprecated and will be removed in the next minor release. Please useio.load()
instead.
orix 0.12.1.post0
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
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
andQuaternion.from_axes_angles()
would raise if the input arrays were broadcastable but the final dimension was1
. This has been fixed.Phase.from_cif()
now correctly adjusts atom positions when forcing
orix 0.12.0
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()
andfrom_homochoric()
, replacing the now deprecatedfrom_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()
andto_homochoric()
. Rodrigues-Frank vectors can be returned fromto_rodrigues()
by passingfrank=True
. inv()
method forQuaternion
,Rotation
,Orientation
, andMisorientation
. 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 ofOrientation
andMisorientation
now acceptsymmetry
. Arandom()
method is also added toVector3d
andMiller
, the latter accepting aphase
. - 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 givenSymmetry
.
Changed
- The
convention
parameter infrom_euler()
andto_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 existingfrom_axes_angles()
and the newfrom_rodrigues()
andfrom_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 forcingPhase.structure.lattice.base
to use the crystal axes alignmente1 || a
,e3 || c*
. This is now fixed.
orix 0.11.1
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
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 SciPyRotation
. - Creation of one
Quaternion
orRotation
by aligning sets of vectors in two reference frames, oneOrientation
by aligning sets of sample vectors and crystal vectors, and oneMisorientation
by aligning two sets of crystal vectors in two different crystals. row
andcol
properties toCrystalMap
giving the row and column coordinate of each map point given byCrystalMap.shape
.Rotation
class methodsfrom_neo_euler()
,from_axes_angles()
,from_euler()
,from_matrix()
,random()
andidentity()
and methodsto_euler()
andto_matrix()
are now available from theQuaternion
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'sPathPatch()
.- Option to pass degrees to the
Quaternion
methodsfrom_axes_angles()
,from_euler()
andto_euler()
by passingdegrees=True
. - Option to get degrees from all
angle_with()
andangle_with_outer()
methods by passingdegrees=True
. - Option to pass degrees to the
(Mis)Orientation
methodget_distance_matrix()
by passingdegrees=True
. - Option to pass degrees to the
Vector3d
methodsfrom_polar()
andto_polar()
by passingdegrees=True
. - Option to get spherical coordinates from
InverseStereographicProjection.xy2spherical()
in degrees or pass them as degrees toStereographicProjection
methodsspherical2xy()
andspherical2xy_split()
by passingdegrees=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 aCrystalMap
and thez
anddz
attributes of the class were deprecated in 0.10.1 and are now removed. - Passing
shape
orstep_sizes
with three values tocreate_coordinate_arrays()
was depreacted in 0.10. and will now raise an error. - Parameter
depth
(andaxes
) inCrystalMapPlot.plot_map()
was depreacted in 0.10.1 and will now raise an error if passed. - The
z
anddz
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
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
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 aCrystalMap
and thez
anddz
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
orstep_sizes
with three values tocreate_coordinate_arrays()
is depreacted and will raise an error in 0.11.0. See the previous point for the reason. - Parameter
depth
inCrystalMapPlot.plot_map()
is depreacted and will be removed in 0.11.0. See the top point for the reason.
Fixed
StereographicPlot.scatter()
now accepts bothc
/color
ands
/sizes
to set the color and sizes of scatter points, in line withmatplotlib.axes.Axes.scatter()
.- Indexing/slicing into an already indexed/sliced
CrystalMap
now correctly returns the index/slice according toCrystalMap.shape
and not the original shape of the un-sliced map.