Source code for ddd_pylib.tracking._trackpy_strategy

from ._base_tracking_strategy import BaseTrackingStrategy
import trackpy as tp
import pandas as pd


[docs] class TrackpyStrategy(BaseTrackingStrategy): def __init__(self): super().__init__() tp.quiet(True) self._adaptiveStop = 0.01 self._adaptiveStep = 0.75
[docs] def getAdaptiveStop(self) -> float: return self._adaptiveStop
[docs] def setAdaptiveStop(self, stop: float): if stop <= 0: raise ValueError("Adaptive stop must be positive.") self._adaptiveStop = stop
[docs] def getAdaptiveStep(self) -> float: return self._adaptiveStep
[docs] def setAdaptiveStep(self, step: float): if step <= 0 or step >= 1: raise ValueError("Adaptive step must be between 0 and 1.") self._adaptiveStep = step
def _linkTracks(self) -> pd.DataFrame: d = self.getDetections() predictor = tp.predict.NearestVelocityPredict() pos_columns = [a for a in ['Z', 'Y', 'X'] if a in d.columns] linked = predictor.link_df( d, search_range=self._searchingDistance, memory=self._getUncalibratedMemory(), pos_columns=pos_columns, t_column='T', adaptive_stop=self._adaptiveStop, adaptive_step=self._adaptiveStep ) d["track_id"] = linked["particle"].astype(int) + 1 return d