Description
Exploring Animal Movement Data.
Description
Streamlines common steps for working with animal tracking data, from raw telemetry points to summaries, interactive maps, and home range estimates. Designed to be beginner-friendly, it enables rapid exploration of spatial and movement data with minimal wrangling, providing a unified workflow for importing, summarizing, and visualizing, and analyzing animal movement datasets.
README.md
ezTrack
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.
Installation
# Install development version from GitHub
# install.packages("devtools")
devtools::install_github("taylorbcraft/ezTrack")
Key functions
ez_track() - Clean & standardize tracking data
tracking_data <- ez_track("my_tracking_file.csv")
- Auto-detects columns for
id,timestamp,x, andy - Supports CSV, Excel, shapefiles (.shp), and GeoPackages (.gpkg) files
- Also accepts data.frame, sf, Spatial*, and move objects
- Removes rows with missing or duplicate (id, timestamp) combinations
- Returns a clean data frame or (optionally) a
sfobject 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
sfpolygon(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 analysisreadxl: Excel import supportknitr,kableExtra,htmltools: HTML reportingggplot2,viridisLite: plotting with color palettesmagrittr: for%>%pipe in mapping function
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!