From 765d381c5d8ce725e4a0bdeb0f005f34637a49be Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Mon, 24 Feb 2025 10:39:18 +0100 Subject: [PATCH] [trackingdata] avoid div by zero on center of gravity estimation --- fixtracks/utils/trackingdata.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fixtracks/utils/trackingdata.py b/fixtracks/utils/trackingdata.py index e3d8625..cf13de0 100644 --- a/fixtracks/utils/trackingdata.py +++ b/fixtracks/utils/trackingdata.py @@ -199,8 +199,11 @@ class TrackingData(QObject): scores[:, np.setdiff1d(np.arange(scores.shape[1]), nodes)] = 0.0 weighted_coords = self.coordinates(selection=selection) * scores[:, :, np.newaxis] sum_scores = np.sum(scores, axis=1, keepdims=True) - center_of_gravity = np.sum(weighted_coords, axis=1) / sum_scores - return center_of_gravity + + cogs = np.zeros((weighted_coords.shape[0], 2)) + val_ids = np.where(sum_scores > 0.0)[0] + cogs[val_ids] = np.sum(weighted_coords[val_ids], axis=1) / sum_scores[val_ids] + return cogs def animalLength(self, bodyaxis=None): if bodyaxis is None: