Skip to contents

R-CMD-check

ezTrack is a lightweight R package for exploring animal tracking data. It offers a gentle, beginner-friendly workflow to go from raw telemetry data to clean summaries, interactive maps, and home range estimates with minimal data wrangling. By combining data cleaning, visualization, and basic analysis in a single workflow, ezTrack lowers the barrier for students, researchers, and conservation practitioners to quickly extract ecological insight without extensive programming expertise.

View the vignette


Installation

# Install development version from GitHub
# install.packages("devtools")
devtools::install_github("taylorbcraft/ezTrack",force = TRUE)

Key functions

ez_track() - Clean & standardize tracking data

tracking_data <- ez_track("my_tracking_file.csv")
  • Auto-detects columns for id, timestamp, x, and y
  • Supports CSV, Excel, shapefiles (.shp), and GeoPackages (.gpkg) files
  • Also accepts data.frame, sf, and sp objects
  • Removes rows with missing or duplicate (id, timestamp) combinations
  • Returns a clean data frame or (optionally) an sf object projected to WGS84
  • Supports time-based subsampling (e.g., “1 per hour”, “2 per day”)

ez_summary() - Quick data summary

ez_summary(tracking_data)
  • Per-ID stats: duration, fixes/day, distance, speed
  • Filters by date range
  • Optional HTML report: ez_summary(tracking_data, report = TRUE)

ez_fix_rate_plot() - Plot location fix rate

ez_fix_rate_plot(tracking_data)
  • Displays each animal’s location fixes as tick marks over time
  • Helps visualize tracking effort, data gaps, and fix frequency
  • Supports date filtering and x-axis formatting options

ez_home_range() - Estimate home ranges

ranges <- ez_home_range(tracking_data, method = "mcp", level = 95)
  • Supports MCP and KDE methods
  • Returns sf polygon(s)
  • Estimate per animal or overall population

ez_map() - Plot tracks on interactive Leaflet maps

ez_map(tracking_data)
  • Visualize tracks, points, and home ranges
  • Customize colors, radius, opacity, and labels
  • Toggle between satellite and light basemaps

ez_latitude_plot() - Plot latitude over time

ez_latitude_plot(tracking_data)
  • Creates a time series plot of latitude (y-axis) over timestamp (x-axis)
  • Optionally facets the plot by animal and allows customization of x-axis date format and break spacing

Example Workflow

library(ezTrack)

# Step 1: Import
data(godwit_tracks)

# Step 2: Standardize
trk <- ez_track(godwit_tracks)

# Step 3: Summarize
ez_summary(trk)

# Step 4: Check fix rates
ez_fix_rate_plot(trk)

# Step 5: Compute home ranges
hr <- ez_home_range(trk)

# Step 6: Map tracks and home ranges
ez_map(trk, home_ranges = hr)

# Step 7: Latitude plot
ez_latitude_plot(trk)

Dependencies

  • sf, leaflet, geosphere, adehabitatHR: spatial operations, mapping, and home range analysis
  • readxl: Excel import support
  • knitr, kableExtra, htmltools: HTML reporting
  • ggplot2, viridisLite: plotting with color palettes
  • magrittr: for %>% pipe in mapping function
  • dplyr: subsampling and data manipulation

Install missing packages using:

install.packages(c(
  "sf", "leaflet", "geosphere", "adehabitatHR", "readxl",
  "knitr", "kableExtra", "htmltools", "ggplot2", "viridisLite", 
  "magrittr", "dplyr"
))

License

MIT License © 2025 Taylor Craft


Contributing / Issues

Feel free to open an issue or submit a pull request. Suggestions welcome!