import numpy as np
from idtrackerai import ListOfBlobs, Session
blobs = ListOfBlobs.load("path/to/list_of_blobs.pickle")
session = Session.load("path/to/session_folder")
trajectories = np.full((session.number_of_frames, session.n_animals, 2), np.nan)
for blob in blobs.all_blobs:
# # original code
# for identity, centroid in blob.final_ids_and_centroids:
# if identity not in (None, 0):
# trajectories[blob.frame_number, identity - 1] = centroid
# filtering out blobs with multiple identities (crossings)
valid_ids_centroids = [
(id, centroid)
for (id, centroid) in blob.final_ids_and_centroids
if id not in (None, 0)
]
if len(valid_ids_centroids) == 1: # only one valid centroid
identity, centroid = valid_ids_centroids[0]
trajectories[blob.frame_number, identity - 1] = centroid