Releases: pyxem/orix
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.
orix 0.10.0
NOTE: This release has been yanked and should not be used. A relevant patch fix (and little else) has been added in 0.10.1
.
orix 0.10.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
- Support for type hints has been introduced and a section on this topic has been added to the contributing guide.
Vector3d.pole_density_function()
has been implemented which allows for calculation of the Pole Density Function (PDF) and quantification of poles in the stereographic projection.- Seven methods for sampling unit vectors from regular grids on S2 via
orix.sampling.sample_S2()
. - Calculation of the Inverse Pole Density Function (IPDF), ie. pole density in the crystal point group fundamental sector, through
InversePoleFigurePlot.pole_density_function()
. - The
orix.measure
module has been introduced. Themeasure
module is related to quantification of orientation and vector data. - Plotting the IPF color key on a created
InversePoleFigurePlot
is now possible withplot_ipf_color_key()
. - Examples gallery to documentation.
Changed
- Moved part of documentation showing plotting of Wulff net and symmetry markers from the tutorials to examples.
- Renamed user guide notebooks to tutorials in documentation.
- Reference frame labels of stereographic projection of
Symmetry.plot()
from (a, b) to (e1, e2), signifying the standard Cartesian reference frame attached to a crystal. - Tighten distribution of random orientation clusters in tutorial showing clustering across fundamental region boundaries, to avoid clustering sometimes giving two clusters instead of three.
Removed
- Support for Python 3.6 has been removed. The minimum supported version in
orix
is now Python 3.7. Object3d.check()
,Quaternion.check_quaternion()
andVector3d.check_vector()
, as these methods were not used internally.- Deprecated method
distance()
ofMisorientation
andOrientation
classes, useget_distance_matrix()
instead.
Fixed
- Plotting of unit cells works with Matplotlib v3.6, at the expense of a warning raised with earlier versions.