Skip to main content

A tool to study 2D trajectories

Project description

trajectorytools is a library with some utils to study and plot 2D trajectories.

Installation

From PyPI

pip install trajectorytools

From Source

To clone this repository:

git clone https://github.com/fjhheras/trajectorytools

To install requirements:

pip install -r requirements.txt

To install the package:

pip install .

or alternatively, locally with a symlink:

pip install -e .

Example

import numpy as np
import matplotlib as mpl

import trajectorytools as tt
import trajectorytools.animation as ttanimation
import trajectorytools.socialcontext as ttsocial
from trajectorytools.constants import test_raw_trajectories_path

# Loading test trajectories as a numpy array of locations
test_trajectories = np.load(test_raw_trajectories_path, allow_pickle=True)

# We will process the numpy array, interpolate nans and smooth it.
# To do this, we will use the Trajectories API
smooth_params = {'sigma': 1}
traj = tt.Trajectories.from_positions(test_trajectories,
                                      smooth_params=smooth_params)

# We assume a circular arena and populate center and radius keys
center, radius = traj.estimate_center_and_radius_from_locations()

# We center trajectories around the estimated center
traj.origin_to(center)

# We will normalise the location by the radius:
traj.new_length_unit(radius)

# We will change the time units to seconds. The video was recorded at 32
# fps, so we do:
traj.new_time_unit(32, 'second')

# Now we can find the smoothed trajectories, velocities and accelerations
# in traj.s, traj.v and traj.a
# We can use, for instance, the positions in traj.s and find the border of
# the group:
in_border = ttsocial.in_alpha_border(traj.s, alpha=5)

# Animation showing the fish on the border
colornorm = mpl.colors.Normalize(vmin=0,
                                 vmax=3,
                                 clip=True)
mapper = mpl.cm.ScalarMappable(norm=colornorm, cmap=mpl.cm.RdBu)
color = mapper.to_rgba(in_border)

anim1 = ttanimation.scatter_vectors(traj.s, velocities=traj.v, k=0.3)
anim2 = ttanimation.scatter_ellipses_color(traj.s, traj.v, color)
anim = anim1 + anim2

anim.prepare()
anim.show()

In the directory examples, you can find some more example scripts. Scripts use some example trajectories, which can be found in data. All example trajectories were obtained using idtracker.ai on videos recorded in de Polavieja Lab (Champalimaud Research, Lisbon)

Authors

Francisco J.H. Heras (2017-) Francisco Romero Ferrero (2017-)

Contribute

Please.

License

This project is licensed under the terms of the GNU General Public License v3.0 (See COPYING). This means that you may copy, distribute and modify the software as long as you track changes/dates in source files. However, any modifications to GPL-licensed code must also be made available under the GPL along with build & install instructions.

If you use this work in an academic context and you want to acknowledge us, please cite some of the relevant papers:

Romero-Ferrero, F., Bergomi, M. G., Hinz, R. C., Heras, F. J., & de Polavieja, G. G. (2019). idtracker.ai: tracking all individuals in small or large collectives of unmarked animals. Nature methods, 1

Heras, F. J., Romero-Ferrero, F., Hinz, R. C., & de Polavieja, G. G. (2019). Deep attention networks reveal the rules of collective motion in zebrafish. PLoS computational biology, 15(9), e1007354.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trajectorytools-0.3a4.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trajectorytools-0.3a4-py3-none-any.whl (869.8 kB view details)

Uploaded Python 3

File details

Details for the file trajectorytools-0.3a4.tar.gz.

File metadata

  • Download URL: trajectorytools-0.3a4.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for trajectorytools-0.3a4.tar.gz
Algorithm Hash digest
SHA256 6dd4626fe862a6aa05e8658bfa20c58dcefb1a0530cfd752fc6b5a97cf073d1b
MD5 f3bd11e66445261e2c341e8230f5e022
BLAKE2b-256 a1948aebf03ba8ef42bd827b98e769a129b40ec63bd67163e066883053447315

See more details on using hashes here.

File details

Details for the file trajectorytools-0.3a4-py3-none-any.whl.

File metadata

  • Download URL: trajectorytools-0.3a4-py3-none-any.whl
  • Upload date:
  • Size: 869.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for trajectorytools-0.3a4-py3-none-any.whl
Algorithm Hash digest
SHA256 660b6ce126080cc1547a9f6d42f531fc6333c6d86381d905363da22dd4ddcefe
MD5 7672c98ea65b502f5b8034a480501d21
BLAKE2b-256 9185101ad5a25da3f7c2c6d4ab9b9941b82348dbac0cd29f68a4aa29f85fcf55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page