PhysMove: Intraspecific Movements

Hannah J. Calich, Jorge Rodríguez, Víctor Eguíluz & Ana M. M. Sequeira

Last updated: 2026-07-25

Index

  1. Introduction and data preparation
  2. Movement patterns
  3. Space-use patterns
  4. Intraspecific movements

Intraspecific movements

PhysMove includes three metrics for quantifying intraspecific movement patterns that are based on four functions, including:

Track dispersion

The gyrationRad() function calculates the dispersion (i.e., the gyration radius) of each track in a dataset (Figure V16).

gyrationRad() requires a data frame with telemetry data (see data formatting) and includes two optional parameters:

gyrationRad() outputs a data frame of the results that were used to create the map, including:

# Calculate the dispersion of each track in the 'tracks' dataset
GR <- gyrationRad(tracks)

Figure V16 Map illustrating dispersion patterns for 'tracks' dataset using gyrationRad() default parameters. Black points represent the mean location of each track and red circles represent how far each track dispersed (i.e., each track’s gyration radius).

# Summarize gyration radius results
summary(GR)
#>       ref        avg_long          avg_lat            rG_(km)      
#>  Min.   : 1   Min.   :-0.4659   Min.   :-1.48078   Min.   : 61.10  
#>  1st Qu.: 7   1st Qu.: 0.4374   1st Qu.:-0.49511   1st Qu.: 90.54  
#>  Median :13   Median : 1.1271   Median : 0.04625   Median :104.13  
#>  Mean   :13   Mean   : 1.2665   Mean   : 0.09926   Mean   :105.41  
#>  3rd Qu.:19   3rd Qu.: 1.7190   3rd Qu.: 0.71868   3rd Qu.:126.31  
#>  Max.   :25   Max.   : 3.5944   Max.   : 1.78492   Max.   :168.22

Probability density function of gyration radius results

A pdf of the results from gyrationRad() can be plotted with the plotPDF() function when the desc parameter is set to “gyrationRad” (Figure V17).

# Create a pdf plot of gyration radius values
pdf.gr <- plotPDF((GR$`rG_(km)`), desc="gyrationRad")

Figure V17 Probability density function (pdf) plot of gyration radius values for the 'tracks' dataset determined with gyrationRad() default parameters. Plot created using plotPDF() with desc="gyrationRad".

Back to top

Track entropy

The entropy() function calculates track randomness based on the fraction of data points from each track within each grid cell (Figure V18). The resulting entropy scores are then normalised so results can be compared between individuals. Note that if a track only visits a single grid cell, normalised entropy cannot be calculated and will return NaN; these values are excluded from visualisations.

entropy() requires a data frame with telemetry data (see data formatting) and includes two optional parameters:

entropy() outputs a data frame with four columns, including:

# Calculate track entropy using default parameters
Ent <- entropy(tracks)

Figure V18 Histogram of normalised entropy scores for 'tracks' dataset created using entropy() default parameters.

# Summarise entropy results
summary(Ent)
#>       ref     normalisedEntropy  indivEntropy    cellsVisited  
#>  Min.   : 1   Min.   :0.8637    Min.   :2.942   Min.   :27.00  
#>  1st Qu.: 7   1st Qu.:0.8984    1st Qu.:3.277   1st Qu.:39.00  
#>  Median :13   Median :0.9142    Median :3.708   Median :59.00  
#>  Mean   :13   Mean   :0.9082    Mean   :3.621   Mean   :57.32  
#>  3rd Qu.:19   3rd Qu.:0.9202    3rd Qu.:3.889   3rd Qu.:71.00  
#>  Max.   :25   Max.   :0.9256    Max.   :4.189   Max.   :94.00

Probability density function of entropy results

A pdf of the results from entropy() can be plotted with the plotPDF() function when the desc parameter is set to “entropy” (Figure V19).

# Create a pdf plot of the entropy scores
pdf.ent <- plotPDF(Ent$normalisedEntropy, desc="entropy")

Figure V19 Probability density function (pdf) plot of normalised entropy scores for 'tracks' dataset determined with entropy() default parameters. Plot created using plotPDF() with desc="entropy".

Back to top

Track predictability

The predictability() function calculates the limit of predictability for each track based on their individual entropy scores (Figure V20).

predictability() requires a data frame with telemetry data (see data formatting) and a data frame of results output from entropy(), and includes two optional parameters:

predictability() outputs a data frame of results with two columns, including:

# Track predictability using predictability() default parameters and the output from entropy()
Pred <- predictability(tracks, Ent)

Figure V20 Histogram of predictability scores for 'tracks' dataset determined using predictability() default parameters and entropy scores from entropy().

# Summarize predictability scores
summary(Pred)
#>       ref     predictability  
#>  Min.   : 1   Min.   :0.1798  
#>  1st Qu.: 7   1st Qu.:0.1992  
#>  Median :13   Median :0.2058  
#>  Mean   :13   Mean   :0.2217  
#>  3rd Qu.:19   3rd Qu.:0.2420  
#>  Max.   :25   Max.   :0.3002

Probability density function of predictability results

A pdf of the results from predictability() can be plotted with the plotPDF() function when the desc parameter is set to “predictability” (Figure V21).

# Create a pdf plot of the predictability scores
pdf.pred <- plotPDF(Pred$predictability, desc="predictability")

Figure V21 Probability density function (pdf) plot of predictability scores for 'tracks' dataset determined with predictability() default parameters and results from entropy(). Plot created using plotPDF() with desc="predictability".

Back to top