Skip to content

Instantly share code, notes, and snippets.

@mdsumner
Last active September 10, 2024 18:52
Show Gist options
  • Save mdsumner/0a3cb0e58bf9d37b782943ac269e1eff to your computer and use it in GitHub Desktop.
Save mdsumner/0a3cb0e58bf9d37b782943ac269e1eff to your computer and use it in GitHub Desktop.

On-CRAN packages for "Moving objects, trajectories"

This is for an update to the the SpatioTemporal Task View.

If you have any other suggestions, please leave a comment below - or raise an issue here: https://github.com/mdsumner/ctv-mdsumner/issues (or just email/tweet me).

(This is not the final presentation format).

Moving objects, trajectories

adehabitatLT Analysis of Animal Movements. A collection of tools for the analysis of animal movements..

amt Animal Movement Tools. Manage and analyze animal movement data.

animalTrack Animal track reconstruction for high frequency 2-dimensional (2D) or 3-dimensional (3D) movement data.. 2D and 3D animal tracking data can be used to reconstruct tracks through time/space with correction based on known positions.

argosfilter Argos locations filter. Functions to filters animal satellite tracking data obtained from Argos.

BayesianAnimalTracker Bayesian Melding of GPS and DR Path for Animal Tracking. Bayesian melding approach to combine the GPS observations and Dead-Reckoned path for an accurate animal's track, or equivalently, use the GPS observations to correct the Dead-Reckoned path.

BBMM Brownian bridge movement model. The model provides an empirical estimate of a movement path using discrete location data obtained at relatively short time intervals..

bcpa Behavioral change point analysis of animal movement. The Behavioral Change Point Analysis (BCPA) is a method of identifying hidden shifts in the underlying parameters of a time series, developed specifically to be applied to animal movement data which is irregularly sampled.

bsam Bayesian State-Space Models for Animal Movement. Tools to fit Bayesian state-space models to animal tracking data.

caribou Estimation of caribou abundance based on large scale aggregations monitored by radio telemetry. This is a package for estimating the population size of migratory caribou herds based on large scale aggregations monitored by radio telemetry.

crawl Fit Continuous-Time Correlated Random Walk Models to Animal Movement Data. Fit continuous-time correlated random walk models with time indexed covariates to animal telemetry data.

ctmcmove Modeling Animal Movement with Continuous-Time Discrete-Space Markov Chains. Software to facilitates taking movement data in xyt format and pairing it with raster covariates within a continuous time Markov chain (CTMC) framework.

ctmm Continuous-Time Movement Modeling. Functions for identifying, fitting, and applying continuous-space, continuous-time stochastic movement models to animal tracking data.

diveMove Dive Analysis and Calibration. Utilities to represent, visualize, filter, analyse, and summarize time-depth recorder (TDR) data.

eyelinker Load Raw Data from Eyelink Eye Trackers. Eyelink eye trackers output a horrible mess, typically under the form of a '.asc' file.

eyetracking Eyetracking Helper Functions. Misc function for working with eyetracking data.

eyetrackingR Eye-Tracking Data Analysis. A set of tools that address tasks along the pipeline from raw data to analysis and visualization for eye-tracking data.

