pynbody.transformation.Rotation#

class pynbody.transformation.Rotation(f, matrix, ortho_tol=1e-08, description=None)[source]#

Bases: Transformation

A rotation on all 3d vectors in a simulation, by a given orthogonal 3x3 matrix

Methods

apply_inverse_to(f)

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.

current_transformation()

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.

set_description(description)

Set a description for this transformation, including any chained transformations.

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.

Parameters:

f (SimSnap) – The simulation to apply the transformation to

Returns:

The input simulation (not a copy)

Return type:

SimSnap

apply_to(f: snapshot.SimSnap) snapshot.SimSnap#

Apply this transformation to a specified simulation.

Chained transformations are applied recursively.

Parameters:

f (SimSnap) – The simulation to apply the transformation to. Any simulation reference stored within the transformation itself is ignored

Returns:

The input simulation (not a copy)

Return type:

SimSnap

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.GenericTranslation object which can be used as a context manager to ensure that the velocity shift is undone.

For more information, see the pynbody.transformation documentation.

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.Rotation object which can be used as a context manager to ensure that the translation is undone.

For more information, see the pynbody.transformation documentation.

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.Rotation object which can be used as a context manager to ensure that the rotation is undone.

For more information, see the pynbody.transformation documentation.

rotate_y(angle)#

Rotates about the current y-axis by ‘angle’ degrees.

Returns a pynbody.transformation.Rotation object which can be used as a context manager to ensure that the rotation is undone.

For more information, see the pynbody.transformation documentation.

rotate_z(angle)#

Rotates about the current z-axis by ‘angle’ degrees.

Returns a pynbody.transformation.Rotation object which can be used as a context manager to ensure that the rotation is undone.

For more information, see the pynbody.transformation documentation.

set_description(description: str)#

Set a description for this transformation, including any chained transformations.

Parameters:

description (str) – The description to set

transform(matrix)#

Deprecated alias for rotate().

translate(offset)#

Translate by the given offset.

Returns a pynbody.transformation.GenericTranslation object which can be used as a context manager to ensure that the translation is undone.

For more information, see the pynbody.transformation documentation.