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

Attributes:
sim

The simulation to which this transformation applies

Methods

apply([force])

Apply the transformation to the simulation it is associated with.

apply_inverse_to(f)

Apply the inverse of this transformation to a specified simulation.

apply_to(f)

Apply this transformation to a specified simulation.

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(force=True)#

Apply the transformation to the simulation it is associated with.

This is either the simulation passed to the constructor or the one passed to the last transformation in the chain. If the transformation has already been applied, a RuntimeError is raised unless force is True, in which case the transformation is applied again.

Parameters:

force (bool) – If True, the transformation is applied even if it has already been applied. Otherwise, a RuntimeError is raised if the transformation has already been applied.

Returns:

The simulation after the transformation has been applied

Return type:

SimSnap

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

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 translation is undone.

For more information, see the pynbody.transformation documentation.

revert()#

Revert the transformation. If it has not been applied, a RuntimeError is raised.

rotate(matrix, description=None)#

Rotates using a specified matrix.

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.

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

rotate_y(angle)#

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

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.

rotate_z(angle)#

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

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.

property sim: snapshot.SimSnap | None#

The simulation to which this transformation applies

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.