Re-shape C-order flattened motor positions and sort from slow axis to fast axis.

The provided positions are the actual motor positions of an nD-dimensional scan of shape (n0, n1, …), flattened in C-order to a shape of (nPoints,).

This algorithm works as long as the deviations of the motor positions from a regular grid are smaller than 30% of the step size of the scan.


positions (Sequence[ndarray]) – shape = (nD, nPoints) where nPoints is a C-order flattened form of (n0, n1, …)

Return type:

Tuple[Sequence[ndarray], List[int]]


array of shape = (nD, n0, n1, …), axes indices from slow to fast