def getMP(track, **kwargs): travel = [] xDiffs = gen.getDifferenceArray(track.x) yDiffs = gen.getDifferenceArray(track.y) for x, y in zip(xDiffs, yDiffs): travel.append(gen.pythagorean(x, y)) totalTravel = np.sum(travel) xDistance = track.x[-1] - track.x[0] yDistance = track.y[-1] - track.y[0] if totalTravel == 0: return 0 return gen.pythagorean(xDistance, yDistance) / totalTravel
def getDirectionality(track, **kwargs): FIELD_VECTOR = kwargs['gradientVector'] xDiffs = gen.getDifferenceArray(track.x) yDiffs = gen.getDifferenceArray(track.y) directedness = [] #calculate instantenous directionality between frames for dx, dy in zip(xDiffs, yDiffs): vector = [dx, dy] normVector = gen.normalizeVector(vector) if normVector != 0: normFieldVector = gen.normalizeVector(FIELD_VECTOR) directionality = gen.dotProduct(vector, FIELD_VECTOR) / normVector * normFieldVector directedness.append(directionality) else: directedness.append(0) return gen.nanMean(directedness)