def getAvgMov(track, **kwargs):

	SPEED_CONVERSION_FACTOR = kwargs["speedConversionFactor"]

	avgMov = []
	diff = []
	frameDistanceBetweenFrames = []
	positionalDistanceBetweenFrames = []
	for index in range(0, len(track.x) - 1):
		#the number of frames by which two adjacent elements in track are separated
		frameDistanceBetweenFrames = track.t[index + 1] - track.t[index] 
		#the absolute positional distance between adjacent tracked frames
		positionalDistanceBetweenFrames = gen.getDistance(track.x[index], track.x[index + 1], track.y[index], track.y[index + 1])
		#the distance traveled per frame between adjacent tracked frames
		diff.append(positionalDistanceBetweenFrames / frameDistanceBetweenFrames)
	return gen.nanMean(diff) * SPEED_CONVERSION_FACTOR
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)