fishmove Prediction of Fish Movement Parameters. Functions to predict fish movement parameters plotting leptokurtic fish dispersal kernels (see Radinger and Wolter, 2014: Patterns and predictors of fish dispersal in rivers.

FLightR Hidden Markov Model for Solar Geolocation Archival Tags. Estimate positions of animal from data collected by solar geolocation archival tags..

gazepath Parse Eye-Tracking Data into Fixations. Eye-tracking data must be transformed into fixations and saccades before it can be analyzed.

GeoLight Analysis of Light Based Geolocator Data. Provides basic functions for global positioning based on light intensity measurements over time. Positioning process includes the determination of sun events, a discrimination of residency and movement periods, the calibration of period-specific data and, finally, the calculation of positions..

HMMoce Improved Analysis of Marine Animal Movement Data Using Hidden Markov Models. Improved analysis of marine animal movement data by implementing a state-space hidden Markov model (HMM) to improve position estimates.

mdftracks Read and Write 'MTrackJ Data Files'. 'MTrackJ' is an 'ImageJ' plugin for motion tracking and analysis (see https://imagescience.org/meijering/software/mtrackj/).

mkde 2D and 3D movement-based kernel density estimates (MKDEs).. Provides functions to compute and visualize movement-based kernel density estimates (MKDEs) for animal utilization distributions in 2 or 3 spatial dimensions..

momentuHMM Maximum Likelihood Analysis of Animal Movement Behavior Using Multivariate Hidden Markov Models. Extended tools for analyzing telemetry data using generalized hidden Markov models.

mousetrack Mouse-Tracking Measures from Trajectory Data. Extract from two-dimensional x-y coordinates of an arm-reaching trajectory, several dependent measures such as area under the curve, latency to start the movement, x-flips, etc.; which characterize the action-dynamics of the response.

mousetrap Process and Analyze Mouse-Tracking Data. Mouse-tracking, the analysis of mouse movements in computerized experiments, is a method that is becoming increasingly popular in the cognitive sciences.

move Visualizing and Analyzing Animal Track Data. Contains functions to access movement data stored in 'movebank.org' as well as tools to visualize and statistically analyze animal movement data, among others functions to calculate dynamic Brownian Bridge Movement Models. Move helps addressing movement ecology questions..

moveHMM Animal Movement Modelling using Hidden Markov Models. Provides tools for animal movement modelling using hidden Markov models.

rpostgisLT Managing Animal Movement Data with 'PostGIS' and R. Integrates R and the 'PostgreSQL/PostGIS' database system to build and manage animal trajectory (movement) data sets. The package relies on 'ltraj' objects from the R package 'adehabitatLT', building the analogous 'pgtraj' data structure in 'PostGIS'.

rsMove Remote Sensing for Movement Ecology. Tools that support the combined use of animal movement and remote sensing data..

saccades Detection of Fixations in Eye-Tracking Data. Functions for detecting eye fixations in raw eye-tracking data.

SDLfilter Filtering Satellite-Derived Locations. Functions to filter GPS and/or Argos locations.

sigloc Signal Location Estimation. A collection of tools for estimating the location of a transmitter signal from radio telemetry studies using the maximum likelihood estimation (MLE) approach described in Lenth (1981)..

SimilarityMeasures Trajectory Similarity Measures. Functions to run and assist four different similarity measures.

smam Statistical Modeling of Animal Movements. Animal movement models including moving-resting process with embedded Brownian motion, Brownian motion with measurement error..

SpaTimeClus Model-Based Clustering of Spatio-Temporal Data. Mixture model is used to achieve the clustering goal.

stam Spatio-Temporal Analysis and Modelling. stam is an evolving package that target on the various methods to conduct Spatio-Temporal Analysis and Modelling,including Exploratory Spatio-Temporal Analysis and Inferred Spatio-Temporal Modelling..

stplanr Sustainable Transport Planning. Functionality and data access tools for transport planning, including origin-destination analysis, route allocation and modelling travel patterns..

surveillance Temporal and Spatio-Temporal Modeling and Monitoring of Epidemic Phenomena. Statistical methods for the modeling and monitoring of time series of counts, proportions and categorical data, as well as for the modeling of continuous-time point processes of epidemic phenomena. The monitoring methods focus on aberration detection in count data time series from public health surveillance of communicable diseases, but applications could just as well originate from environmetrics, reliability engineering, econometrics, or social sciences.

trackdem Particle Tracking and Demography. Obtain population density and body size structure, using video material or image sequences as input.

trackeR Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices. The aim of this package is to provide infrastructure for handling running and cycling data from GPS-enabled tracking devices.

TrackReconstruction Reconstruct animal tracks from magnetometer, accelerometer, depth and optional speed data.. Reconstructs animal tracks from magnetometer, accelerometer, depth and optional speed data.

trajectories Classes and Methods for Trajectory Data. Classes and methods for trajectory data, with nested classes for individual trips, and collections for different entities.

trip 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.

tripEstimation Metropolis Sampler and Supporting Functions for Estimating Animal Movement from Archival Tags and Satellite Fixes. Data handling and estimation functions for animal movement estimation from archival or satellite tags.

VTrack A Collection of Tools for the Analysis of Remote Acoustic Telemetry Data. Designed to facilitate the assimilation, analysis and synthesis of animal location and movement data collected by the VEMCO suite of acoustic transmitters and receivers.

wildlifeDI Calculate Indices of Dynamic Interaction for Wildlife Telemetry Data. Dynamic interaction refers to spatial-temporal associations in the movements of two (or more) animals.

@mdsumner
Copy link
Author

@ratnanil
Copy link

Here's an interesting paper reviewing some 57 R packages and referencing this page. Loo et al (2018): Navigating through the R packages for movement

@mdsumner
Copy link
Author

mdsumner commented Feb 26, 2019

Here's a rant I might keep working on. I've written it in comments as I intended it to be a series of short tweets. WIP

# It's bugged me for years that there's no coherent powerful way to deal with
# tracking data. It's such a fundamental and simple concept, it matches the vast
# majority of all data we collect, one-dimensional records of values streaming
# in the door grouped by identifiers, ordered by time, possibly including other
# variables measured along with location and time.

# Tracking data is location measured over time for an object. Trajectories. GPS
# data. Argos satellite tracking. Locations from light level geo-location.
# Inferred movement from sensor arrays. Mostly, we mean GPS data but the animal
# movement fields have established these kinds of data long ago. The human
# sciences are catching up as we deal with endless streams of these data from
# endless new sources in our economies and environment.

# The Simple Features standard (SF) precludes straightforward representation of
# track data. It's as simple as that. The R sf package aligns very closely to
# SF. If you are intending to extend sf for trajectories you should be aware of
# these limitations. There are many packages that extended sp for track data
# that hit these problems. The sf package does not add anything new to this
# problem. If you can extend sf for these data, you are no longer aligned to SF.

# The candidates are: lines, multilines, multipoints, points. Lines are an
# ordered sequence of locations, multilines are sets of those. The sequence can
# store only its location (and optional Z, and optional M), it otherwise has
# only a single row of data that can be stored with it. That's what "one line"
# means, or "one multiline": this is a complex geometry object linked to a
# single row of data.  Ok ok, what about multipoint? A multipoint is an
# *unordered* set of locations, with no higher grouping. Again we can store
# optionally Z and or M in SF, but we cannot store a real date-time and an
# elevation. We cannot include temperature or size or visibility or salinity or
# any other of many continuous properties measured in the real world. We can
# store a single discrete property against the row that links to this group of
# locations.

# So points then. What is a point? An pair of X,Y coordinates, a pair of
# long,lat coordinates (or both, explicitly or implicitly). This can sit in a
# row with other data, with any other data, the exact time, elevation,
# temperature, salinity, cloud cover, humidity, absolutely anything we want.  So
# what should we do? Rewrite sf from the ground up? (Maybe).

# These *geometric* parts of the data are coordinates, they are x, y, z, time.
# There are many ways of expressing these positional values but pretty commonly
# we stick to relative locations to the surface of the earth, or some local
# coordinate system either formal or informal.  What tools do we have for these data?

# "one-dimensional records of values streaming in the door grouped by
# identifiers, ordered by time, possibly including other variables measured
# along with location and time."  A table of data, grouped-by identifiers,
# arranged by date-time, with other variables as required. I often use dplyr and
# ggplot2 for these kinds of data.  Read table, group by ID, arrange by time,
# nominate aes-thetics x, y, colour, lwd and add a geometry to link the records
# together.

# But dplyr/ggplot2 is not coordinate system aware!  Well it is date-time aware,
# and factor aware, and all we need to add is a coordinate reference system for
# our locations (it's not hard to keep track, trust me).

# What I actually recommend is

# 1. Learn to use dplyr and ggplot2 to full effect to tidy, manage, and
# visualize your tracking data.

# 2. Investigate the dozens of existing tracking packages on CRAN and elsewhere,
# they likely include the filtering, smoothing, augmenting, modelling,
# remapping, gridding, re-summarizing algorithms that you will need. You can
# convert tidy data into these formats. There are many converters between
# formats, and between sf, sp, adehabitat, move, trip and other types. They just
# aren't collected all together.

# 3. Write your own analytical technique in this ecosystem.

# Still want to extend sf in an entirely new way for tracking data? Check out
# trip, move, adehabitat, trajectories, and many others. What's missing from them? Can they be
# consolidated?  What is common to them? Can it be simpler? Why are there so many movement
# packages? 

@mdsumner
Copy link
Author

mdsumner commented Apr 1, 2019

@mdsumner
Copy link
Author

mdsumner commented Apr 1, 2019

@mdsumner
Copy link
Author

mdsumner commented Apr 8, 2019

@mdsumner
Copy link
Author

@mdsumner
Copy link
Author

@mdsumner
Copy link
Author

mdsumner commented May 9, 2019

@mdsumner
Copy link
Author

@mdsumner
Copy link
Author

@mdsumner
Copy link
Author

@mdsumner
Copy link
Author

mdsumner commented Nov 7, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment