pynbody.transformation.Rotation#
- class pynbody.transformation.Rotation(f, matrix, ortho_tol=1e-08, description=None)[source]#
Bases:
TransformationA rotation on all 3d vectors in a simulation, by a given orthogonal 3x3 matrix
Methods
Apply the inverse of this transformation to a specified simulation.
apply_to(f)Apply this transformation to a specified simulation.
apply_transformation_to_array(array_name, family)Apply the current transformation to an array.
Return the transformation that has been applied to this object, if any.
offset_velocity(offset)Shift the velocity by the given offset.
revert()Revert the transformation.
rotate(matrix[, description])Rotates using a specified matrix.
rotate_x(angle)Rotates about the current x-axis by 'angle' degrees.
rotate_y(angle)Rotates about the current y-axis by 'angle' degrees.
rotate_z(angle)Rotates about the current z-axis by 'angle' degrees.
transform(matrix)Deprecated alias for
rotate().translate(offset)Translate by the given offset.
- __init__(f, matrix, ortho_tol=1e-08, description=None)[source]#
Initialise a rotation on a simulation.
The matrix must be orthogonal to within ortho_tol.
- Parameters:
f (SimSnap) – The simulation to act on
matrix (array_like) – The 3x3 orthogonal matrix to rotate by
ortho_tol (float) – The tolerance for orthogonality of the matrix. If the matrix is not orthogonal to within this tolerance, a ValueError is raised.
description (str) – A description of the rotation to be returned from str() and repr()
- apply_inverse_to(f)#
Apply the inverse of this transformation to a specified simulation.
Chained transformations are applied recursively.
- apply_to(f: snapshot.SimSnap) snapshot.SimSnap#
Apply this transformation to a specified simulation.
Chained transformations are applied recursively.
- apply_transformation_to_array(array_name, family)#
Apply the current transformation to an array.
This is used internally by the snapshot class to ensure that arrays are transformed when they are loaded.
- Parameters:
array_name (str) – The name of the array to transform
family (pynbody.family.Family | None) – The family to which the array belongs, or None if it is a snapshot-level array (default)
- current_transformation() Transformation | None#
Return the transformation that has been applied to this object, if any.
- offset_velocity(offset)#
Shift the velocity by the given offset.
Returns a
pynbody.transformation.GenericTranslationobject which can be used as a context manager to ensure that the velocity shift is undone.For more information, see the
pynbody.transformationdocumentation.
- revert()#
Revert the transformation. If it has not been applied, a TransformationException is raised.
- rotate(matrix, description=None)#
Rotates using a specified matrix.
Returns a
pynbody.transformation.Rotationobject which can be used as a context manager to ensure that the translation is undone.For more information, see the
pynbody.transformationdocumentation.- Parameters:
matrix (array_like) – The 3x3 orthogonal matrix to rotate by
description (str) – A description of the rotation to be returned from str() and repr()
- rotate_x(angle)#
Rotates about the current x-axis by ‘angle’ degrees.
Returns a
pynbody.transformation.Rotationobject which can be used as a context manager to ensure that the rotation is undone.For more information, see the
pynbody.transformationdocumentation.
- rotate_y(angle)#
Rotates about the current y-axis by ‘angle’ degrees.
Returns a
pynbody.transformation.Rotationobject which can be used as a context manager to ensure that the rotation is undone.For more information, see the
pynbody.transformationdocumentation.
- rotate_z(angle)#
Rotates about the current z-axis by ‘angle’ degrees.
Returns a
pynbody.transformation.Rotationobject which can be used as a context manager to ensure that the rotation is undone.For more information, see the
pynbody.transformationdocumentation.
- translate(offset)#
Translate by the given offset.
Returns a
pynbody.transformation.GenericTranslationobject which can be used as a context manager to ensure that the translation is undone.For more information, see the
pynbody.transformationdocumentation.