Tracking#
Simple particle tracker based on liner programming.
Note
This module is used by StitchingWobbly
to trace wobbly stacks.
- match(positions_pre, positions_post, new_trajectory_cost=None, cutoff=None)[source]#
Matches two set of positions.
Arguments
- positions_prearray
The initial particle positions.
- positions_postarray
The final particle positions.
- new_trajectory_costfloat or None
The cost for a new trajectory, if None, maximal distance+1
- cutofffloat or None:
The maximal distance allowed to connect particles.
Returns
- matchdict
The optimal association as a dictionary {index_pre : index_post}.
- optimal_association_matrix(cost)[source]#
Optimizes the association matrix A given the cost matrix cost.
Arguments
- costarray
The cost matrix, the last row and colum represent csot for particle creation/destruction.
Returns
- associationarray
The optimal association matrix.
Note
It is assumed that creation/deletion of objects are the last row and column in cost.
References
A shortest augmenting path algorithm for dense and sparse linear assignment problems Jonker, R, Volgenant, A, Computing 1987
- track_positions(positions, new_trajectory_cost=None, cutoff=None)[source]#
Track positions of multiple particles.
Arguments
- positionssarray
The particle positions as a list.
- new_trajectory_costfloat or None
The cost for a new trajectory, if None, maximal distance+1
- cutofffloat or None:
The maximal distance allowed to connect particles.
Returns
- trajectorieslist
The trajectories as a list of list of (time,particle) tuples.
References
A shortest augmenting path algorithm for dense and sparse linear assignment problems Jonker, R, Volgenant, A, Computing 1987