Tools for the Analysis of Animal Track Data

Functions for accessing and manipulating spatial data for animal tracking, with straightforward coercion from and to other formats. Filter for speed and create time spent maps from animal track data. There are coercion methods to convert between 'trip' and 'ltraj' from 'adehabitatLT', and between 'trip' and 'psp' and 'ppp' from 'spatstat'. Trip objects can be created from raw or grouped data frames, and from types in the 'sp', 'sf', 'amt', 'trackeR', 'mousetrap', and other packages.

Travis-CI Build Status AppVeyor Build Status CRAN_Status_Badge Coverage Status

The trip package provides functions for accessing and manipulating spatial data for animal tracking. Filter for speed and create time spent plots from animal track data.


The package is easily installed from CRAN in R.


Install dev version

To install the development package from Github, use devtools:



  • Probability image. The SGAT (and tripEstimation) packages have functions for dealing with spatial track summaries that are atomized to the level of each time step. There are methods for combining summaries from multiple tracks and for casting arbitrary durations (by sum) to standard image structures. This would be a good feature to replace the existing tripGrid function by storing the individual grid summaries for each implicit line segment.

  • Coercion to/from other classes See spbabel.

  • Validation Must include a detailed report object of where the problems are, and how to filter/fix/flush them.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.


trip 1.6.0


  • BREAKING change: the sp package is now imported rather than full Depends. This means that calls to its functions like coordinates<-, CRS<-, proj4string<-, spTransform will need to be prefixed with sp::, or with the package explicitly attached with library(sp). This may cause some pain but should be offset by improvements in helpful ways to create trip objects.

  • The trip() function now accepts raw data frames or grouped data frames, with the first four columns assumed to be the x, y, time coordinates and the ID column. If the data frame is grouped the first grouping column is used as the ID.

  • When trip objects are created they are by default forced into basic data sense, and so will usually succeed on creation as long as the nominated coordinates, trip group ID and date-times are sensible. The data will be automatically cleaned up for 1) duplicated records 2) duplicated date-times 3) records out of order.

  • summary(trip) now does not calculate the rolling RMS speed for performance reasons, this might be reviewed in future.

  • New function write_track_kml to produce a compressed Keyhole Markup Language ('KML') file in 'KMZ' form, for use in Google Earth.


  • readArgos gains a new argument read_alt which is set to NULL by default and maintains existing behaviour. If set to 1 or 2 the corresponding "alternative" location is returned. 1 is a standardized location corresponding to the original PRV message, and 2 is a "dummy" location. Added by request of Chris Ward.

  • Now using geodist package rather than internal distance function. There's no speed benefit for moderately small data sets (1000s of points) but there is for much larger data. Some small numeric changes in distances when using longitude, latitude data - in trackDistance and homedist but at the level of metres in terms of precision.

  • New support to coerce to sf with as(x, "sf") which creates every segment as a LINESTRING. If sf::st_as_sf() is used standard coercion from sp -> sf is used and results in POINT.

  • Add trip() support including coercion from and to the amt package type track_xyt.

  • Add trip() support for trackeRdata objects from the trackeR package, mousetrap objects from the mousetrap package. Conversion to these types from trip is not practical.

  • Add trip()) support for sf objects with POINT geometry. The column names for date-time and id must be supplied. Z or M values from XYZ, and XYZM, and XYM are currently ignored.

  • Add partial trip() support for telemetry objects from the ctmm package, see #33.

trip 1.5.0 and prior

  • See file ONEWS.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.8.5 by Michael D. Sumner, 7 months ago

Report a bug at

Browse source code at

Authors: Michael D. Sumner [aut, cre] , Sebastian Luque [ctb] , Anthony Fischbach [ctb] , Tomislav Hengl [ctb]

Documentation:   PDF Manual  

Task views: Analysis of Spatial Data, Handling and Analyzing Spatio-Temporal Data, Processing and Analysis of Tracking Data

GPL-3 license

Imports geodist, MASS, methods, raster, reproj, sp, spatstat.geom, spatstat.core, glue, viridis, traipse, crsmeta, dplyr, rlang

Suggests adehabitatLT, knitr, testthat, covr, rmarkdown, lubridate, maps, spelling

Imported by foieGras.

Suggested by silicate, spbabel.

See at CRAN