etspy.base.TomoStack(data: ndarray | Signal2D, tilts: TomoTilts | None = None, shifts: TomoShifts | ndarray | None = None, *args, **kwargs)[source]

Create a TomoStack signal instance.

Parameters:
data: ndarray | Signal2D

The signal data. Can be provided as either a HyperSpy hyperspy.api.signals.Signal2D or a Numpy array of the shape (tilt, y, x).

tilts: TomoTilts | None = None

A TomoTilts containing the tilt value (in degrees) for each projection in the stack. The navigation dimension should match the navigation dimension of the stack (one value per tilt image).

shifts: TomoShifts | ndarray | None = None

A TomoShifts or ndarray containing the x/y image shift value (in pixels) for each projection in the stack. A signal should have the same navigation dimension as the stack. A Numpy array should have shape (nav_size, 2). If None, the shifts will be initialized to zero-valued signal. If shifts are supplied as an ndarray, the Y-shifts (perpendicular to the tilt axis) should be in the shifts[:, 0] position and X-shifts (parallel to the tilt axis) in shifts[:, 1].

*args

Additional non-keyword arguments passed to the Signal2D constructor

**kwargs

Additional keyword arguments passed to the hyperspy.api.signals.Signal2D constructor

Raises:

ValueError – If the tilts or shifts signals provided do not have the correct dimensions.